1956 年 4 月 26 日,一架起重机把 58 个铝制卡车车厢装到了一艘停泊在港内的老油轮上,谁也不会想到,一场革命就这么开始。集装箱的诞生,让货物的运输成本大大降低,也让原本混乱的运输环境,变得整洁有序,整个物流体系更加高效,最终改变了世界贸易。
在 IT 世界中,容器也扮演着「集装箱」的角色,只不过「运输」内容从货物换成了应用程序。它比虚拟机更轻量,启动迅速,占用资源低。几乎可以在任意场景以相同的方式运行,可以实现开发、测试、生产环境的统一调度,创建相同的运行环境。
如果说,集装箱提供了一套标准化的物流体系,那么容器就是提供了一套标准化的应用发布方式。
围绕容器,诞生了多种新型架构,从而满足不同场景需求。市场中,越来越多的企业将容器技术应用到实践中,而在容器火爆的同时,也曝露出容器技术的种种弊端:
首先,容器技术虽然简化了产品持续交付的复杂工序,但实现容器化是复杂的,它需要很多技术的支撑,比如说,容器管理、编排、应用打包、容器间的网络、数据快照等;
其次,当企业想构建一套网络方案,需要精通 Linux 提供的各种高级网络功能,这个技术门槛太高了。特别是对专注于业务开发的 Docker 用户而言,这类操作往往显得过于复杂。而且,由于在虚机中部署容器,云平台和 Docker 平台都有自己的虚拟化网络实现方案,二者功能重叠,使用时会相互嵌套,导致的其网络性能损耗非常严重,甚至达到 80%。
所以,虽然容器技术正在逐步被大家认可与应用,但其网络性能以及配置的复杂程度一直都在被大家所诟病。
那么,这些问题该如何解决?
为了解决以上问题,青云 QingCloud,重新构建了基础网络、存储层,实现容器和虚拟化的统一架构,基于底层资源做了一层抽象,即 QingCloud Application Framework,隔离了底层硬件资源并提供接口给上层应用,提供了一套同时支持虚拟化和容器化的基础架构。
然后,借 SDN (软件定义网络)及 SDS (软件定义存储)为容器运行环境提供极致的网络及存储性能支持。通过 SDN 网络直通功能( SDN Passthrough ),容器直接使用云平台的 SDN,避免两层网络的重叠带来的数据包容量损耗,节约原本需经多次虚拟化损失近 3/4 的性能。
同时,得益于青云平台弹性可扩展的特性,部署于虚拟主机之上的容器平台也将随之获得灵活伸缩的能力,用户可以对整个系统进行横向及纵向的弹性伸缩操作。 在应用层里,青云容器平台通过 QingCloud AppCenter 框架交付,一键完成部署,持续升级,提供创建、扩容、健康监测、用户管理等应用全生命周期管理功能,并提供完善的服务监控及日志功能,帮助用户节省大量的运维成本。
总的来说,当企业在青云 QingCloud 使用容器服务时,他可以享受到青云提供的完整企业级容器服务平台,包含 Kubernetes、etcd、Harbor、公有镜像仓库在内的一系列容器应用与服务,覆盖镜像仓库、容器编排及管理,从而进行快速的容器应用开发、部署、升级。
举几个例子
打破异构环境,实现应用 CI/CD
传统 DevOps 架构中,开发、测试和生产环境往往是异构的,服务部署方式没有统一标准流程,这与实现高效应用持续集成 /持续交付直接相互矛盾。基于 Docker 及 Kubernetes 构建的容器编排与调度平台,实现统一应用的部署环境,提供标准化的部署及更新功能。
Docker 部署、管理与编排
Docker 是非常主流的容器应用,通过 QingCloud 容器平台,用户可以便捷地部署 Docker 实例,管理自有和公有 Docker 镜像,并通过 Kubernetes on QingCloud 实现 Docker 的调度与编排,从而构建基于 Docker 体系的应用系统。
构建微服务架构
随着业务的快速增长和团队规模的扩展,单体应用越来越难以满足敏捷开发以及纵向伸缩的需求,需要向微服务架构演进。使用微服务,一些技术债务势必从开发转到运维,传统的人工编排运维模式很难应对服务数量扩张带来的运维复杂度,这时候容器编排调度系统成为必然的选择。而且,微服务与容器结合使用时,微服务架构所具备的优势将被进一步放大。Kubernetes 对服务规范的定义,滚动升级以及自动伸缩能能力,正好满足了微服务架构对运维系统的要求,降低了企业采用微服务架构的整体成本。