截至目前,龙蜥社区已经有越来越多的研发伙伴参与共建,其中主流芯片厂商贡献成为一大特色。那么针对芯片厂商的研发和适配工作,社区需要保证高效的合作研发模式,以满足大量适配需求。在
龙蜥社区「走进系列」走进兆芯 MeetUp 上,
龙蜥社区 Cloud Kernel SIG Contributor、阿里云高/级研发工程师易兴睿根据以往社区与芯片厂商合作的经验与成果,从
合作内容、研发交流、问题需求同步、交付验收 4 方面详细介绍社区的研发合作模式。未来,社区研发合作也将围绕这 4 点来分阶段逐步推进开展,根据具体情况做出相应调整。
(图/龙蜥社区 Cloud Kernel SIG Contributor、阿里云高/级研发工程师易兴睿)
龙蜥社区秉承“平等、开放、协作、创新”的原则,社区合作以兴趣小组 SIG(Special Interest Group) 为媒介开展。SIG 成员主导 SIG 的治理、推动成果输出,并争取让交付成果成为社区发行的一部分。针对南北向适配的问题,龙蜥社区已创立了 60 个 SIG 工作组,这样各个芯片厂商的适配,就可以单独创建对应 SIG 进行研发合作。龙蜥社合区 SIG 工作组是公开开放的,社区成员均可自愿申请建立、参与 SIG 工作组进行贡献。
SIG 建立之后,对于一个新平台的适配,首先社区需要与合作伙伴明确合作方向,其次确立各个合作方向研发负责人及具体的合作内容,最后将合作内容形成 SOW 合作备忘录文件并签署,以合作备忘录的形式来指导后续的研发工作。
合作内容
明确合作内容的各个方面对于项目成功至关重要。双方在确定了合作关系后,需要明确以下 6 大重要事项,包括
任务分类、里程碑、交付成果、交付时间节点、责任方以及验收标准,这里重点阐述 6 大类中的
任务分类。
目前任务分类主要有 3 类:
预研类、
需求类以及文档演示类。首先预研类为技术推动,暂时没有明确需求,因此它需要明确阶段性/交付的内容以及时间节点,根据后续需要随时可以转变为需求类,按照需求类进行要求。其次需求类包括了已知问题修复以及需求,重点是需要在交付时间节点中明确交付版本(内核、Base OS)以及对应的时间节点。最后是文档/演示类,比如 E2E 优化、技术 demo、教学指导等,这些交付内容需要在 SIG 进行透出,并按照 SIG 内部制定的标准进行验收。
研发与交流
为了更加高效的管理社区的研发合作,龙蜥研发交流建设重心将围绕以下两点展开:
首先是建立合作知识库,实时同步各项合作内容以及研发信息,保证项目研发同学查看最新进展,更好地掌握研发进度。
其次是建立基于 AIops 的数字化管理平台。在日益增长的研发需求背景下,研发任务、研发人员逐渐趋于复杂化,因此,简单的社区交流模式已经很难满足快速响应企业的需求。龙蜥社区通过升级为数字化平台的管理,并借助大语言模型,极大地提高合作效率。
-
合作知识库:首先是最基础的
版本信息同步,包括内核、base os 版本的路标及规划,让研发同学明确其任务的截止时间和版本规划的变动。
其次是合作内容,基于 SOW 以及最新任务更新与进展。接着是
研发人员信息,能够通过研发人员信息,方便统计并跟踪平台相关的代码提交和审查。最后为
平台特性内容介绍、平台问题跟踪及总结,总结汇总研发交流过程中所有平台相关的特性与问题,帮助我们对平台的适配有更深刻的理解
-
AIops 的数字化管理平台。借助强有力的工具,我们可以构建智能化的管理平台。通过为大模型提供脱敏后的合作知识库的内容,加上各类 API 工具的辅助,智能助手就可以实现去辅助代码提交、统计、review 等工作,以及各项信息的跟踪,并且可以拿更新后的信息去更新知识库。另外,智能助手也可以通过其大语言模型的生成能力,帮助我们进行智能答疑、月报生成等工作。
问题和需求同步
在日常研发中,我们需要面对源源不断的需求和问题,那么就需要一个合理的机制来进行同步。
问题和需求同步分为快路径和慢路径进行管理。
问题同步机制属于快路径,其着重于快速修复已知问题并及时响应。我们问题的来源包括已知的平台问题、测试发现问题、社区反馈问题和研发中遇到的问题等,这些问题通常以 Bugzilla 汇总,统一由社区及合作伙伴研发同学定位问题,并分发给相应领域处理,再评估解决方法与周期。如果研发难度较高、周期长,考虑转需求,如果可以快速响应,则继续流程。
慢路径则是针对需求。需求评审更加着重于对新增特性的需要,需要一定的开发周期和难度,严密的测试覆盖。此类需求的来源包括社区需求、业务需求等。需求的提交首先除了需求背景、需求内容外,还需要明确工作量、周期、交付版本等信息。需求要经过 SIG 和龙蜥社区技术委员会的评审,判断其合理性。经过评审需求通过,则按照正常的研发流程进行研发交付和验收。此周期相较问题评估更长,需要对需求有一个宏观的判断的反复的讨论。
交付验收
针对不同的任务类别,制定了不同阶段的结果验收标准。首先是
日常研发流程测试,该测试针对预研类和需求类,流程由开发者自行保障,代码提交者将测试截图放在 PR 中、reviewer 可根据具体情况进行复现。其次是
龙蜥的版本发布测试,该测试针对预研类和需求类,需要双方共建测试用例以及自动化测试平台,版本发布流程由龙蜥+厂商联合进行。龙蜥社区会联合各个芯片厂商针对平台特性共建自动化测试平台,基于龙蜥
T-One 测试平台、硬件环境共建测试用例。最后是
文档演示类的验收,各 SIG 负责进行,按照 SIG 指定的标准验收。
—— 完 ——