孙东风:如何基于云及Docker一键式架构亿万级系统
- 2016-11-08 10:01:00
- 王雪
- 转贴:
- 51cto
- 14347
本文由 万达飞凡网C端研发部总经理孙东风于2016年8月,在WOT2016移动互联网技术峰会性能专场《基于云及Docker一键式架构亿万级系》主题演讲整理而成。
打造SaaS级平台解决方案
目前整个开发环境越来越复杂,包括缓存、数据库、服务,以及服务的注册、灰色发布,但从整个计算机的发展历史上可以看到,从早期面向系统演变成面向后端Java、面向对象,整体开发环境的需求变得越来越好。“飞凡网尝试基于Docker做一些通用组件,把常规服务做封装,这样可以面向业务提供一些通用的专门组件。”
他最终的想法是通过大量大用户量级产品的实战经验,浓缩出SaaS级的互联网解决方案,并通过MicroService的方式,对每一个模块实现”插拔式”的部署,使得所有功能可以进行热插拔,包括服务路由、服务容错、服务调用、服务注册、服务发布、服务灰色发布、流量控制、服务降级、服务监控。
整体技术架构分享
正因为开发环境越来越复杂,技术选型也变得越来越复杂,所以万达飞凡网采用的技术架构的目的是为了让整个开发环境,包括整个系统更加标准化,操作简单。
目前飞凡网的技术架构:
缓存系统,通过缓存系统,可以快速扩容缓存,并大幅度提供系统扩展性、可靠性。
分布式文件系统,提供高性能分布式文件系统,并提供ImageMagic模块自由对文件进行剪裁、缩放、旋转并存储。现在很多云平台已经开始提供这些功能,例如阿里云。“从应用开发角度而言,这样的系统更多是方便技术人员实现构建标准化,对底层可做更多开发,利于后续发展。”
分布式消息系统,最终选用了kafka分布式消息队列,把大多数”数据弱一致性”的耗时操作转化成并发操作,并可以对操作进行永久缓存,提高服务器负载能力和容错能力。kafka对强一致性操作的处理也比较好。
服务注册和发现,这部分主要内容是快速进行服务升级、服务注册、服务发现、服务降级。不仅是ZooKeeper,只是一个基础组件功能,可以建一些秘密空间,包括对服务的地址进行保存、动态配置化。
之前更多是服务、SOV、关注注册、控制方面的开发,而Docker的出现将对未来开发方式带来很大改变, 目前飞凡网对Docker的使用也在不断尝试过程中,技术团队推出的Docker Reigstry私有仓库,就是将服务和运行环境推到私有docker-registry中。
智能化的Docker 集群管理
演讲的最后,孙东风分享了Docker 集群管理Kubernetes。他透露他们对整个Docker管理十分智能化,Kubernetes以RESTFul形式开放接口,用户可操作的REST对象有三个:
一是pod是kubernetes最基本的部署调度单元,如果对一些基本业务做Service,每个Kubernetes对会业务碰撞,可以把放到pod里面,在进行扩展时,第一个是自动化,第二个是很容易进行扩容缩容,比如双十一这个时间节点流量压力将增加十倍,但是双十一过去之后整个流量压力就不会那么大,扩容缩容特别容易,尤其是通过复制replicationController,是智能化解决pod扩容缩容的组件;
二是service是pod的路由代理对象,解决pod之间的服务发现问题;
三是replicationController解决pod的扩容缩容问题。
“从功能特性角度可以看到Docker 集群管理Kubernetes对于整个资源调度,包括部署启动、运行监控、服务发现、错误处理、扩容缩容都非常智能化,非常感谢谷歌提供了这样一个组件。”
从我个人角度,将来可能会对整个软件开发行业有一个很大的影响。这次讲得比较快,主要是和大家分享一下,我是想把开发流程更加简单化,把常用的解决方案和大家做分享,每一块都是一个很大的共同点。补充一下,Docker集群管理除了Kubernetes之外,还有其他一些工具,Docker是谷歌开源的,并且对整个Docker管理是很智能化的,从功能来讲也是很强大的,特别是在数量特别大的时候。
联系人: | 王春生 |
---|---|
Email: | chunsheng@cnezsoft.com |