Skip to content

【月会】23.04.03 SOFAArk 社区化运作方式 KO(暨第一次月会) #635

@lylingzhen

Description

@lylingzhen

背景

SOFAArk 在社区开源将近 5 年,从最初的一个类隔离框架,逐步演进为支持合并部署与热部署的 “Serverless” 运行时框架。尤其在去年我们完成了 SOFAArk 1.0 到 2.0 架构的演进,在蚂蚁也基于 SOFAArk 2.0 完成了 Serverless 研发模式初步的规模化落地。目前 SOFAArk 开源项目有 1400 个 Star(比前年增长了 200),累计有 27 位同学提交过代码和文档。

但与此同时,我们也看到了当前运作的典型问题。最大的问题是社区参与度不高,主要依靠蚂蚁单方面支持,这个瓶颈其实明显阻碍了社区的技术演进和规模化推广。为了让 SOFAArk 以及 Serverless 技术能在社区得到大力发展,需要鼓励并联合社区同学共同解决以下问题,让相关技术真正成为社区和大家的共同财产:

  1. 用户提出的问题、Issue 越来越多,需要联合核心 Contributor 建立值班机制,帮助用户答疑,在过程中也能不断完善产品文档和功能特性,同时也会借此将一些 Contributor 晋升为 Committer,Committer 晋升为 member,授予越来越高的权限。
  2. 鼓励社区建设 SOFAArk 运行时配套工具平台,比如类加载和类找不到分析、启动期和运行期诊断、模块瘦身工具、基础运维平台等等。
  3. 所有的文档、设计、月会、项目管理都会放到社区,并在后续的月会中不断与大家共创技术方案、演进方向和共建分工,让大家都能深度参与其中,共同造福社区。

最后,蚂蚁已经基于 SOFAArk 运行时技术初步完成了 Serverless 研发模式的架构演进,很多业务已经将应用划分为基座(通用代码)和一组模块(业务代码),其中模块开发者已经享受到了完全不感知基础设施、秒级发布运维的极致 Serverless 体验,但是由于蚂蚁的方案和内部基础设施耦合较深,未来我们希望和社区同学一起从 0 打造一个极致高效的 Serverless 平台,去演进整个行业的研发运维模式。


社区化运作计划

纯社区化运作意味着 SOFAArk 不会再有任何蚂蚁内部讨论,全部会在社区完成


项目管理机制

完全开放的开发者协作

请大家先加入核心 Contributor 钉钉群,将群昵称改成 Github 账号,方便沟通,群号:24970018417。项目 PM:@lvjing2,负责组织协同、迭代规划、过程管理与版本发布。
image

日常讨论公开化

Contributor 可以在 “SOFAArk 开发者协作群” 开放的讨论所有技术问题和研发问题,蚂蚁内部所有 SOFAArk 相关讨论也全部会在此群讨论。遇到需要协作的问题大家可以随时发起钉钉视频和语音会议或者随时应用内钉:
image
image

社区化需求管理

需求管理统一用 Github Issues(包括蚂蚁内部的需求)。创建需求时选择 “Propose New Requirement” 模板,标题描述清楚需求,内容描述清楚设计方案和实现方案。创建 Bug 选择 “Bug Report” 模板,标题描述清楚 Bug。
image

其它如 PR、CodeReview、CI 等流程和当前保持一致。
4.30 开始迭代由 lvjing2 和 yuanyuancin 等社区 Member 轮流管理。

完全开放的月会机制

4.03 开始,每月第一周周一晚 20:00 - 21:30 召开月会(有节假日就顺延一周),先由社区 Committer 同学轮流主持,欢迎大家在群里提前申报议题,月会固定议题有:

  1. 上一次月会待办进展同步。
  2. 设计方案评审讨论(由 Contributor 提前申报并准备好相应的 Github Issue 内容)。
  3. 公开的一些问题讨论(大家提出问题并讨论解决方案,在群里提前准备)。
  4. 其它议题。
  5. 下次月会待办确认。

下次月会 5.08 @lvjing2 主持。


版本维护策略

采用标准的三位版本号

  1. 第一位表示不兼容的大版本,比如 SOFAArk 1.0.0 和 2.0.0 是不兼容的。
  2. 第二位表示向下兼容的迭代功能演进,每次迭代发布会包含一些新功能,比如 SOFAArk 2.0.0 和 2.1.0 是社区的两次迭代版本演进。一般我们的迭代周期控制在 1 - 2 个月
  3. 第三位表示小优化和紧急 Bug 修复版本,比如 SOFAArk 2.0.1 是对 2.0.0 的小优化和紧急修复版本,非紧急的 Bug 修复可以放到第二位版本比如 2.1.0 中一起发布。

普通版本

常规迭代产生的第一位/第二位版本是普通版本,会维护 6 个月。6 个月内发现的紧急 Bug 需要发布相应的第三位小版本修复,比如 SOFAArk 2.1.0 和 2.2.5 发现的相同 Bug 需要在 SOFAArk 2.1.1 和 2.2.6 中分别修复,并在用户遇到问题时引导用户升级到对应的第三位版本。超过 6 个月的版本不再提供任何技术支持和 Bug 修复,均引导用户去升级解决问题。

