「码呗学院」聊一聊互联网公司Docker容器化是如何实践的?( 二 )

3. 环境的一致性

由于各种历史问题,导致项目发布的测试环境、集成环境和产线环境配置不一致,给系统问题的排查定位带来一定的难度,项目部署目录,服务启动用户,甚至包括jdk版本的问题,这些问题同时加重了运维工作的复杂度。

4. 资源的分配

主要是软资源的计算分配,因为服务单元非常多,每个服务单元的内存,端口分配问题会随着服务数量的增加,越来越难以计算和管理,CMDB统计不够实时,造成最终的结果就是资源利用率比较低。

微服务架构

选择docker一个重要的原因,就不得不提到微服务了,微服务相比传统的服务采用单体的架构方式,部署方式和开发模式上有很大优势。单体架构的方式,服务系统过于庞大臃肿,项目发布部署风险较高,迭代开发周期较长,而微服务按照业务维度进行功能模块拆分,使其各自成为一个可独立提供服务,可独立部署运行的单元模块,通过指定的网络协议模块之间进行通信,并且在开发模式上,也是相互独立,大幅提高了项目开发上线的周期,做到快速迭代。但是随着则业务复杂性的提升,微服务的集群数量也会急速上升,带来的问题就是面对如此多服务如何高效的管理,部署,监控等一些问题,而docker处理这些却有着得天独厚的优势。

推荐阅读