开源夜聊栏目开播:聊聊新晋 CNCF 项目 sealer 背后的故事

1,333 阅读6分钟

开源夜聊是阿里云云原生团队策划并发起的一档对话栏目,关注云原生领域开源项目,通过嘉宾们的解读,让我们看到每个开源项目背后的故事。

4 月 26 日,云原生计算基金会(CNCF) TOC 例会投票,一致通过 sealer 开源项目成为 CNCF 官方沙箱项目。sealer 项目诞生于阿里云,旨在解决分布式软件的打包、分发与运行的标准化问题。

去年 5 月,阿里云工程师选择将 sealer 项目开源,一年时间走来,sealer 在独立软件供应商(ISV)市场,得到了广大用户的青睐。也正是其创新的思路,以及短时间内的增长较快的用户基数,使 sealer 得以顺利申请并加入 CNCF 。

系列文章:

sealer 成为 CNCF Sandbox 项目,旨在构建分布式应用交付新标准

与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 & 部署

Sealer - 把 Kubernetes 看成操作系统集群维度的 Docker

政采云基于 sealer 的私有化业务交付实践

5 月 26 日(周四)晚上 19:00-20:00,sealer 发起人中弈、政采云交付技术负责人摩羯、ADP-online 产品负责人吕莫做客【开源夜聊】,与开发者一起聊聊 sealer 背后难忘的故事。

关注「阿里巴巴云原生」视频号,立即预约直播!

sealer 是什么?

作为阿里巴巴开源的一款帮助分布式应用快速进行打包、交付和运行的解决方案,sealer 可以通过把分布式应用及其数据库中间件等依赖项一起打包来解决复杂应用的交付问题。

sealer 构建出来的产物我们称之为集群镜像,集群镜像里内嵌了一套完整的 Kubernetes + 容器,它们双剑合璧,解决了分布式应用的交付一致性问题。

1.png

它的核心原理可以参考下图:

2.png

Docker 可以把单个操作系统(rootfs)和单机应用构建(docker build) 成一个容器镜像,并在单机上快速运行(docker run),而 sealer 则把 Kubernetes 看作整个集群的操作系统(cloud rootfs),并和其上部署的分布式应用构建(sealer build)成一个集群镜像,在集群上快速运行(sealer run)。与此同时,集群镜像也可以被推送(push)到公共镜像仓库(如 DockerHub、阿里云容器镜像服务等)中共享给其他用户使用。

对于专有云交付类的公司而言,sealer 最终能帮你的就是实现规模化交付,扩大营收,降低成本,提高利润。采用 sealer 技术的公司可以在规模化竞争中取胜,降低单次产品交付价格,创造核心价格优势。

以现有的交付类项目现状来看几乎都是几十万上百万起步,这几乎就把客户群体限制在头部客户了,但是对于中小企业需求是真实存在的,由于交付成本高导致出现这种有需求无市场的情况。如果价格能降低到数千或者几万,那新的市场就会完全被打开。

对于甲方来说也是一样,采购一套软件到落地都是数月的时间,和销售沟通、poc、交付等等,整个链路非常长。因为乙方的交付成本变低,相应甲方的采购成本也会降低。在 sealer 出现之前想一年线下交付一万套复杂软件对于绝大多数企业而言几乎不可能完成,像小时级别的交付更是异想天开,但是 sealer 可以实现自助化,交付规模不再受技术水平限制,还能实现快速一键交付。

举个例子,政采云的私有化交付客户为政企场景,需交付业务规模较大:300+ 业务组件, 20+ 中间件,交付目标的基础设施不同构且不可控,网络限制严格,一些敏感的场景甚至是完全隔离的网络,在这种背景下,业务交付的最大痛点就是部署依赖的处理以及交付一致性的问题。虽然业务统一基于 Kubernetes 进行交付实现了运行环境的一致,但是如何解决部署过程中所依赖的所有镜像、 各种包的统一处理以及交付系统自身的一致性等一系列问题,亟需解决。

然而一个复杂的业务, 其交付的本身就是一个工程浩大的问题,以政采云的场景为例:各种 helm chart、RBAC, istio gateway,cni,中间件等各种资源对象的部署和配置,再加上 300 余业务组件的交付,每一次私有化交付带来的都是大量人力和时间成本的消耗。

政采云正处于业务高速发展的时期, 私有化部署项目的需求不断新增,高成本的交付方式越来越难以支撑实际的需要,如何降低交付成本,并保障交付的一致性是运维团队最迫切的需要解决的问题。

偶然间,政采云交付技术负责人摩羯发现 sealer,第一时间联系到了 sealer 发起人中弈,同时邀请社区的伙伴来公司进行了交流, 使用 sealer 我们重新定义了交付流程,通过 Kubefile 将业务组件、容器化中间件的交付、镜像缓存等组件的交付直接使用 sealer 来完成。利用 sealer lite build 模式, 自动化的完成依赖镜像的解析及缓存内置。

利用 sealer 屏蔽了大量应用交付的复杂过程逻辑,和依赖处理逻辑,使实施难度极大的简化。实施逻辑的持续简化,使得规模化交付成为可能。在我们的实践场景中,使用新的交付系统,交付周期从 15 天/人缩短至 2 天/人,实现了包含 20G 业务镜像缓存, 2000G+内存 800+核心 CPU 规模集群的成功交付。下一步我们计划通过持续的简化交付过程,使一个新手只需要简单的培训即可完成整个项目的交付。

sealer 已经完成了“集群维度的 Docker”这一设定,未来在生态发展上会增加更多的投入,创造更多更优质的官方镜像,建立更多的合作伙伴,真正把软件的提供者与使用者连接起来,高效的协作。sealer 还是一个新项目,在最开始开源的几个月里经历了多次“打击”,摩羯说:“我们对 sealer 的设计模式抱有很大的期望和信心, 我们选择了与社区一起协作共建,共同成长。”

更多开源项目背后的故事,欢迎预定 5 月 26 日晚开源夜聊直播间。

3.png