长期维护版本

重要且稳定的第一位/第二位版本是 **LTS 长期维护版本,**会维护 24 个月,一般 1 - 2 年会产出一个长期维护版。超过 24 个月的长期维护版本不再提供任何技术支持和 Bug 修复,均引导用户去升级解决问题。

当前现状

制品名称 普通版本维护周期 LTS 版本 维护周期 存量 LTS 版本 即将结束维护周期的版本
SOFAArk(下面两个制品一起发版):
sofa-ark-container
sofa-ark-springboot-starter

从 SOFABoot 3.12.0 开始以 starter 方式声明到了 SOFABoot
6 个月 24 个月 2.1.0(2023.01.13 发版,维护到 2025.01.12 <= 2.0.6 的所有版本即将 6 个月过期。

1.0 不再演进和维护,引导用户升级 2.1.0。

CY23 规划

S1

  1. Windows 验证环境搭建、文档完善和问题修复。- 鼓励社区同学认领。
  2. 易解决的 Issues 处理和文档完善。- 各 Contributors
  3. 修复 SOFAArk 2.0 架构静态合并部署基座和模块 ClassPath 未隔离问题。- @yuanyuancin
  4. 支持 JDK17、SOFABoot 4.0。- @yuanyuancin
  5. 热卸载支持 SpringBoot 2.0 和 SpringBoot 3.0(当前仅支持 SOFABoot)。- Contributor
  6. 开始从 0 到 1 建设单机运维客户端(Arklet Client)。- 社区同学认领,Committers Review
  7. declaredMode 模式发布,https://github.com/sofastack/sofa-ark/milestone/21。- @lvjing2

S2

  1. 基座和模块资源消耗 Profiling 设计和建设。- 社区同学认领(从需求分析到发布),Committers Review
  2. 基座(Master)和模块(Biz)启动报错优化。- 社区同学认领
  3. 模块包瘦身工具。- 社区同学认领(从需求分析到发布),Committers Review
  4. 开始从 0 建设基于 K8S Operator 架构的模块运维平台。- **社区同学主导,**全体 Contributors

近期工作

结合用户常见的使用问题和 Github Issues,近 3 个月需要大家一起在以下几个方面共建。

近期特性开发

Windows 验证环境搭建验证、文档完善和问题修复

Owner:<待定,鼓励大家认领>
计划 2023.05? 跟随 2.1.x 版本发布。

SOFAArk 2.0 静态合并部署基座和模块 ClassPath 未隔离问题修复

Owner:@yuanyuancin
计划 2023.04.03 在月会 Review 大体方案和实现,2023.04.03 跟随 2.1.4 版本发布。

支持 JDK17、SOFABoot 4.0

Owner:@yuanyuancin
计划 2023.04.03 在月会 Review 大体方案和实现,2023.04.03 跟随 2.1.4 版本发布。

热卸载支持 SpringBoot 2.0 和 SpringBoot 3.0

Owner:<待定,鼓励大家报名>
计划 2023.05? 在月会 Review 大体方案和实现,2023.06? 跟随 2.1.x 版本发布。

从 0 到 1 建设单机运维客户端

Owner:<待定,鼓励大家报名>
计划 2023.05? 在月会 Review 大体方案和实现,2023.06? 跟随 2.1.x 版本发布。

插件文档更新到 2.1.0 版本

Owner:@lvjing2
1、https://github.com/sofastack-guides/sofa-ark-guides/tree/master/sample-ark-plugin
image


激励计划

新人辅导计划

CY23 开始,Committers 会挑选 1 - 2 名有意愿而且有一定活跃度的 Contributor 作为重点培养对象,进行定期的辅导和讲解,期待他们未来能成为社区的 Committer 甚至 Member。
真实案例:有一位社区同学最初对 SOFARegistry 源码看不懂,蚂蚁同学带着他一步一步讲解,最后这位社区同学自己发起了源码分析分享,还换了一份更好的工作。

奖励计划

  1. 认证或者晋升的 Contributor、Committer、Member 会得到 SOFAStack 开源证书与 T 恤奖励,并且会在社区月会、官网、Github、公众号上包装一下公布。
  2. 定期邀请活跃的 Contributor 参与我们的开源活动,做一些分享,也能帮助大家提升自己的竞争力!

本次月会议题

SOFAArk 2.0 静态合并部署基座和模块 ClassPath 未隔离问题修复

@yuanyuancin
Github Issue 地址:#628

支持 JDK17、SOFABoot 4.0

@yuanyuancin
Github Issue 地址:#627


会议纪要

  1. 。Owner:。

下次月会会邀

主题:SOFAArk 社区会议
时间:5月8日 周一 20:00 - 21:30(因为节假日顺延一周)
入会口令:683 550 26227
电话呼入:+862759771614(中国大陆) +8657128356290(中国大陆)
入会链接:https://meeting.dingtalk.com/j/hv0CVKasIgs

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions