Skip to main content

· One min read

历时两年,打破“隔行如隔山”困境

本文撰写于 KusionStack 开源前夕,作者有感而发,回顾了团队从 Kusion 项目开发之初到现今成功走上开源之路的艰辛历程。当中既描述了作者及其团队做 Kusion 项目的初心和项目发展至今的成果,也表达了作者自身对团队的由衷感激,字里行间都散发着真情实感。

1. KusionStack 是什么?

KusionStack 是开源的可编程云原生协议栈!

Kusion 一词来源于 fusion(意为融合),希望通过一站式的技术栈融合运维体系的多个角色,提升运维基础设施的开放性、扩展性,从整体上降本增效。KusionStack 通过定义云原生可编程接入层,提供包括配置语言 KCL、模型界面、自动化工具、最佳实践在内的一整套解决方案,连通云原生基础设施与业务应用,连接定义和使用基础设施的各个团队,串联应用生命周期的研发、测试、集成、发布各个阶段,服务于云原生自动化系统建设,加速云原生落地。

2. 为了一个理想的运维体系

2019 年秋,MOSN 的工作已持续了近两年,期间我们逐步完成了在支付宝核心链路的形态验证。整个过程中除了 MOSN 本身面对的种种技术挑战和困难,所谓的云原生技术红利,实际上也已经掣肘于运维系统固化所造成的效率制约。

有一天主管找我吃饭(下套),期间向我描述了他理想中的运维体系:

他希望 SRE 能通过一种专用语言来编写需求,通过写代码来定义基础设施的状态,而不是花费极大的精力在检查、发现、修复的循环上。基础设施团队则通过提供开放的可编程语言和工具支撑不同诉求的 SRE 团队,达到更高的整体 ROI。

我立刻意识到这和 Hashicorp 的 Terraform 神之相似(后来 Hashicorp 在 2021 年底上市,以超过 150 亿美元的市值成为迄今为止市值最高的一次开源 IPO)。另一方面,不同于 IaaS 交付场景,蚂蚁面对着大量更规模化、复杂度更高的云原生 PaaS 场景,又让我想到了 Google 内部运用专用语言、工具等技术开放 Borg 和相关的 运维能力的实践,当时感觉这是 一个既有意思又有挑战的事

饭桌上我们聊了一些思路以及一些还不太确定的挑战,他问我想不想搞一个试试,搞不成也没关系。当时没想太多,饭没吃完就答应了。

3. 漫长的学习、探索与实践

隔行如隔山。

没有过语言设计研发的经验,也没有过开放自动化系统设计的经验,项目开展之初,我们就陷入了举步维艰的困境。

经历了一段漫长时间的学习、摸索和实践的反复循环之后,项目依旧没有大的起色,更困难的是我们不但要面对蚂蚁内部复杂又耦合的场景和问题,还要经受「这种高度工程化的方式在蚂蚁是否有生存土壤」的质疑。

屋漏偏逢连夜雨,期间又令人惋惜且无奈的经历了一些人事变化,同时由于种种原因,项目一度陷入了各种困境。整个 2020 年,我们在未知、纠结、无奈中度过……

感谢瓴熙、庭坚和我的主管,感谢你们当时没有放弃这个项目,依然与我一同坚守。

4. 痛并快乐的孵化之旅

通过持续地布道、交流和沟通,我们逐步在基础设施技术团队和 SRE 团队找到了更多有共识的朋友。

同时在技术上,我们亦脱离了迷茫,真正意义上地启动了 Kusion 项目,也成功地从 PoC 过渡到了 MVP 的阶段。

最终,我们以“非标”应用为切入点,开始了痛并快乐着的孵化之旅。

感谢零执、青河、子波、李丰、毋涯、向野、达远……在这里无法一一列举,感谢你们的坚持让这个想法逐步成为现实。

5. 突破与进展

略过中间的种种探索和实践,回顾这段历程,在这一年多的时间里我们结合了编译技术、运维及平台技术,成功建立了一个基于 Kusion 可编程技术栈的运维体系。

在业务场景上,项目覆盖了从 IaaS 到 SaaS 的大量运维场景,截至目前共接入了 800+ 应用,覆盖 9 个 BG,21 个 BU,其中典型案例交付运维提效 90% 以上,这也是蚂蚁内部第一次将大量异构应用纳入到一整套运维技术栈。

在蚂蚁我们基于云原生容器和微服务技术深入探索了 DevOps、CICD 实践,完善了蚂蚁的云原生技术体系,逐步释放了云原生效率红利,同时形成了一个近 300 人的虚拟运维研发团队。

不同职能不同团队的参与者凝聚在一起解决各自所面对的问题,贡献了 30K+ commit 和 350K+ 行代码,有一些参与者自发成为 Kusion 的研发者 。我认为这些工程师文化理念和领域知识的积累带来了远超运维业务本身的价值。

此外,Kusion 也成为了可编程基线产品、云原生运维产品、多云交付产品等新一代运维产品的基础技术,成为蚂蚁运维体系架构升级的一部分。

不忘初心,我们希望通过技术手段促进与运维参与方的合作关系的合理化、基于开放技术栈的自动化,以及运维数据与知识的沉淀积累,以达到整体协作运维效率的不断提升。

同时,因蚂蚁内部运维场景较多且链路复杂,每个环节都需要最懂运维业务的 SRE 密切参与,与平台、应用研发协同工作,最终各环节联合在一起形成了一套完整的运维体系,在这样的思路下开放技术也会越来越重要。

