docker为什么适合devops?
欢迎访问网易云社区,了解更多网易技术产品运营经验
进阶版结论:Kubernetes + Docker 是 Dev 和 Ops 融合的一个桥梁。
DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。有工具支持,运维关注代码,开发关注部署,效率和质量都能得到提升。
在软件日趋复杂的情况下,微服务架构是弹性扩展、快速迭代的优选,微服务有利于负责单个服务的小团队降低沟通成本、提升效率,众多的服务却也让研发需要关心环境交付,整个运维工作复杂度剧增。说到秒级启动、秒级自动修复、服务发现、弹性伸缩等等,使用虚拟机和使用容器并无质的差距,但有了 Docker 镜像,最大的变化是环境交付可以提前,每个开发只需多花 5% 的时间,就能换取运维 200% 的劳动,并且提高稳定性。而有了 Kubernetes 以后,运维层关注服务发现、配置中心、熔断降级也顺理成章。
微服务设计要点包括无状态化、服务拆分和服务发现、服务编排与弹性伸缩、熔断/限流/降级等,网易云的体会,Kubernetes 本身就是微服务的架构,几乎所有的组件都是无状态化的,虽然看起来复杂,但是容易定制化,容易横向扩展。Kubernetes 不仅是编排的标准,其 deployment 和 StatefulSet 分别对应无状态对应和有状态,deployment 主要通过副本数,解决横向扩展的问题;StatefulSet 的机制可以让容器里面的脚本有足够的信息,处理异常情况,实现哪怕是有状态,也能尽快修复。
更多的原理详解,请参阅:为什么 kubernetes 天然适合微服务
相关回答参考:网易云:在哪些情况下考虑用docker?
相关文章:
【推荐】 移动端互动直播(入门篇)
【推荐】 Win10应用设计的那些事儿