sealos 五年磨一剑——云操作系统正式发布

news2025/4/6 4:33:48

这是计划的一部分

这是一个宏伟的计划,漫长且有趣。。。

2018 年的一个晚上,我写下了 sealos 第一行代码,当时仓库命名 “kubeinit”,后一想格局太小,我不可能只做一个安装 kubernetes 的事,安装只是计划的一部分,后面改名 sealos,一个宏大的云操作系统计划诞生!

file sealos 第一个版本写完我就放到了阿里云市场上去售卖了,15 元一份,没准备能卖出去,结果还真有人买了!真的赚到这 15元时我异常兴奋,似乎一个商业帝国就在我眼前了。 但是结果就是花了一整天的时间给这个客户做售后服务。。。电影院里还在解决问题。

然后很快就卖爆了,很短时间就给我换了个 iphone8,不过问题也确实是多,导致我根本就服务不过来,这时我决心重写。发布了 v2 的 ansible 版本,最终还是感觉没做到极致,因为用户还是好多依赖搞不定,直到读完 kube-proxy 的源码我发现有一种方案可以把负载均衡彻底变简单,干掉所有依赖,于是写了 v3 版本的 sealos,在安装上是做到极致了。

为什么开始执着安装

因为这是入口,绝大多数人搞云原生时都绕不开这件事,流量入口足够大,是个非常好的切入点,用户习惯了用 sealos 安装就会逐步探索其它功能了。

在阿里的工作

在阿里的时候写了 sealer,这里很重要的点就是让安装足够灵活,以前只能我制作安装包别人来用,而集群镜像的创新可以让用户自由定义安装包是怎么样的,也可以自由组合任意的安装包。这里有个非常让我自豪的想法是把整个集群看成了一个整体,把 kubernetes 看成了操作系统,那么在这个云操作系统里面的“云版 Docker 镜像会是什么样的” 就非常有趣了。

FROM kubernetes:v1.25.0
COPY mysql .
CMD helm install mysql .

这显然是个伟大的想法,极其抽象灵活。单机操作系统也有刻在光盘里的“镜像”,而这个设想让云操作系统也有了“镜像”,伟大构想又完成一个环节。

创业一年

sealos 云操作系统最终会长成什么样子?其实是个非常难的问题,我只有一个模糊的想法,若影若现,直到创业过程中连续迭代了三个版本,才有了今天的形态 —— 一切皆应用!理解它非常简单,就把单机操作系统上安装的单机应用替换成各种分布式应用即可,整个数据中心你看到的就不再是一台一台孤立的服务器,而是一个整体,变成了一台虚拟的超级电脑。

file 这样简单/干净/极致 的云操作系统,我相信你看到它时很难不喜欢!

这就是我五年的呕心沥血之作 —— sealos! 献给大家~

云可以这样干净

sealos 里面没有按钮是多余的,把功能做多很简单,而做到简单且强大才是最难的,我们花了大精力在产品设计上,任何人使用 sealos 时我相信一定是舒服的。

B 端软件使用者与付钱的人一直都不是同一个人,导致产品体验很少得到重视,都是搞定决策者最关键,谁管软件多难用。而 sealos 不一样,我们认为产品体验大于一切,如果在产品上花大精力导致我们最终死掉了,那死而无憾。

file 这种黑白灰的设计风会让你感觉使用产品时像在喝白开水,而不是在喝饮料,更不是在喝洗脚水(某些产品使用起来想死的心都有)。开发者已经够痛苦了,我希望你们在使用时心情美好。

sealos 会一针见血的戳中应用的痛点问题,比如这个应用管理器,30s 可以让你上线自己的应用,这里涉及到非常多的细节问题比如自动配置公网域名,自动解决 https 证书问题等。

云可以这样便宜

我在 sealos 上跑了 10 多个应用,三个数据库,有博客,低代码平台,播测试平台什么的,每天只花 4 块钱:

file 为什么能这么便宜:

  • 只需要为跑的容器付费,无需虚拟机,也无需创建整个 kubernetes 集群,打开直接用。
  • 自动伸缩,夜间用户量少时副本缩小到 1.
  • 我们可以充分利用率公有云的弹性,写大量自动化代码,夜间释放计算资源,降低成本。

