摘 要:在云计算大会上,用友iUAP平台高级专家分享了用友基于Docker构建高可用系统的实践。iUAP云运维平台基于Docker技术,为开发者和企业提供业务快速上线、持续集成、弹性伸缩、日志管理、性能分析、运维监控等功能。
第八届中国云计算大会刚刚闭幕,中国云计算领域专家、学者、技术大咖参加了此次盛会,并分享了他们对于云计算的趋势预测、技术实现、应用实践等。用友网络科技股份有限公司的iUAP平台高级专家綦玉冰,在“云计算平台构建与实践论坛”做了主题演讲,分享用友基于Docker构建高可用系统的实践。
用友iUAP平台高级专家綦玉冰
传统企业在向互联网转型时往往会遇到一些问题。綦玉冰认为,从技术上来讲,微服务架构更适合目前的互联网模式。因为采用微服务架构,可以解决互联网的高性能问题,并且可保证企业的每个应用模块是解耦的,可横向扩展,开发的复杂度也是可控的。
复杂的互联网架构,使线上维护成了问题。在传统企业或半互联网化企业中,运维都相对较弱。尤其当微服务模块越来越多时,维护成本就越来越大。所以不能单纯靠人去维护整个系统,必须要有自动化的管理平台。
綦玉冰表示,Docker将在互联网运维中起到重要作用。因为它具有很好的移植性,可到处任意运行。整体而言,Docker对于提升系统性能,节约成本;快速部署;更快的扩容缩容;保证测试生产环境一致等方面,都起到重要支撑。
那么Docker是如何实现微服务架构的呢?Docker通过装配、运行的理念可以将企业的应用、中间件以及操作系统打包在一起,只要打包完毕,开发者或测试人员,都可以在本地电脑、或企业内部服务器、或云主机上,按照同样的环境再次完美地运行起来。而每个容器恰恰就是封装好的Docker态微服务。
当然只是通过容器是远远不够的,距离高可用系统还有很大的差距。高可用系统还需具备以下能力:一,运维监控,保证虚机或物理机的高可用;二,性能分析,保证应用的高可用;三,弹性伸缩,保证容器的高可用。
高可用系统需具备的能力
iUAP企业互联网云运维平台使用基于Docker为代表的容器技术,结合容器管理技术,为开发者和企业提供业务快速上线、持续集成、弹性伸缩、日志管理、性能分析、运维监控等功能。能够帮助开发和运维人员彻底释放重复运维和各种线上故障带来的工作负担。
从架构上来讲,iUAP云运维平台底层可以支持各种IaaS:包含用友云、阿里云、华为云或者企业自建的云。在这个基础上去收集性能监控数据。容器层,基于Docker来做虚拟化。中间是应用层,再往上是接入层,最上层是面向互联网用户的服务。
由于基于Docker“一次构建、到处运行”的理念以及其基于镜像的机制,iUAP企业互联网云运维平台能够保证开发、测试、生产环境的使用一致性,大大降低了应用测试、上线和升级的时间成本。
iUAP已通过100万人并发压力测试。压力测试环境由40台物理机组成,iUAP云运维平台直接部署在物理机上,其他所有被压测机器由运维平台启动Docker容器,并自动加入服务发现。基于iUAP云运维平台,基本在5分钟以内可以快速完成被压测场景的搭建,大大节省了压测的时间成本。
测试结果表明,iUAP平台百万并发支撑在3万左右TPS稳定运行。继续加大压测并发,最大TPS已达到8万,此时达到压测工具的最大承受能力,后端应用健康状况依然非常好。
iUAP企业互联网云运维平台,之所以能够做到高可用,这里面涉及到一个很重要的机制,就是健康状况检查机制。它可以根据不同协议,比如基于HTTP的协议,通过指定健康检查的访问路径,做状态的不断检测。这样就保证了,当微服务宕掉的时候可自动重启,不需要运维人员通过各种各样的方式去手动的分析,真正可以做到高枕无忧。
最后,对于应用云化方面,綦玉冰提出了一些自己的观点与建议,如下:
1、代码与拓扑无关;2、应用无状态化;3、不要写本地磁盘;4、日志统一管理;5、DockerFile +镜像化;6、不要依赖基础设施;7、使用通用的REST API;8、禁止手工部署应用;9、Port资源必须规划;10、禁用不稳定的源。
iUAP企业互联网云运维平台是用友iUAP企业互联网开放平台的一部分,除云运维之外,iUAP还包含了企业互联网开发、集成、管理、运行等功能,覆盖了云计算、大数据、移动化等技术领域,可支撑企业构建高并发、高性能、高可用、安全的C2B、B2B或B2B2C等互联网应用。