云链合一,我的开源之路

作者:fanux.中弈.方海涛 sealos作者,sealer发起人

2022年2月24日,方海涛,阿里云原生技术专家在“2022云原生超级英雄会”直播中分享了他的两个开源项目sealos和sealer。

sealos诞生及商业化

sealos诞生的过程是很有趣的。K8s 早期版本时,官网上找不到可用度高的安装工具,即便是官方也没有给出高可用相关的文档,此时我写了一个可用度较高的安装脚本放在阿里云市场上,有很多人下载,需求非常旺盛。但是此脚本也存在很多问题,基本每个用户使用都会遇到bug,以至于我在电影院看电影的时候都需要支持解决问题。

于是为了让体验更好我写了第二个版本——ansible版诞生了。但ansible只是使用起来方便许多,并没有解决根本的安装复杂问题,比如对于很多用户安装ansible本身都不成功,特别是在离线的环境中更容易出错,就又需要把ansible放到docker中,这样俄罗丝大娃套小娃。

为了解决这个问题,我思考了很长时间,最后在kubeproxy源码上找到了灵感,发现负载均衡器的实现方式可以来借用一下,去掉很重的组件,使整个脚本变得简单。于是第三个版本用golang解决了以往的问题。把事情做到简单极致,一条命令解决一切。sealos已经诞生三年,即便在今天依然非常先进,这也是sealos有竞争力的地方。

sealos从诞生之日起就是商业化的,最早的脚本便放在市场上进行售卖了,在云市场上架的人工审核时间要一周的时间,需要人为催促或者手动上传,整个过程非常消耗精力和时间。为了解决这个问题,社区写了一个网站售卖sealos,机器人通过网站的API将sealos安装包传到云市场,保持最快的更新速度。整个过程全部由机器人自动构建、自动测试、自动上架。

早期的时候我几乎每天写代码写到夜里12点左右,下半夜开始在云市场上找客户拿到他们的联系方式,与他们联络,积累了一些种子客户。后续的发展主要通过一些技术博客引流,目前已经到了用户口碑传播的阶段,真正进入了爆发期,甚至有一段时间短短两周的增长超过之前两年总和,所以把作品做到极致是实现爆发增长的必要因素,在产品还不够极致时去推广很多时候适得其反。

从sealos到sealer

为什么sealos出现了爆发性增长,还要再开发sealer呢?因为sealos是单纯地为K8s构建的,但是用户的需求非常复杂,所以需要sealer来解决这些各不相同的问题。比如客户需要的组件并不相同,比如集群中组件的配置如何管理,如何很方便的让用户定制自己需要的安装包等。sealer参考吸收了Docker的设计思想,它将整个集群以及所有依赖做成镜像,将用户的中间件、数据库、SAAS等组合成集群镜像,最后一键运行整个集群。

sealer诞生的几个月后便在两三家客户的生产环节落地了,大概一年的时间增长到40余家。当时需求十分旺盛,sealer可以解决专有云交付、自定义集群等问题。无论是在云上、云下或者专有云,使用sealer进行交付都是很便捷的方式。

Sealer更是特别重视使用体验而不是一味的堆功能,针对很多需求我们并不满足于只是实现需求,而是会思考实现的方案是否优雅,是否会给不用这块功能的人带来困扰,我们寻求的是全局最优解而不是局部某个客户的最优解,所以在sealer从Kubefile到Clusterfile到配置管理插件等设计都能看到在追求极致,多一分则嫌多,少一分则嫌少,通过大道至简的高度抽象满足各种奇葩复杂的需求,极大的降低了整个云原生领域生态软件的落地和交付门槛。

云链合一的未来

从应用的视角观察会发现应用的开发者关心的是业务逻辑而不是底层的问题,对于应用开发者而言应当让他们不用关心底层复杂应用的基础设施,弹性伸缩以及监控流程等问题。所以 serverless faas 低代码等会成为一个趋势,现在很多比较敏感的公司都采用这些技术,节省开发成本和基础设施费用,它确实不用消耗很多资源,按需扩容和按需弹性各方面都会非常好,在开发时不用写很复杂逻辑,最简程度解决问题。

有意思的是区块链合约的发展,最早的比特币脚本开始的,早期的比特币脚本比较单一,只能进行简单的操作,就是处理出栈入栈操作,不是图灵完备。向后发展以太坊合约可以跑在EVM上,你会发现EVM就是个容器,solidity语言就是用来写合约,此时合约与faas已经非常像了。

再往后发展,可以看到今天的一些公链很多以wasm作为合约,如polkadot 的ink!,通用性大大提高,你甚至可以用任意语言来写合约。结合云原生领域的发展可以看到大家似乎在往一个方向发展。

合约本质上与faas十分相似,FaaS对应几个函数接口,合约也是同样,可以使用前端js调用合约或者function。js相当于前端,合约相当于后台,写合约的人不用去关心服务器的存在,只需要关心是否运行。两个地方朝着一个方向发展,开发者不用再关心后端很复杂的基础设施了。

在未来,会有一个强大的云操作系统使世界级计算机运行起来,所有的业务都可以基于计算机上的云计算体系产生颠覆效应。这也会是我未来发展的主要方向。

开源历程中的感悟

我自己的感悟主要有几点:
第一,静心学习,巧妇难为无米之炊,很多想法并不是凭空诞生的,多沉淀知识,才能够有想法,将想法组合组装,一些灵感就会诞生。多去了解市场行情,听听用户的想法,发现用户的痛点,结合自己的想法付诸实践,解决用户的问题。不要急躁,专心打造优雅的作品然后很自豪的去分享你的作品。

第二,持续的写代码,对于开发者来说这是根本。不要担心写代码没出路,没出路一定是代码写的不够好,国外已经有很多码农写出百亿美金的公司了,随着时代发展国内也会出现很多这样的例子,管理并非我们的唯一出路。

第三,若是通过开源运营一家公司,有三要素,1. 要了解市场时空,有足够的市场空间和好的时机。2.根本灵魂在于好作品,以产品为驱动,我自己会花80%以上精力在产品上。3. 合理运营,让用户知道你的好东西,并形成口碑传播。 以前我认为商业模式也应当是要素之一,后来我觉得这不重要,解决了用户痛点有就可以有100种商业模式。

以上是我关于开源项目sealos与sealer的全部分享。云原生是应用开发的大变革,在开发者的共同努力下,会挖掘出更多有意义的开源项目促进云往简单开放的方向发展。

03-22 16:29