对于企业来说,能夸张级别的节省成本,我们自己在 10台服务器上跑了 7000+ 个应用,这意味着企业部署一套 sealos,只要服务器资源利用率低于 70% 就可以一直往集群中塞应用,直到塞满为止。

你可能觉得直接用 kubernetes 为啥不行?原因很简单,比如讯飞这种企业,应用分散在各种部门,这时多租户/隔离与协作会变成刚需,直接使用会把集群搞乱,最要命的可能是一个部门或者用户不注意搞了个安全问题会让整个集群奔溃,而 sealos 完美解决了这个问题!

sealos 可以帮助 80% 企业降低 80% 资源使用成本。

云可以这样自由

与其他的管理平台或者 PaaS 平台不同,sealos 的核心设计理念是 “一切皆应用”,不同的开发者,不同的角色使用不同的应用,这就让每个用户个体在使用时没有心智负担,就和安卓生态几十上百万个应用而你关心的就是那 20 款以下,你不用关心其它的应用在干啥。

file 这样设计有这些好处:

懂不懂 kubernetes 都能很好的使用 sealos

很多基于 kubernetes 的 PaaS 平台或者发型版要么就是暴露大量 kubernetes 原生概念,要么就是屏蔽掉这些概念,其实这两种做法都不对。

暴露大量原生概念对小白和新手不友好,屏蔽掉 kubernetes 就丧失了灵活性/兼容性 以及对 kubernetes 老司机非常不友好。

sealos 的做法是不同的人用不同的应用即可,比如你是开发者想写 CRUD,就可以直接用 Laf 这个 function 应用,是 DBA 直接用个数据库应用,这种场景完全不用关心 kubernetes,完全屏蔽。

比如用户是个云原生专家,那他可以在 sealos 上安装 lens kubernetes dashboard 等,也可以打开 terminal 敲各种原生的命令。这就极大的提升了灵活度。

自由组装

应用之间的相互配合使用是 sealos 很关注的,比如你在 sealos 上使用函数计算,可能函数内置默认数据库是 mongo,但是你想用 pgsql 怎么办,这时就可以在 sealos 上安装一个 pgsql 的应用,然后通过服务发现直接在函数计算里面去访问,由于在一个集群可直接通过内网 DNS 相互配合。

你可能还想管控一下 pgsql 数据库,就可以直接装个 bytebase 应用来管理数据库表结构和数据等。

sealos 可以非常轻,所有东西都可以卸载掉,这就让云能够恰好满足你的需求,多一分则嫌多,少一分则嫌少。同样意味着不管是一台服务器还是几百上千台的数据中心都可以通过一条命令构建出一朵云。

到底能干啥?

  • 30s 在 sealos 上跑一个 nginx demo,自动伸缩
  • 30s 起各种数据库,业务系统内网直接连接数据库
  • 在 sealos 上启动你写的各种编程语言的业务

OK 知道这三个就够了,其它能力慢慢探索,慢慢发现新大陆。 在跑自己业务上我们针对这个场景做了非常多细节优化,比如自动分配二级域名,自动横向伸缩,支持跑各种有状态的服务等。

当你 quick start 完了之后你会发现:

  • 原来可以很快在 sealos 上部署一个拨测系统。。。
  • 原来可以很快在 sealos 跑一个低代码平台。。。
  • 原来可以把我的博客跑在 sealos 上,便宜的要死。。。
  • 原来可以用 sealos terminal 运行任何兼容 kubernetes 的应用。。。
  • 原来还可以直接拿到用户的 kubeconfig 做各种自动化。。。

当你更进一步发现:

  • 原来有个 AI 再帮你自动做故障诊断。。。
  • 原来 AI 可以帮助你自动上线业务。。。
  • 原来 AI 可以帮你写代码并自动测试和上线。。。
  • 原来 kubernetes 不重要,sealos 上完全可以跑各种应用,不同的人用不同的应用即可。。。
  • 你会 WoC,sealos 居然几乎啥都能干,真 TMD 通用,还 TMD 这么简单!
  • 最后你发现 哇!原来这就是云操作系统!

最后最后,你玩出花了,发现原来不止开发者能用 sealos,普通人也能用,于是:

  • 你在 sealos 上装了财务软件
  • 你在 sealos 上装了知识库,给企业所有人写笔记
  • 你在 sealos 上装了聊天软件供企业内部沟通协作

