返回 登录
0

容器如何落地?你需要关心的技术热点都在这里了!

引言:容器生态的“大爆发”

这两年,容器生态正以惊人的速度发展。越来越多的行业用户已经在生产环境中使用这一技术,“谁在用容器”正变成 “谁还没用容器”。

尤其传统行业,近年来因严峻互联网业务冲击,对新技术的“拿来”能力远超想象。其中更不乏战略思维超前的“先锋派”,已率先实践容器在传统行业的规模化落地,比如浙江移动,2015年上线DCOS平台,承载了CRM核心业务容器化,并成功发力当年双十一。

图片描述

我们该如何实现容器的企业落地?在容器落地的实践过程中,我们常用到哪些技术和产品形态?

为了能快速聚焦,本文将挑选出时下最核心的几大技术热点来介绍。

容器落地的核心技术热点都在这里了!

  1. 从Runtime到编排

说到容器,我认为主要两个关键词:一个是镜像,一个是Runtime。
不同于虚拟机,容器是基于镜像扩展的,已有镜像是构建新容器的模板。

那么实际生产环境中,镜像解决什么问题?当应用从研发分包到分发到运行,镜像定义了一套标准,有了这套标准,开发和运维两边就可以很融洽的合作。
支撑镜像运行的就是Runtime。

一直以来用的最多的是Docker引擎,Docker的底层Runtime也经历了一路更迭:从最初基于LXC到后来的libcontainer再到如今贡献到OCI的runC。

时下Docker面临强劲的竞争对手:CoreOS的rkt,还有LXC和其下一代LXD等等。

图片描述

实际生产环境中,Runtime主要支撑应用更顺畅的运行。

Runtime部署在服务器的每个节点上,有一定的时效性。相比于镜像,它是累积的。当用户进行技术选型时,Runtime是可变的,因为它不可见。而Runtime相比Engine是可见的。如果用户的程序、业务逻辑日积月累到镜像中,哪天想把它翻过去,换一个是很大的成本。技术选型需要考虑这些因素。

如今业务系统日益复杂,尤其微服务化后,单靠一个Docker Engine Runtime根本不够。面临大规模集群,必须有调度和编排。

当前最流行的容器编排工具有Swarm、Mesos、Kubernetes等。

图片描述

Docker本身有强大的底层Runtime经验,推出Swarm解决容器跨主机节点的集群调度和管理,是想要“向上走”的决心和战略野心。

今年Docker推出新的Swarm mode(通过SwarmKit项目来实现),引入了服务的概念,它将取代之前的Swarm,让扩容缩容、服务发现、负载均衡等功能更易实现。

图片描述

Mesos目前的发展方向是数据中心操作系统(DCOS),它同时支持 Marathon、Kubernetes和Swarm等多种框架。

以Mesosphere为例,由于做调度和编排本身就是强项,所以现在它既“向下走”(加强底层Runtime支撑),又“向上走”(更好支持上层应用)。

Kubernetes从诞生之初,目标就是支持分布式、服务化的应用架构。所以从一开始,它就内建了很多应用运行时的特性。

再加上它是以Borg为原型的开源,Borg迄今已在Google生产环境中运行15年,高效管理全球百万服务器,可谓久经沙场,久负盛名,因此,基于Borg成熟经验打造的 Kubernetes,不仅核心功能更完善,社区表现也十分活跃,从Github上三者的用户关注度对比可见一斑。(数据更新至2016/11/16)

图片描述

  1. 容器持久化存储

随着应用模式的深入,原先以无状态为主的应用如今已逐渐发展到有状态的容器应用。

有状态的容器应用必需有持久化数据的能力。

在容器中运行的应用,应用真正需要保存的数据,可以写入持久化的Volume数据卷。
由于以微服务架构为主的容器应用多为分布式系统,容器可能在多个节点中动态地启动、停止、伸缩或迁移,因此,当容器应用具有持久化的数据时,必须确保数据能被不同的节点所访问。

