Docker 有什么优势?


勿忘初心提问于 2018-11-28 16:07
1 个回答
  • 未来已来2018-11-28 16:24

    下面我们主要从Docker对业务架构和生产实践的角度来分析。


    随着业务规模的逐渐扩大,产品复杂度也随着增加,企业需要解决快速迭代、高可靠和高可用等问题,一个自然的选择是服务化的拆分,把一个单体架构拆分成一些较小的模块。但拆分成大量小模块之后,虚拟机与服务化架构的配合就出现了很多新的挑战,于是有了对Docker的需求。


    比如,在整个架构演进的过程中,各个模块都面临爆炸性的增长,模块间紧耦合则牵一发而动全身,工程臃肿,影响迭代速度,分别独立上线更有利于适应业务发展的需求。所以,微服务化需要从一开始就要做好持续集成,而Docker是很好的持续集成的工具,完成从代码提交到自动测试、自动发布的工作。在架构复杂的情况下,比如100多个模块,再加上各种副本,所有环境都由一个运维团队来完成,不仅工作量繁重,而且还容易出错,但这是使用虚拟机的模式。而如果写一个Dockerflie放到代码仓库,由开发人员来考虑开发完成之后应用部署的配置环境、权限等问题,包括测试环境的部署、联调环境的部署、生产环境的部署,问题就很好解决了。这就是Docker带来的流程变化。


    随着微服务架构的逐步完善,需要解决的问题主要是如何通过服务治理、系统运维自动化提升可靠性和可用性,如何高效完成大项目的复杂协作,如何梳理功能、深化用户体验。通过不可变基础设施和IaC(基础设施即代码)可以实现,这里容器也是最佳选择。比如,不可变基础设施就是所有的改变,都应该在Git的改变里面有所体现,修改环境就是修改Dockerfile,修改配置文件也是代码层次的改变,整个环境的部署,当代码merge的时候,会触发通过容器自动部署的脚本,这能很好地保持环境的一致性。


    最后,网易云容器服务为用户提供了无服务器容器,让企业能够快速部署业务,轻松运维服务。容器服务支持弹性伸缩、垂直扩容、灰度升级、服务发现、服务编排、错误恢复及性能监测等功能。


    今年,网易云围绕应用和微服务打造了一站式 PaaS 平台——轻舟微服务,帮助用户快速实现易接入、易运维的微服务解决方案。