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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: sealer 的核心理念是像 Docker 一样构建整个集群以及分布式应用,在整个集群纬度保障一致性,实现整个集群里所有分布式软件的 Build、 Share、 Run!

1.png

作者:sealer 社区


2022 年 4 月 26 日,云原生计算基金会(CNCF) TOC 例会投票,一致通过 sealer 开源项目成为 CNCF 官方沙箱项目。sealer 项目诞生于阿里云智能,旨在解决分布式软件的打包、分发与运行的标准化问题。项目发展初期,也就是去年 5 月,阿里云的工程师即坚定选择了开源之路。一年时间走来,sealer 在独立软件供应商(ISV)市场,得到了广大用户的青睐。也正是其创新的思路,以及短时间内的增长较快的用户基数,使 sealer 得以顺利申请并加入 CNCF 。5 月 16 日,这个新晋的 CNCF Sandbox 项目也将亮相 KubeCon EU 峰会,向全球云原生开发者分享 sealer 的技术架构、社区进展和 Roadmap 。


sealer 项目地址:

https://github.com/sealerio/sealer


项目架构


总体而言,Kubefile 是 sealer 的核心创新点。迄今为止, sealer 是行业中第一个抽象出“集群镜像”的概念, 通过 Kubefile(一个类似 Dockerfile 的描述文件)去构建整个集群的镜像,并使之可以在任意地方运行的项目。通过 Kubefile 构建出的集群镜像,可以将整个集群依赖的所有文件打包在一起,一条命令实现分钟级运行。


2.png

image.gif

如需要交付一个集群,里面包含高可用的 MySQL、redis 和 WordPress, 只需要定义一个文件 Kubefile,和 Dockerfile 很类似,用 sealer build 命令之后就可以把 Kubernetes 与以上所有组件的所有依赖全部打包到 CloudImage 中,再由 CMD 命令来指定集群启动之后需要执行的命令。


3.png

image.gif

对比 Docker 的 workflow,sealer 可以定义一个 Kubefile build 和一个 CloudImage 然后通过 Clusterfile 传入整个集群需要的参数如服务器 IP 地址列表或者组件配置,最后 sealer run 就可以完成整个集群的交付。


功能优势


Docker 镜像很好地解决了单应用的打包问题,但是没有解决分布式应用的镜像问题。helm 这类编排工具解决了编排问题,没有解决打包问题。目前集群没有打包标准,构建一个自定义的 Kubernetes 集群也比较复杂,整个集群+分布式应用部署也只是面向过程,交付问题爆炸却屡屡得不到干净利索的解决,集群整体交付一致性差。特别是在专有云交付领域,一个分布式软件往往有非常多的配置,以及很多应用镜像和依赖,甚至有些情况还需要在离线情况下进行交付,交付过程面临着非常大的挑战。


集群镜像把整个集群看成一台服务器,把 Kubernetes 看成云操作系统,实现整个集群的镜像化打包和交付,为企业级软件提供一种“开箱即用”的应用封装技术。通过非常简单的方式把一个应用的所有依赖进行标准化打包,一键运行到客户的集群中去,并且可以兼容复杂的基础设施,只需保障集群镜像构建过程没问题运行就没问题。集群镜像市场中会提供非常多已经构建好的可复用镜像,软件的使用者可以像搭建积木一样灵活地组合这些镜像服务与自己的应用,如 SaaS 应用依赖的数据库,消息队列,甚至 Kubernetes 本身都可以直接在市场中找到。


使用集群镜像技术最终能帮助企业一键拉起一个复杂的自定义集群,大幅提升交付效率,降低交付出错率,直接复用成熟稳定的组件也可使软件稳定性大大提升。交付人员不用再关心复杂的部署细节,解决了软件生产者和使用者之间的协作问题。


  • 简单,会 Docker 的人都很容易接受 sealer 构建整个集群镜像的方式,一条命令就能运行起复杂的集群
  • 高效,sealer 可在数分钟之内快速启动整个集群,且打开 nydus 特性可以把大镜像分发性能提升60%
  • 稳定,目前已经数十家企业使用 sealer,且有非常高的适配性,几乎兼容所有主流的 Linux 系统
  • 功能强大,支持配置管理、插件管理、多架构、GPU、containerd 等等特性


使用场景

  • Kubernetes 集群本身的安装与生命周期管理
  • 中间件,数据库与 SaaS 应用整体打包,一键运行
  • 离线交付,云上交付
  • 国产化,GPU 等支持
  • 一键运行各种高可用中间件与服务,如 MySQL/Kafka/Redis 集群等
  • 自由组装集群能力,可以通过 Kubefile 或者集群镜像组合生成符合用户需求的自定义镜像


社区进展

目前 sealer 共拥有 52 名贡献者,9 名 maintainer 分别来自阿里云,政采云,讯飞,博彦,浙江大学,realAI。目前有数十家客户在实践 sealer 。


sealer 目前用户接口已趋于稳定,在过去的一年中进行了大量的优化,比如构建一个集群镜像从最初需要 25 分钟 降低到目前的 3 分钟,大镜像的运行时性能从 1 小时降低到十分钟以内,最小化集群仅需 3 分钟,对接公有云驱动从最初的 3 分钟降低到 29 秒。