真的有人在用吗?

那可不,sealos 社区用户 10w+,不乏各种大厂。

file 上线两个月时间注册用户已经破万,云服务共计运行 7000+ 应用。

是不是只有一些小微应用才适合 sealos?

当然不是,sealos 的客户中有国健大数据,在疫情期间支撑健康码的服务,一秒钟都不能挂的高并发业务。 也支撑过超大规模的 GPU 集群,每天处理 80T 数据,整个集群 80PB 数据。聚道云上百个应用跑在 sealos 函数计算应用 Laf 上面。

阶梯计划

Sealos 最终想成为通用普及的云操作系统,让用云变得像用 linux 发行版本一样简单。

用 Sealos 企业可以:

  • 一分钟上线一个业务
  • 一年省一半成本
  • 一键起一朵云

企业用云,装个 sealos 就够了。

未来我们先会把企业中常用到的应用做精致,如数据库/消息队列/推理能力/各种编程语言执行环境支持。

Sealos 云操作系统中会内置一个 copilot 他可以自动进行云原生化改造,磨平普通开发者用户迈向云原生的鸿沟,也可以像一个专家一样帮助你去诊断集群中问题,安全漏洞,并给出专业的操作建议。

总结

Sealos 五年来总算达到了我当初写下第一行代码时的愿景 —— 云操作系统。

在这里感谢:

  • 那位第一个为我付了 15块的同学,极大的信心与鼓舞,不亚于拿到投资。
  • 社区的全体贡献者,特别是一路以来都在相伴的老崔同学,众行远。
  • 讯飞非常复杂的业务场景对技术的磨练,让我对业务场景有更深入的理解。
  • 阿里云在我写 sealer 时的支持与帮助,为 sealos 集群镜像的底层能力打下坚实的基础。
  • 感谢现在与我一同创业的所有伙伴,是大家把一个 idea 变成了现实。
  • 感谢奇绩创坛踹了我临门一脚,也感觉 Qi 博士出乎意料的看好我们给了我们很大信心。
  • 感谢李军院长康一教授,张海龙,高捷资本,金福资产给我们的帮助与指导以及信任。
  • 感谢每一位使用 sealos 的用户,你们包容了整个迭代过程中的种种问题,一起让 sealos 更完美。

也提前祝贺大家选择了我们是一个非常正确的决策,现在 sealos 已经进入了一个全新的起点,未来我们一定不负众望,交给大家一个完美的云操作系统。 sealos 以kubernetes为内核的云操作系统发行版,让云原生简单普及

laf 写代码像写博客一样简单,什么docker kubernetes统统不关心,我只关心写业务!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/643546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不知道测试什么?这些是你需要知道的软件测试类型和常识

有多少软件测试类型呢? 我们作为测试人员了解很多种不同的软件测试类型,例如功能测试(Functional Test)、非功能测试、自动测试、敏捷测试、以及它们的各种子类型. 尽管在我们的测试过程中会接触很多种测试类型, 或者听说过某些测试类型,但是很少人敢说…

小姐姐们,一起学数据分析

💖 亲爱的女生们,听我说!数据分析,给你的未来注入浪漫与激情!💖 嗨,小姐姐们👭, 我想和你们分享一个令人兴奋的话题——数据分析!或许你们会觉…

Liunx系统重修

Liunx中以“树”结构的形式来管理文件和文件夹的!

ISP下载原理分析

STM32的启动方式,系统存储器启动就是通过ISP下载 ISP简介 ISP下载是指可以通过串行外设,直接将程序下载Flash中,然后自动运行程序的启动方式。 ISP的时候需要用到bootloder(自举程序),bootloader存储在STM32内部的自举ROM存储器…

webpack踩坑

因为电脑重新装了系统 所以很多环境都需要配置 1.首先去node.js官网下载了node,node下载后对应的npm版本也会自动下载好 2.想要成功跑通项目,还需要下载webpack 全局安装webpack npm -i webpack -Dnpm install webpack-cli -g但一直在报错 查看webpac…

基于Java毕业生就业信息统计系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

2023互联网Java高级工程师1080道面试题(附答案)分享

Java 面试八股文有必要背吗? 我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。现如今,Java 面试的本质就是八股文,把八股文面试题背好,面试才有可能表现好。…

python字符串格式化控制数值经度