平台研发、SRE、应用研发等多种角色协同编写的代码是一种数据的沉淀,亦是一种业务知识的沉淀,基于这些数据和知识,未来会有更多的可能性。

6. 走上开源之路

在历经了一段内部探索之后,我们希望把 KusionStack 开源到技术社区。因为我们意识到自身面对的问题,其他公司、团队其实也同样正在面对。借助开源这件事,我们希望团队的这些工作成果能对更多人有所帮助。

当然,也受限于自身能力以及精力和资源的投入,我们希望能有更多朋友参与进来,与我们共同去完善 KusionStack,不论你是工作在云原生、运维自动化、编程语言或者是编译器中的哪一个领域,我们都非常期待和欢迎你的加入。

7. 期待与你共成长

这段经历对我来说异常宝贵,不仅仅是在于自身再一次在新的技术领域和蚂蚁的技术升级方面尝试了新的探索并实现了突破,更宝贵的是,自己还拥有了一段与一群人均 95 后的小伙伴一起将想法落地实现的奇幻历程。

在未来,Kusion 的朋友圈不再局限于蚂蚁内部,面向开源,我们期待着能有更多的社区朋友在 KusionStack 与我们共同成长!

参考链接

· One min read

2022 年 5 月 28 日,KusionStack Open Day 线上线下视频直播正式宣布 KusionStack 一站式可编程配置技术栈(包含 KCL 配置语言、Kusion 引擎、Konfig 配置大库)开源。

以上是 KusionStack 杭州团队合影。至此,🎉KusionStack Open Day 圆满结束🎉

1. 精彩瞬间

感谢大家抽空参加,我们一起来回顾下👀,本次活动的精彩瞬间吧~👏

蚂蚁集团高级技术专家、Kusion 项目发起人及负责人——朵晓东作为整场活动的主持人,带领大家一起回顾了 Kusion 项目演进历程,并宣布了 KusionStack 正式开源的好消息!

活动开场,Kusion 项目的两位 Sponsor——蚂蚁集团可信原生技术部负责人何征宇和技术风险部负责人陈亮,对 Kusion 从研发至今的发展回顾和未来展望。两位 Sponsor 在视频中给予了 Kusion 项目极大的认可,并为 KusionStack 的开源献上了祝福。

Kata 创始人、木兰社区 TOC —— 王旭

王旭在会上也表达了对 KusionStack 开源的喜悦。他指出:一个项目拿出来开源的好的时机,应当是项目还处在未完全成熟的阶段,这样在开源出来之后,才能够通过开源社区的开发者们,一起推动项目更好的发展,开源不是为了秀肌肉。

在最后,他再次为 KusionStack 的开源送上了诚挚的祝福。

接下来是各位嘉宾的精彩分享,一起来回顾一下吧~

2. 《数字化出海业务的 DevOps 探索和实践》

开场演讲的众安国际科技 Engineering 负责人李晓蕾(Sherry Lee),介绍了众安国际 DevOps 在支持数字化出海业务过程遇到难点和对应的解决之道。

她从数字化出海对 DevOps 带来的挑战、众安国际 DevOps 遇到的难点和解决方案以及 DevOps 具体实践案例分享三个方面展开了宝贵的经验分享。

3. 《蚂蚁集团规模化 DevOps 的代际演进探索》

蚂蚁集团高级技术专家、Kusion 项目发起人及负责人——朵晓东分享了 Kusion 的项目背景和发展进程,同时他宣布 Kusion 正式开源,并分享了开源计划。

目前,基于 Kusion 的新一代 PaaS 体系已逐步应用在蚂蚁众多内外部场景,在多种运维场景覆盖、规模化协同效率提升、多主体/站点交付运维、技术创新运维效率提升等多方面体系出显著的优势和价值。

4. 《KCL 配置策略语言》

蚂蚁集团高级研发工程师徐鹏飞介绍了 KCL 的相关核心特性,分享了 KCL 技术栈的思路、架构、关键技术,并展开讲述了 KCL 的在蚂蚁内部多场景的实践经历。

KCL 帮助不同角色的用户以简单、可扩展、稳定、高效、分而治之的方式完成开发和运维任务,同时支持与自动化系统集成,实现极致的执行效率。

5. 中场休息

中场休息期间,“开源老兵”、Go 语言大佬——柴树杉老师浅谈了他参与 KusionStack 的心路历程和个人收获,并表达了能有更多伙伴参与到 KusionStack 的开源共建的希望。

6. 《Kusion 模型库和工具链的实践探索和总结》

蚂蚁集团高级研发工程师杨英明以实际的案例介绍了如何通过 KCL 抽象 Kusion 模型库,以及如何结合 Kusion 工具链一站式的完成配置代码的编写和生效,同时总结分享了通过这套模式进行实际交付的经验和建议。

7. 《Kusion 在蚂蚁的规模化实践》

最后,蚂蚁集团技术专家史贵明和蚂蚁集团高级运维工程师李治玮共同带来了 Kusion 在蚂蚁的规模化实践的分享。史贵明主要从 PaaS 配置管理的系统架构角度讲述了蚂蚁目前的多云配置管理能力,李治玮则从 SRE 视角下,分享了使用 KCL 解决多种复杂基础设施的交付效率问题和价值。

8. 未来展望

开源并不代表 KusionStack 已经完成,相反我们还有很多需要完善和改进的地方,同时开源社区和文化也对文档和代码提出了更高的要求。这只是一个开始,希望更多从事相关领域的同学能够参与共建,为国内的云原生、DSL 等新兴领域贡献力量。

最后,感谢大家的参与🙏