建木:做更好的开源社区,让DevOps更简洁

2021/12/25 14:39:30 资讯频道 17643

     “建木”是上古先民崇拜的一种圣树。传说建木是沟通天地人神的桥梁。伏羲、黄帝等众帝都是通过这一神圣的梯子上下往来于人间天庭。《淮南子·墬形训》亦曰:“建木在都广,众帝所自上下。日中无景,呼而无响,盖天地之中也。”为此项目命名为“建木”,希望本项目也可以成为不同业务场景下系统间相互沟通的桥梁。建木自动化平台以触发器、流程编排、任务分发等功能为平台核心,可以应用在各类使用场景下,包括但不限于,CI/CD、DevOps、自动化运维、多业务系统集成等场景的自动化。

      作为中国最早一批从事“开放云边基础架构技术开发和服务”的专业公司,九州云始终以“开源·赋能云边变革”为核心,坚持自主研发,建立了完整的“云+边”生态体系和解决方案。目前,九州云可以为企业客户提供全栈开放基础架构解决方案。在云侧,九州云有涵盖IaaS云、CaaS云、多云管理、自动化运维平台AutoOps、SD-WAN等的企业云解决方案;在边缘侧,有涵盖边缘中心管理、边缘区域管理、边缘管理、Open UPF、轻量化核心网、边缘场馆/娱乐等的边缘云解决方案。

      凭借自身的技术优势,九州云深度参与了OpenStack、StarlingX、Kubernetes、OpenNess以及EdgeGallery等开源社区,始终致力于技术的钻研和社区的贡献,长久以来保持社区贡献率的稳步增长,在云计算及边缘计算领域建立了深厚的技术储备和研发实力。今年,九州云对外推出了Skyline、建木等开源项目。

      九州云联合创始人章津楠介绍说,2015年,九州云在做某银行征信中心二代整个系统的研发测试云的咨询和落地项目。项目基于OpenStack,构建了底层的OpenStack IaaS和上层的CI/CD。在这个实践过程中,九州云体会到了DevOps的优美和不足,这个项目使得九州云很好得从开发者的角度审视了整个DevOps。2018年开始,九州云参与了一个金融机构的自动化运维项目,这个过程中,从运维者的视角审视了整个DevOps是如何在运维中创造价值的。除了开发者和运维者的视角,管理者的视角也是非常重要的一环。对于管理者来说,如何在保证“稳”的前提下做到“敏捷”,是一大难点。此外,建木团队也有自己的开源情节。团队中         一位同事表示:“我接触开源有15年的时间,真正投身于开源也近乎10年,如果能够利用自己实践过程中的一些经验在国内创建一个开源项目,也是对于开源的回馈。“

       综合以上因素,九州云从2020年开始,逐渐构思如何让DevOps更简洁,以及把这样的方法开源出来。

      清新古典的风格,强大的功能

       打开建木,清新而又古典的气息扑面而来。建木以卷轴的方式打开,整体软件分层如下图,主要分任务执?层、流转分发层、概念定义层,配合?撑的会有?个?持服务。


      任务执?层主要是执行器管理和任务执行过程管理,目前建木项目会提供?些官方的执行器,社区的开发者也可以通过?身的需要扩展自己的执?器。后续建木项目也会提供?些更有意思的执?器的形态,之后会以Hub的形式提供。流转分发层的主要核心是流程引擎,整个分发层会根据触发器来触发流程的执?和执?过程中的分发策略的控制。通过这个层对所有的流程(或者pipeline)的任务根据任务优先级、任务类型、执?器使?率等情况进?合理的分发和调度。概念定义层主要是对任务通过流程的?式进?定义,考虑到在CI场景中会?较多的采?pipeline的形式,也?持 pipeline模式的定制。为了更加便于开发者使?,建木官方也定义了?整套以YAML为基础的DSL,?便?git等版本管理?具对流程进?统?的版本管理以实现GitOps。?持服务主要包含?动化集成会使?的统?认证、秘钥管理、SDK管理等基础?撑模块。

      流程配置可视化+生态节点库

       建木的第一大特点是流程配置可视化,任务编排与执行状态一目了然。

       只需通过点击,就能将多种服务进行集成,最终搭建一个服务。这源于建木的生态节点库里有许多开发完成的节点。将这些节点组织和串联起来后,就能快速构建一些复杂的服务。

      同时,建木项目无平台倾向性,用户可根据需要自行选择。

      做好开源社区,实现开源的最终价值

       目前,建木将代码托管在Gitee(码云)上,这是国内最有影响力的代码托管平台之一。而在开源社区的选择上,建木选择了国内非常有影响力的木兰开源社区,目前已是木兰开源社区的孵化项目。

       开源社区使全球信息技术领域发生了全局性、持续性的重大变化,在社会基础设施建设方面也发挥着越来越重要的作用。章津楠表示,将建木打造为广泛应用的,并且有生命力的开源项目需要经历三个阶段:首先是消费者社区,用更加优质的内容吸引用户,让更多的人使用起来,吸引更多人加入开源社区,并展开一些讨论、分享。章津楠认为这会是一个很长的过程。第二个阶段是让用户真正体会到在社区中的切实价值,主动分享自己的心得,帮助社区成员更好地使用产品,帮助建木获得内容上的成功,在创造自己影响力的同时实现社区的内容共创。第三个阶段也是最终的阶段,是使用户能主动地提出自己的需求,贡献自己的想法,并能用代码能力和文档能力来为社区做贡献。

       一个好的开源社区要有足够的社区活跃度,以及增量。而开源的最终价值,章津楠认同周明辉教授的观点,即“开源软件是属于全人类的”,是全人类的资产,“你只要拿过来,你有能力就把他用起来。”