3.2 容器开源软件:Kubernetes /Mesos / Docker
Docker技术的出现和迅猛发展,已成为云计算产业的新的热点。容器使用范围也由互联网厂商快速向传统企业扩展,大量传统企业开始测试和尝试部署容器云。
相比于企业对容器技术的逐步接受与认同,在如何使用容器上却并不统一,存在多种思路和诉求。容器技术开发者和社区倡导云原生应用场景,这一理念被业界普遍所认可,但在实际使用中发生分化。部分企业基于容器技术,尝试新应用开发和对传统应用进行改造;更多的企业在实际使用中,面临应用改造困难和人员技能变更,认为不可一蹴而就,希望先以轻量级虚拟机的方式使用容器。
容器的下述技术特点,决定了容器所能发挥真正价值的应用场景。
轻量化:容器相比于虚拟机提供了更小的镜像,更快的部署速度。容器轻量化特性非常适合需要批量快速上线应用,或需要快速规模弹缩应用,如互联网web应用。
性能高、资源省:相比虚拟化,接近物理机的性能,系统开销大幅降低,资源利用率高。容器的高性能特性非常适合对计算资源要求较高的应用,如大数据和高性能计算应用。
跨平台:容器技术实现了OS解耦,应用一次打包,可到处运行。容器的跨平台能力,非常适合作为DevOps的下层封装平台,实现应用的CI/CD流水线;容器应用可跨异构环境在不同云平台、公有云和私有云上部署,也非常适合作为混合云的平台。
细粒度:容器本身的轻和小,非常匹配细粒度服务对资源的诉求,与微服务化技术的发展相辅相成,可作为分布式微服务应用的最佳载体。
企业关注下一代内部IT架构变革,希望将服务作为IT核心,提升业务敏捷性,大幅降低TCO。容器成为企业应用转型很好的承载平台,针对企业的业务痛点,使用上述一种或多种特点,优化业务场景。
业界当前主要有三种容器集群资源管理调度和应用编排的不同选择。
Mesos生态:核心组件包括Mesos容器集群资源管理调度以及不同的应用管理框架。典型的应用管理框架包括Marathon和Chronos,其中Marathon用来管理长期运行服务,如Web服务;Chronos用来管理批量任务。Mesos生态主要由Mesosphere、Twitter等公司主力推动。
Kubernetes生态:Google公司发起的社区项目,涵盖容器集群资源管理调度,以及不同类型应用的应用管理组件。例如副本可靠性管理,服务发现和负载均衡,灰度升级,配置管理等组件。
Docker生态:Docker公司希望向容器生态系统上层发展,推出了Swarm容器资源管理调度组件,以及Compose应用编排组件。
本书第五章将对容器生态与技术进行详细的阐述。