如果你是企业经营者,在为企业降本增效而发愁; 如果你是企业的开发、运维或架构同学,在日常工作中被开发效率、交付问题等困扰……欢迎来了解 Koupleless (原 SOFAServerless )!
现在,Koupleless 重磅发布了 1.0 版本!那么,Koupleless 是什么?又将如何为你解决以上问题?除了以上这几种情境,Koupleless 还有哪些能力呢?欢迎你来社区探索发现。
Koupleless 由 SOFAServerless 品牌升级而来,是一款模块化研发框架与运维调度平台。它从应用架构角度出发,帮助应用解决从需求、到研发、到交付再到运维的全生命周期痛点问题。其最核心的架构图如下 。如果想了解更详细的原理介绍也可以查看官网页面。
它能帮助解决的问题包括:
如果你也被以上问题所困扰,那么欢迎来了解 Koupleless 给出的解决方案。
本模式在蚂蚁集团内部历经 4-5 年时间孵化而成,当前已经帮助 70W 核业务量完成 10 倍级降本增效,可以帮助应用做到秒级启动,只占 20M 内存。性能对比示例如下图:
根据我们的模块化应用架构模型,可以看到我们是将传统应用从纵向和横向切分演变而来的。
所以我们将 SOFAServerless 进行品牌升级成为 Koupleless ,取自 Couple + less ,寓意通过对应用进行拆分解耦,实现更好的职责分工,帮助业务降本增效。
关注应用架构领域的同学,应该知道微服务很好地解决了组织分布式协作难题,但同时也带来了一些问题,并且这些问题正日益获得更多关注。
有人说,2023 年是微服务的转折年,其中一些科技巨头(如 Amazon 和 Google )已经开始尝试去解决和完善微服务带来的问题,例如 service weaver,amazon prime video的架构改造,甚至直接回归单体。
而蚂蚁内部在 4-5 年前就开始着手解决微服务问题,并为此打造了 Koupleless 应用研发模式。
根据蚂蚁这些年的实践经验,我们相信模块化架构是一种有潜力的架构,真正能够较好地解决微服务问题;我们也希望通过模块化架构给行业内部提供一种新的解决方案,帮助更多企业降本增效。
自 2023 年下半年开源以来,经过这半年时间和社区的共同努力,我们已经开放了内部完整的能力,包括研发工具、框架、运维调度平台等;也沉淀了一些常用组件最佳实践和 samples 用例,具备了线上接入使用的能力,一些企业也已经可以按照官网和文档自主接入使用了。
一键构建、部署和发布模块,方便用于本地开发测试验证。
为多种研发框架如 Spring Boot 、SOFABoot 、Dubbo 提供多模块运行容器环境,适配 30+ 组件,沉淀 25+ samples 用例。
这套模式最大的挑战来自于 将多个应用或代码片段合并在一起,在隔离与共享上如何找到最佳的平衡点,使得在存量应用低成本接入的同时,能享受到隔离的带来稳定可靠的好处,也能享受到共享的高性能、低资源消耗的收益。
隔离可以确保运行时的稳定可靠,但带来了性能的下降、资源利用率的损失;共享提升了性能和资源利用率,但也带来了运行时的一些问题,例如 static 变量可能带来互相影响的问题。我们采用了模块化技术来解决这类问题。在 Java 领域模块化技术并不是我们首创的,20 年前就有了 OSGl 技术,那为什么我们的模块化技术能在蚂蚁内部规模化落地呢?我们是做了哪些工作来解决存量应用低成本接入和共享后的一些问题的呢?
要解决这类问题,我们并没有太多可参考的行业案例,相当于是在无人区里摸索,除了解决隔离与共享的核心问题外,还要解决配套设施的建设、用户心智的培养等,这些都需要一个笃定的心力和持续的过程,这些问题就是这套模式的挑战所在。
好在最终,我们拨云见日探索了出来。我们在隔离和共享之间找到了一个最佳的平衡点,并且能让存量业务低成本的接入,这也是我们最自豪的地方。 我们在蚂蚁集团用事实证明了模块化技术并不是停留在设计稿里的技术,或者小部分人才能使用的技术,它的问题和挑战并不可怕,是有固定模式的,可以通过工具和流程逐步治理、收敛的,现在将此模式进行开源分享,是希望可以帮助其他企业少走弯路,和社区一起把这套模式心智在行业里树立起来。
当前在统计内的,有 15+ 企业在使用 Koupleless 接入线上或者用于交付,还有 17+ 企业正在试用或者接入中,还有一些因为信息缺失未统计到的。详细企业接入列表可以查看官网信息。
很高兴 Koupleless 能帮助到他们,也十分欢迎这些企业探索的更多使用场景,也欢迎更多企业开发者一起参与社区建设,推广这套技术。
我们希望能让模块化架构成为应用架构领域里的新模式,并能在行业里推广开来。这不仅是我们作为技术人的技术追求,也是我们做开源的持续动力来源。
当前我们虽然发布了 1.0 版本,但开源工作才只是刚刚开始,还有更多规划。比如,我们希望未来能把模块化技术做得更加完善,将我们想要做到的效果完整地提供出来:
这里感谢所有参与贡献 Koupleless 1.0 的 51 位开发者:@QilingZhang @lvjing2 @glmapper @yuanyuancin @lylingzhen @yuanyuan2021 @straybirdzls @caojie09 @gaosaroma @khotyn @FlyAbner @zjulbj @hustchaya @sususama @alaneuler @compasty @wuqian0808 @nobodyiam @ujjboy @JoeKerouac @Duan-0916 @poocood @qixiaobo @lbj1104026847 @zhushikun @xingcici @Lunarscave @HzjNeverStop @AiWu4Damon @vchangpengfei @HuangDayu @shenchao45 @DalianRollingKing @lanicc @azhsmesos @KangZhiDong @suntao4019 @huangyunbin @jiangyunpeng @michalyao @rootsongjc @liu-657667 @CodeNoobKing @Charlie17Li @TomorJM @gongjiu @gold300jin @nmcmd @qq290584697 @ToviHe @yuhaiqun19892019