By Sealer Community
On April 26, 2022, Cloud Native Computing Foundation (CNCF) voted that the open-source Sealer project is allowed to become an official CNCF sandbox project in the TOC regular meeting. The Sealer project was born in Alibaba Cloud Intelligence to deal with the standardization of packaging, distribution, and operation of distributed software. Since May 2021, Alibaba Cloud engineers firmly made the project open-source at the very beginning of its development. Over the past year, Sealer has been widely favored by users in the independent software vendor (ISV) market. Thanks to its innovative ideas and fast-growing user base in a short period, Sealer has successfully applied for and been accepted by CNCF. On May 16, this new CNCF Sandbox project will also appear at the KubeCon EU Summit to share its technical architecture, community progress, and roadmap with cloud-native developers worldwide.
In general, Kubefile is the core innovative point of Sealer. So far, Sealer has been the first project in the industry to abstract the concept of cluster image. It uses Kubefile (a description file similar to Dockerfile) to build an image of the entire cluster and makes it run anywhere. The cluster image built by Kubefile can package all the files the entire cluster depends on and run in minutes with one command.
If you are required to deliver a cluster containing highly available MySQL, Redis, and WordPress, you only need to define a Kubefile, which is very similar to Dockerfile. You can package all the dependencies of Kubernetes and all the components into CloudImage with the Sealer build command and then use the CMD command to specify the commands to be executed after the cluster is started.
Compared with the workflow of Docker, Sealer can define a Kubefile build and a CloudImage and then use a Clusterfile to put in parameters required by the entire cluster, such as the server IP address list or component configuration. Finally, the entire cluster can be delivered by the Sealer run.
Docker images solve the problem of packaging a single application but do not solve image-related problems of distributed applications. Orchestration tools (such as Helm) deal with the orchestration problem but do not deal with the packaging problem. Currently, there are no packaging standards for clusters, and it is complicated to build a custom Kubernetes cluster. Moreover, the deployment of the entire cluster and distributed applications is only process-oriented, and surging delivery problems have not been solved. In addition, the overall delivery consistency of the cluster is poor. A distributed application often has many configurations as well as many application images and dependencies, especially in the Alibaba Cloud Apsara Stack delivery field. Even in some cases, it needs to be delivered offline. The delivery process encounters significant challenges.
A cluster image regards the entire cluster as a server and Kubernetes as a cloud operating system. It realizes image-based packaging and delivery of the entire cluster and provides the out-of-the-box technology of application packaging for enterprise-level software. A cluster image can use a very simple method to package all the dependencies of an application in a standardized way and run them into a customer's cluster with one click. It can be compatible with complex infrastructure, but you need to ensure the cluster image construction process runs without problems. A large number of built reusable images will be provided in the cluster image marketplace. Software users can flexibly combine these image services with their applications like building blocks, such as databases on which SaaS applications depend, MSMQ, and even Kubernetes itself that can be found in the market.
Using cluster image technology can ultimately help enterprises pull up a complex custom cluster with one click, improving delivery efficiency and reducing delivery error rates. Directly reusing mature and stable components can also improve software stability. Delivery staff no longer have to worry about complex deployment details, and problems related to collaboration between software producers and customers are addressed.
Sealer has 52 contributors. Currently, dozens of customers are using Sealer.
Sealer has gradually stabilized its user interface, and a lot of optimizations have been made in the past year. Building a cluster image has been reduced from 25 minutes to three minutes. The runtime performance of a large image is reduced from an hour to less than ten minutes. It only takes three minutes to minimize a cluster, and the connection of public cloud drivers is reduced from three minutes to 29 seconds.
In terms of user experience, Sealer v0.8.0 (released in April 2022) upgraded Clusterfile to version 2.0, which is more streamlined, easy to expand, and fully compatible with all kubeadm configurations. It supports the modification of any configuration in cluster images through deep merging and full lifecycle plug-ins, the capability for customizing script execution. It also has more plug-ins and flexible plug-ins. In addition, it supports the development of out-of-tree plug-ins using the Go programming language. The out-of-tree plug-in mechanism provides more freedom to customize Sealer.
In terms of ecosystem, Sealer supports more than 20 common cluster images, such as Prometheus, MySQL, Redis, and Kafka. Therefore, users can use commands like sealer run mysql:8.0
to start a highly available MySQL cluster with one click.
ACK Distro [1] (Alibaba Cloud Container Service for Kubernetes) and CNStack Community Edition [2] (downloadable for free from the Alibaba Cloud technical middle platform) are also based on the Sealer technology to achieve the capabilities for the packaging, distribution, and delivery of the entire container platform. At the same time, community developers are allowed to add open-source components or their components through the Kubefile extension of Sealer to create more complex software stacks and support more application scenarios.
The core concept of Sealer is to build the entire cluster and distributed applications like Docker, ensuring consistency in the entire cluster latitude to build, share, and run all distributed software in the entire cluster.
[1] ACK Distro:
https://www.aliyun.com/product/aliware/ackdistro
[2] CNStack Community Edition:
https://github.com/alibaba/CNStackCommunityEdition
Dubbo3 and the Triple Protocol: Why It Is the Logical Choice
KubeVela 1.4: Make Application Delivery Safe, Foolproof, and Transparent
503 posts | 48 followers
FollowAlibaba Cloud Community - June 2, 2022
Alibaba Cloud Native Community - July 6, 2022
Alibaba Cloud Native Community - September 7, 2022
Alibaba Cloud Native Community - December 23, 2021
Alibaba Cloud Native Community - June 29, 2022
Alibaba Developer - September 16, 2020
503 posts | 48 followers
FollowAccelerate and secure the development, deployment, and management of containerized applications cost-effectively.
Learn MoreAlibaba Cloud Function Compute is a fully-managed event-driven compute service. It allows you to focus on writing and uploading code without the need to manage infrastructure such as servers.
Learn MoreMulti-source metrics are aggregated to monitor the status of your business and services in real time.
Learn MoreAlibaba Cloud Container Service for Kubernetes is a fully managed cloud container management service that supports native Kubernetes and integrates with other Alibaba Cloud products.
Learn MoreMore Posts by Alibaba Cloud Native Community