ECSM 容器管理平台
“天下武功,唯快不破”,随着云计算技术和业务规模的迅猛发展,市场竞争也在不断白热化,用户需求变化越来越快,对产品体验和服务质量的要求越来越高。快速响应、零故障、周交付甚至日交付已经是实实在在的需求。企业业务的快速增长导致软件规模迅速扩大,系统结构日益复杂,加上快速迭代的强烈需求,云计算行业催生了容器、微服务等一系列新的概念和技术,云原生(Cloud Native)架构也应运而生。以大家都熟悉的微信为例,据 2018 年的一份研究报告称,微信有超过 3000 个服务,每天有超过 1000 次的部署,对传统技术架构来说这几乎是不可能完成的任务。云原生架构的出现,有效解决了长期困扰互联网企业的业务高速发展和敏捷性不能兼顾的问题。
不仅仅是云计算行业,随着 5G 技术和物联网的蓬勃发展,各行各业都迎来了数字化转型的大潮,几乎所有的行业都需要云原生这样的快速交付能力和敏捷性。在传统行业中,由于往往采用瀑布式的软件研发流程,加上相对落后的技术体系,软件产品的交付周期十分冗长。在经过漫长的、缺乏反馈沟通的等待之后,软件产品往往仍然不能满足用户的实际需求。同时由于没有及时的集成测试和系统测试,交付阶段的问题多,修复十分困难。
而计算机软件行业发展到今天,已经迎来了软件定义世界、软件定义未来的时代,各行各业都希望实现快速迭代,快速地将产品和新的想法推向市场,经过市场的验证之后再快速改进。
针对云原生定义中容器、微服务、声明式 API 等要素,翼辉信息推出了任务关键型云原生架构——基于容器的超边缘计算平台。该架构使得在任务关键型超边缘计算环境中,基于高速网络和实时操作系统的嵌入式应用同样可以通过容器安装和部署,彻底改变传统嵌入式应用的研发和交付模型。
基于容器的部署和交付不仅仅需要一个安全高效的容器运行时环境,更需要一个统一的容器管理平台实现微服务应用的分发、编排和调度。
在经典云计算 PaaS 环境中,简单的应用如 Web 服务器 + 数据库,通过自动化脚本类的工具就可以管理服务间的依赖关系和网络配置。但是当业务微服务化,业务模块的数量不断增加,需要部署的容器数量也不断地增大,容器之间的依赖关系也变得极为复杂。企业内部往往还需要集成不同的子系统,业务请求通常需要在不同的网络之间流转。面对以上问题,谷歌推出了 Kubernetes(简称为 k8s )容器编排框架,其中整套的软件包,从容器状态管理、业务编排到虚拟网络流量转发,完美解决了云计算类应用方方面面的部署需求。
然而,为云计算业务设计的 k8s 系统在超边缘计算环境里就显得太重了。与云计算环境中几乎无限的计算资源和互联网无法确定的业务负载相比,超边缘计算环境中的业务负载几乎总是确定的,其计算设备的数量以及单设备的计算资源也总是有限的。在这样的计算环境里,如果还需要专门的 master 计算节点、etcd 数据库、虚拟隧道网络,甚至全套数字证书 /TLS 和身份认证系统,有限的系统资源都被浪费了。翼辉 ECSM(Edge Container Stack Manager)任务关键型容器管理平台采用轻量化设计,去除了不必要的控制单元、虚拟隧道网络代理,并使用更轻量的数据库,使得其总体资源需求能够适用于各种资源受限的超边缘计算环境。
与云计算应用总是需要负载均衡、动态流量转发的需求不同,任务关键型应用更倾向于确定的业务流量和确定的资源配置,从而保证系统的整体稳定性。因此,翼辉容器管理平台采用 声明式 API 进行静态资源编排并同时支持动态的高可用调度,这样不仅能够满足任务关键型任务对 API 响应实时性的苛刻要求,当系统中某个计算节点故障后,其业务负载仍然可以无缝迁移到其它冗余节点上,不影响用户业务的运转。
此外,在任务关键型网络中,应用对于系统的实时性能有着更高的要求,这些要求不仅体现在对系统调用响应的实时性要求,也体现在对业务能力转移的实时性要求上。与 Docker,k8s 基于 HTTP API 管理的模型相比,翼辉容器管理平台使用基于 TCP/TLS 的长连接,无须握手,在确保请求可达的同时,保证了更快的请求速度。
系统架构
翼辉容器管理平台具有以下特点:
ECSM 容器管理平台兼容 Docker Registry API。为了确保 ECSM 镜像管理平台的通用性,ECSM 参考 distribution-spec 规范设计实现了自身镜像 API 接口。这使得 Docker 命令行工具可以无缝对接到 ECSM 平台进行 Push,Pull 等镜像相关的指令操作。
而在镜像数据存储方面 ECSM 参考了目前业内最成熟的 Docker Registry 存储方案,使得多个镜像在存储时可以复用相同的镜像层以减少重复数据带来的存储损耗,同时也大大提高了镜像层检出的读取速度。
在满足基本镜像管理指令的同时 ECSM 平台也对镜像管理功能做出了一些特色的扩展。除了支持传统的 docker push 指令上传镜像以外,用户也可以使用 Web 页面将 docker save 保存的镜像包上传并保存至镜像仓库中,极大的降低了用户上传镜像时对本地软件环境的依赖,只需要使用浏览器便可以完成镜像上传操作。
除了本地镜像上传,镜像删除、搜索操作,以及远程同步仓库的配置,用户均可以通过 Web 页面完成,无须再记忆复杂的指令与流程。极大的简化了用户使用难度,降低了应用门槛。
在 ECSM 的功能特点中提到过,容器管理平台的主要目标是实现离线边缘自治,例如启动并监督容器应用的运行状态。因此,管理平台本身不仅需要存储所有业务所需的容器应用,还需要存储应用的多个版本,例如同时存储稳定版和测试版。容器应用版本可以在本地网络环境中,通过镜像管理模块上传,但镜像更主要的更新途径则是通过 ECSM 与远程仓库或者企业管理平台的同步完成的。
ECSM 可以配置多个远程仓库地址。远程仓库完成配置后以列表的方式在 ECSM 页面进行展示,用户可以在页面中根据自身业务需求选择需要的容器镜像,点击同步按钮后,ECSM 将会主动从远程仓库拉取相应镜像并保存至本地仓库中。
翼辉企业管理平台同样支持完备的 Docker Registry API,支持远程镜像拉取或者推更。同时,由于部署环境不同,企业管理平台可以运行在资源相对富足的企业私有云内,因此其存储空间更大,可以同时为企业内的不同部门的研发、测试团队和管理员提供服务,保存企业内所有业务应用的所有版本。研发工程师可以通过企业管理平台提交最新的应用版本;测试工程师可以拉取新版本并完成本地测试;管理员则可以决定是否将新的应用版本发布到目标超边缘计算环境中去。
当 ECSM 与企业管理平台成功连接后,企业管理平台可以远程将需要部署的容器应用统一地 “ 推送 ” 到目标容器管理平台节点上去。这样,当 ECSM 所管理的超边缘计算环境脱离企业网络环境独立运行时就已经事先同步了新版本的应用程序,随时可以在本节点所在的内部网络中完成应用部署或更新。
远程仓库连接支持用户名、密码认证,认证成功后,ECSM 节点用户或者管理员可以通过远程仓库连接查看企业内应用的详细信息,或者通过关键字搜索企业内的其它容器应用,并决定是否需要拉取到本节点之中。
ECSM 支持 SylixOS、Linux 操作系统作为超边缘计算节点接入到容器管理平台。待接入的 SylixOS 操作系统需要配置安装翼辉 ECS 实时容器服务;待接入的 Linux 系统则需要安装 Docker 运行时以及翼辉 ecsd 容器管理守护程序。超边缘计算节点与容器管理平台节点之间通过 TLS 加密连接通信,并由容器管理平台节点统一调度各个节点的容器应用。
为了进一步提高系统的整体稳定性,超边缘计算环境应避免动态地址分配,而尽量使用静态规划的网络地址。因此,在 ECSM 节点管理模块中,管理员需要事先为超边缘计算环境规划各个计算节点的网络地址,并通过节点的 IP 地址逐个添加、配置各节点的连接信息。
运行于计算节点上的容器管理守护程序一方面接收来自管理平台的调度管理请求,如拉取镜像、启动镜像,另一方面还可以实时监测本计算节点的 CPU、内存等系统资源,并通过 VSOA 的订阅、发布功能实时将信息同步给容器管理平台节点。当计算节点因为系统或网络故障导致系统不可用、通信中断时,ECSM 将实时标记该节点的运行状态。如果在相同的计算网络中配置了其他的冗余计算节点,那么该故障节点上的计算业务将由冗余节点上的新的应用实例取代。
应用服务是 ECSM 为了优化用户体验,面向业务设计的容器应用管理单元。在实际运行环境中,用户通常只关心其业务功能是否正常运行,能否能够提供正常的业务支撑,对于底层的技术实现与部署细节并不会有过多关注。因此,ECSM 通过将多个应用程序在多个计算节点上运行部署的复杂模型抽象成服务,并对其进行统一管理,从而方便用户对业务状态进行直观的观察与管理。
在服务部署模块中,用户通过 ECSM 平台可以指定若干个镜像在若干个 SylixOS 或 Linux 计算节点上使用相同的配置参数启动容器,这些无状态的应用容器可以通过 VSOA 统一向外提供具体的业务功能。通过面向服务的统一抽象,以及简单的操作,例如启动、停止、版本更新等,即可完成服务的部署和更新。相应的控制指令将通过 ECSM 自动同步至各个节点上,并通过 ecsd 守护程序执行,避免用户对各个节点上的容器实例逐一操作。
ECSM 还提供了服务状态的监测功能,一方面通过 ecsd 收集各计算节点的状态信息,另一方面收集各个容器应用实例的实时运行状态信息。信息经过汇总后,在应用服务层面进行综合展示,便于用户了解各个服务当前的整体运行状况。同时, ECSM 根据服务声明,驱动计算节点上的 ecsd,保证容器应用的运行状态符合服务定义需求,当容器实例意外终止时,负责重新启动容器实例或者将容器实例调度到其他计算节点上启动、运行,从而保证对外提供的服务满足业务的总体配置需求。
此外,ECSM 也可以通过 VSOA 订阅、发布能力将超边缘计算网络中的节点、服务状态信息同步给企业管理平台形成统一的管理视图。
翼辉 ECSM 容器管理平台与 ECS 实时容器技术、VSOA 框架一同构建了云原生的超边缘计算软件能力,三者相辅相成,缺一不可。
ECS 实时容器解决了应用运行环境的抽象和依赖问题,使得嵌入式应用快速、标准化部署成为可能;VSOA 作为超边缘计算环境的网络通信基础,保障任务关键型应用请求的实时性和可靠性,并实现了轻量化的高可用计算。ECSM 容器管理平台承上启下,对上为整个系统赋予了组织协调管理能力,对下提供了应用分发、微服务编排定义,以及业务调度和管理能力。
同时,翼辉爱智团队正在积极地研发企业应用开发平台,它将与企业管理平台一起,为企业用户提供一体化的综合云原生软件研发服务。结合翼辉信息已有的软件产品,实现容器应用的研发、构建、测试、发布、部署和监控——全生命周期 DevSecOps 解决方案,加速传统软件行业的研发迭代速度,努力推进万物互联时代的进程。