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

本文涉及的产品
函数计算FC,每月15万CU 3个月
性能测试 PTS,5000VUM额度
可观测可视化 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 项目!


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
存储 运维 负载均衡
构建高可用性GraphRAG系统:分布式部署与容错机制
【10月更文挑战第28天】作为一名数据科学家和系统架构师,我在构建和维护大规模分布式系统方面有着丰富的经验。最近,我负责了一个基于GraphRAG(Graph Retrieval-Augmented Generation)模型的项目,该模型用于构建一个高可用性的问答系统。在这个过程中,我深刻体会到分布式部署和容错机制的重要性。本文将详细介绍如何在生产环境中构建一个高可用性的GraphRAG系统,包括分布式部署方案、负载均衡、故障检测与恢复机制等方面的内容。
163 4
构建高可用性GraphRAG系统:分布式部署与容错机制
|
2月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
57 5
|
3月前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
2月前
|
监控 算法 网络协议
|
4月前
|
NoSQL Java Redis
面试官:项目中如何实现分布式锁?
面试官:项目中如何实现分布式锁?
114 6
面试官:项目中如何实现分布式锁?
|
3月前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
2月前
|
存储 监控 大数据
构建高可用性ClickHouse集群:从单节点到分布式
【10月更文挑战第26天】随着业务的不断增长,单一的数据存储解决方案可能无法满足日益增加的数据处理需求。在大数据时代,数据库的性能、可扩展性和稳定性成为企业关注的重点。ClickHouse 是一个用于联机分析处理(OLAP)的列式数据库管理系统(DBMS),以其卓越的查询性能和高吞吐量而闻名。本文将从我的个人角度出发,分享如何将单节点 ClickHouse 扩展为高可用性的分布式集群,以提升系统的稳定性和可靠性。
241 0
|
4月前
|
存储 NoSQL Java
分布式session-SpringSession的应用
Spring Session 提供了一种创建和管理 Servlet HttpSession 的方案,默认使用外置 Redis 存储 Session 数据,解决了 Session 共享问题。其特性包括:API 及实现用于管理用户会话、以应用容器中性方式替换 HttpSession、简化集群会话支持、管理单个浏览器实例中的多个用户会话以及通过 headers 提供会话 ID 以使用 RESTful API。Spring Session 通过 SessionRepositoryFilter 实现,拦截请求并转换 request 和 response 对象,从而实现 Session 的创建与管理。
114 0
分布式session-SpringSession的应用
|
4月前
|
存储 NoSQL Java
分布式session-SpringSession的应用
Spring Session 提供了一种创建和管理 Servlet HttpSession 的方案,默认使用外置 Redis 存储 Session 数据,解决 Session 共享问题。其主要特性包括:提供 API 和实现来管理用户会话,以中立方式替换应用程序容器中的 HttpSession,简化集群会话支持,并在单个浏览器实例中管理多个用户会话。此外,Spring Session 允许通过 headers 提供会话 ID 以使用 RESTful API。结合 Spring Boot 使用时,可通过配置 Redis 依赖和支持缓存的依赖实现 Session 共享。
分布式session-SpringSession的应用
|
3月前
|
缓存 网络协议 API
分布式系统应用之服务发现!
分布式系统应用之服务发现!