当容器把数据写在Volume上,Volume 可在不同容器之间共享和重用数据,而且容器数据的备份、恢复和迁移都可通过 Volume实现。

当下主攻容器存储项目和产品的公司:
ClusterHQ(Flocker)
Portworx
Hedvig
Diamanti

图片描述

  1. 容器日志与监控

容器日志

日志对于应用支持至关重要,应用程序的日志流经收集分析,可帮助运维人员深入工作负载内部洞察其健康状况并及时修复问题。

由于容器工作负载的大规模和异构性,日志处理是一个复杂挑战的工程。运维人员需通过各种不同的工具来收集分析日志,从而获取负载性能和可用性的精确反映。

当下有代表性的容器日志管理工具:
Loggly
Logentries
Splunk
Sumo Logic

图片描述

容器监控

随着容器被大规模部署应用,如何通过可视化方式监控容器环境的运行状态以及健康情况十分重要。

事实上,系统管理员和运维人员需要掌握容器以及运行容器的主机状态,持续监控计算、内存和存储的使用情况。于是,一方面容器和主机都要监控,另一方面容器运行时还将瞬时扩展,可见总体监控指标项目总数将多么庞大。

考虑到时下微服务主要基于模块化的软件单元来设计和部署,这种组合式架构需要多维度、多层面的监控分析。

通常我们可基于以下标准来评估容器监控工具:

  1. 是否易于部署?
  2. 信息呈现的详细度;
  3. 整个部署过程中日志的聚集程度;
  4. 数据报警能力;
  5. 是否可以监控非容器的资源?
  6. 成本如何?

现在有很多传统监控和APM厂商已经向容器和微服务领域进军。

当下有代表性的容器监控工具:
Datadog
Sysdig Cloud
Scout
Sensu
Prometheus

图片描述

  1. 容器平台/CaaS

容器平台是一个面向容器集群的端到端平台,不仅仅是容器,还包括持续集成/持续部署(CI/CD),认证服务,应用服务,数据服务,安全服务,云基础设施和很多其它元素,容器平台将这一切高度集成为一套统一的服务,从而为开发者和企业用户提高应用部署速度和生产效率。

容器平台在公有云和本地数据中心均可部署,但通常部署在防火墙后。

CaaS(容器即服务)作为容器平台另一个更时尚的代名词,更突出容器平台“以应用为中心”的特质。

CaaS充分结合了IaaS和PaaS两者的优势。

一方面,以容器为主的CaaS不仅将底层基础架构抽象封装为一个大资源池,用户只需将目标应用部署到该资源池中即可,根本无需关心诸如资源申请、管理等与业务开发无关的事。

另一方面,CaaS以容器化应用作为交付标准,这意味着各种打包成统一标准格式的应用可在任意平台之间部署迁移,容器服务之间也可通过地址、端口服务互相通信,做到既灵活又有序,既支持对应用的无限定制,又能规范服务的交互和编排。

一句话,CaaS不仅屏蔽了底层系统(IaaS),还支撑并丰富着上层应用平台(PaaS)。CaaS让开发和运维人员更专注于上层业务的改革创新,而不必担心底层资源的事情。

当下有代表性的容器平台/CaaS:
IBM BlueMix
Pivotal Cloud Foundry
Pivotal Web Services
Apprenda
Docker Cloud
Docker Datacenter
Red Hat OpenShift
Tectonic
Mesosphere DCOS
天玑 D-DCOS

图片描述

结束语

如今,容器技术日新月异,整个生态也一直处在快速发展中,希望本文能抛砖引玉,让大家对容器生态当前最核心的技术热点和产品形态有一个大致了解。

由于现阶段相关产业还没有完全成熟,天玑数据希望同广大厂商还有客户一起致力于推进容器产业和技术向前发展,加快容器企业落地脚步,为构建全方位容器生态而努力。

评论