在用户体验层面,4 月份发布的 0.8 版本升级了 Clusterfile 至 2.0 版本,更加精简,易于扩展,并完全兼容所有 kubeadm 的配置,通过深度合并的方式支持集群镜像中任意配置的修改,插件上也更灵活丰富,支持全生命周期插件,自定义执行脚本能力,支持使用 Go 编程语言开发 out-of-tree 插件。out-of-tree 的插件机制提供了更加自由的定制 sealer 的能力。


生态方面,sealer 支持 20 多款通用集群镜像如 Prometheus、MySQL、Redis、Kafka等,意味着用户可以使用 sealer run mysql:8.0 这样的命令一键启动一个高可用 mysql 集群。


阿里云开源的 ACK 容器服务发行版 ACK Distro[1]和阿里云技术中台免费下载使用的 CNStack 社区版[2] 也是基于 sealer 技术实现了整个容器平台的打包,分发和交付能力。同时,允许社区开发人员在这些项目的基础上通过 sealer 的 Kubefile 扩展,增加开源或者自有组件,创建更复杂的软件栈,支持更多的应用场景。


Roadmap

  • sealer 在现有每个功能上持续优化,并打造精品集群镜像,让各种生产可用的集群镜像信手拈来
  • 支持更多的运行时,如 k3s k0s
  • 进一步提升性能,让整个使用体验更快速高效,甚至实现整个集群“秒极”启动的能力
  • 进一步加强社区治理,细化 maintainer 增加与退出规则,让整个社区朝着更开放的方向发展


sealer 的核心理念是像 Docker 一样构建整个集群以及分布式应用,在整个集群纬度保障一致性,实现整个集群里所有分布式软件的 Build、 Share、 Run!


更多推荐


[1] ACK Distro:

https://www.aliyun.com/product/aliware/ackdistro


[2] CNStack 社区版:

https://github.com/alibaba/CNStackCommunityEdition


欢迎钉钉扫描下方二维码或搜索群号 34619594 加入 CNCF sealer 社区交流钉群!


4.jpeg


此处,立即了解 sealer 项目!


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
Dubbo Java 应用服务中间件
Spring Boot Dubbo 构建分布式服务
Spring Boot Dubbo 构建分布式服务
51 0
|
1月前
|
负载均衡 监控 Dubbo
Java微服务架构设计与实践:构建可伸缩的分布式系统
【4月更文挑战第2天】微服务架构响应现代业务需求,通过拆分大型应用为独立服务实现模块化和可扩展性。Java中的Spring Boot和Dubbo等框架支持服务注册、负载均衡等功能。遵循单一职责、自治性和面向接口原则,每个服务专注特定逻辑,独立部署运行。实际项目中,如电商系统,服务按功能拆分,提升可维护性和扩展性。还需考虑服务通信、数据一致性和监控等复杂话题。Java微服务架构助力构建高效、灵活的应用,应对未来挑战。
Java微服务架构设计与实践:构建可伸缩的分布式系统
|
2月前
|
缓存 NoSQL Java
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson(一)
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson
59 0
|
2月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
175 0
|
3月前
|
存储 Oracle 关系型数据库
分布式事物【Seata实现、下载启动Seata服务、搭建聚合父工程构建】(四)-全面详解(学习总结---从入门到深化)
分布式事物【Seata实现、下载启动Seata服务、搭建聚合父工程构建】(四)-全面详解(学习总结---从入门到深化)
47 0
|
5天前
|
运维 Cloud Native 持续交付
构建未来:以云原生为基石的分布式系统架构深入理解操作系统的内存管理机制
【4月更文挑战第30天】 随着企业数字化转型的不断深入,传统的IT架构已难以满足市场对于敏捷性、可扩展性和成本效益的需求。云原生技术作为推动这一变革的关键因素,其设计理念和实现方式正在重塑软件开发和运维模式。本文将探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)、以及无服务器计算等,并分析其在构建分布式系统中的作用与挑战。通过实际案例,我们将展示如何利用云原生技术构建高效、弹性和可维护的分布式系统。
|
14天前
|
消息中间件 大数据 分布式数据库
分布式事务:构建可靠分布式系统的基石
【4月更文挑战第21天】分布式事务是确保现代分布式系统数据一致性和完整性的关键技术,涉及多服务协调,面临网络延迟、故障和数据一致性等问题。本文探讨了分布式事务的原理,包括两阶段提交、三阶段提交、分布式锁和补偿机制等解决方案,并阐述其在微服务、分布式数据库和消息队列等场景的应用。面对挑战,我们需要持续优化分布式事务处理机制。
|
2月前
|
XML NoSQL Java
Java单体项目和分布式项目中的锁
Java单体项目和分布式项目中的锁 Java单体项目和分布式项目中的锁
32 2
|
2月前
|
缓存 NoSQL Redis
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson(二)
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson
39 0
|
2月前
|
存储 SQL 分布式计算
TiDB整体架构概览:构建高效分布式数据库的关键设计
【2月更文挑战第26天】本文旨在全面概述TiDB的整体架构,深入剖析其关键组件和功能,从而帮助读者理解TiDB如何构建高效、稳定的分布式数据库。我们将探讨TiDB的计算层、存储层以及其他核心组件,并解释这些组件是如何协同工作以实现卓越的性能和扩展性的。通过本文,读者将能够深入了解TiDB的整体架构,为后续的学习和实践奠定坚实基础。