这是一个宏伟的计划,漫长且有趣。。。
2018 年的一个晚上,我写下了 sealos 第一行代码,当时仓库命名 “kubeinit”,后一想格局太小,我不可能只做一个安装 kubernetes 的事,安装只是计划的一部分,后面改名 sealos,一个宏大的云操作系统计划诞生!
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 云操作系统最终会长成什么样子?其实是个非常难的问题,我只有一个模糊的想法,若影若现,直到创业过程中连续迭代了三个版本,才有了今天的形态 —— 一切皆应用!理解它非常简单,就把单机操作系统上安装的单机应用替换成各种分布式应用即可,整个数据中心你看到的就不再是一台一台孤立的服务器,而是一个整体,变成了一台虚拟的超级电脑。
这样简单/干净/极致 的云操作系统,我相信你看到它时很难不喜欢!
这就是我五年的呕心沥血之作 —— sealos! 献给大家~
sealos 里面没有按钮是多余的,把功能做多很简单,而做到简单且强大才是最难的,我们花了大精力在产品设计上,任何人使用 sealos 时我相信一定是舒服的。
B 端软件使用者与付钱的人一直都不是同一个人,导致产品体验很少得到重视,都是搞定决策者最关键,谁管软件多难用。而 sealos 不一样,我们认为产品体验大于一切,如果在产品上花大精力导致我们最终死掉了,那死而无憾。
这种黑白灰的设计风会让你感觉使用产品时像在喝白开水,而不是在喝饮料,更不是在喝洗脚水(某些产品使用起来想死的心都有)。开发者已经够痛苦了,我希望你们在使用时心情美好。
sealos 会一针见血的戳中应用的痛点问题,比如这个应用管理器,30s 可以让你上线自己的应用,这里涉及到非常多的细节问题比如自动配置公网域名,自动解决 https 证书问题等。
我在 sealos 上跑了 10 多个应用,三个数据库,有博客,低代码平台,播测试平台什么的,每天只花 4 块钱:
对于企业来说,能夸张级别的节省成本,我们自己在 10台服务器上跑了 7000+ 个应用,这意味着企业部署一套 sealos,只要服务器资源利用率低于 70% 就可以一直往集群中塞应用,直到塞满为止。
你可能觉得直接用 kubernetes 为啥不行?原因很简单,比如讯飞这种企业,应用分散在各种部门,这时多租户/隔离与协作会变成刚需,直接使用会把集群搞乱,最要命的可能是一个部门或者用户不注意搞了个安全问题会让整个集群奔溃,而 sealos 完美解决了这个问题!
sealos 可以帮助 80% 企业降低 80% 资源使用成本。
与其他的管理平台或者 PaaS 平台不同,sealos 的核心设计理念是 “一切皆应用”,不同的开发者,不同的角色使用不同的应用,这就让每个用户个体在使用时没有心智负担,就和安卓生态几十上百万个应用而你关心的就是那 20 款以下,你不用关心其它的应用在干啥。
懂不懂 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 可以非常轻,所有东西都可以卸载掉,这就让云能够恰好满足你的需求,多一分则嫌多,少一分则嫌少。同样意味着不管是一台服务器还是几百上千台的数据中心都可以通过一条命令构建出一朵云。
OK 知道这三个就够了,其它能力慢慢探索,慢慢发现新大陆。 在跑自己业务上我们针对这个场景做了非常多细节优化,比如自动分配二级域名,自动横向伸缩,支持跑各种有状态的服务等。
当你 quick start 完了之后你会发现:
当你更进一步发现:
最后最后,你玩出花了,发现原来不止开发者能用 sealos,普通人也能用,于是:
那可不,sealos 社区用户 10w+,不乏各种大厂。
上线两个月时间注册用户已经破万,云服务共计运行 7000+ 应用。
是不是只有一些小微应用才适合 sealos?
当然不是,sealos 的客户中有国健大数据,在疫情期间支撑健康码的服务,一秒钟都不能挂的高并发业务。 也支撑过超大规模的 GPU 集群,每天处理 80T 数据,整个集群 80PB 数据。聚道云上百个应用跑在 sealos 函数计算应用 Laf 上面。
Sealos 最终想成为通用普及的云操作系统,让用云变得像用 linux 发行版本一样简单。
用 Sealos 企业可以:
企业用云,装个 sealos 就够了。
未来我们先会把企业中常用到的应用做精致,如数据库/消息队列/推理能力/各种编程语言执行环境支持。
Sealos 云操作系统中会内置一个 copilot 他可以自动进行云原生化改造,磨平普通开发者用户迈向云原生的鸿沟,也可以像一个专家一样帮助你去诊断集群中问题,安全漏洞,并给出专业的操作建议。
Sealos 五年来总算达到了我当初写下第一行代码时的愿景 —— 云操作系统。
在这里感谢:
也提前祝贺大家选择了我们是一个非常正确的决策,现在 sealos 已经进入了一个全新的起点,未来我们一定不负众望,交给大家一个完美的云操作系统。 sealos 以kubernetes为内核的云操作系统发行版,让云原生简单普及
laf 写代码像写博客一样简单,什么docker kubernetes统统不关心,我只关心写业务!