python字符串格式化通过占位符拼接演示了字符串格式化拼接的方法 但是大家应该有注意到 我们的 8.70 就变成了 8.700000 那么 我们就需要对浮点数 做一个经度控制 我们先编写如下代码 dom1 110; dom2 1234.1234567; print(dom1) print(dom2)运行结果如下 我们定义了一个整…

【RuoYi-Cloud-Plus】学习笔记 07 - Sentinel(二)Node ProcessorSlotChain 总览与知识整理

文章目录 前言参考目录版本说明学习笔记1、Sentinel 架构图2、Node2.1、入口节点 EntranceNode2.2、链路节点 DefaultNode2.3、簇点 ClusterNode2.4、统计节点 StatisticNode3、Slot Chain3.1、DefaultSlotChainBuilder3.1.1、Slot 排序的实现3.1.2、SPI 文件读取3.2、NodeSele…

Java并发工具之ThreadLocal

一、ThreadLocal 简介 1. ThreadLocal 是什么? ThreadLocal 字面意思是本地线程,其实更准确来说是线程局部变量,线程类 Thread 有个变量叫做 threadLocals,其类型就是ThreadLocal.ThreadLocalMap 类型,他其实不是一个…

回忆童年游戏,完美利用Python制作飞机大战(爷青回~)

名字:阿玥的小东东 学习:python、C/C 博客链接:阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 pygame包的安装 添加python环境变量 创建飞机大战窗口 飞机照片 将变量及函数抽取出来 添加多…

LeetCode:31. 下一个排列

31. 下一个排列 1)题目2)思路3)代码4)结果 1)题目 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1…

Nacos负载均衡策略

文章目录 按权重分配流量负载均衡自定义负载均衡策略 按权重分配流量负载均衡 SpringCloud新版本(2021.x.x)中负载均衡器用LoadBalancer替代了Ribbon,默认只提供了2种负载均衡策略:RandomLoadBalancer 和 RoundRobinLoadBalancer。…

[冷冻电镜]IMOD使用指南

参考教程: Etomo Tuturial for IMOD version 4.11 1. Initial Setup 本教程提供了一个小双轴示例数据集和Etomo的分布指南,更详细的内容参考Tomography Guide。该版本使用1k*1k的图像而不是压缩版本。imodhelp命令可以打开帮助界面,查看各种…

java并发之CAS(Compare and swap)

1. 简介 CAS的底层调用native方法,最终是利用CPU的一个特殊指令,该指令由CPU保证了原子性,而且包含多个操作,比如先比较再更新。 原理: (1)需要读写的内存值(V)、原值…

【Kafka】Docker安装kafkajava kafka api

内容目录 一、安装zookeeper1 拉取镜像2 创建network3 启动容器 二、安装kafka1 拉取kafka镜像2 启动kafka容器3 创建topic4 创建生产者5 创建消费者 三、kafka的java api1 producer2 消费者 docker依赖于zookeeper,首先安装zookeeper 一、安装zookeeper 1 拉取镜像…

[PyTorch][chapter 40][数据增强]

前言: 深度学习对数据量要求非常大, 我们通常会遇到图像的数据集比较小,影响Train效果。 这个时候可以通过transformer 方法,增加图像的多样性,达到数据 增强的效果。 transformer 不会单独使用,通常和其它torch 其他类一起使用 transformer 常用方法…

可视管理 数字孪生智慧隧道一体化管控平台

前言 交通是国家发展的关键,四通八达的交通路线,对国家经济、社会等方面的发展起着至关重要的作用。 建设背景 随着社会经济的持续发展与城市化进程的平稳推进,我国公路工程规模逐步扩大,公路工程建设直接影响着城市未来发展与…

Vue 报错 error:0308010C:digital envelope routines::unsupported

症状 Vue 报错error:0308010C:digital envelope routines::unsupported 原因 出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响. 解决方法 方法1 打开终端&#x…

React 应用 Effect Hook 函数式中操作生命周期

React Hook入门小案例 在函数式组件中使用state响应式数据给大家演示了最简单的 Hook操作 那么 我们继续 首先 Hook官方介绍 他没有破坏性是完全可选的 百分比兼容 也就说 我们一起的 类 class的方式也完全可以用 只要 react 16,8以上就可以使用 Hook本身不会影响你的react的理…