“建木”萌芽,聚木成林

CSDN云计算 CSDN云计算     2023-02-26     586

关键词:

据 Github 2021 年度报告显示,目前 Github 用户数已超 7300 万,中国 Github 开发者 755万,开源吞噬世界的当下,越来越多中国开发者和企业积极参与开源建设。

有一位从事开源 10 多年的从业人员,戏称自己为未来希望成为三线城市艺术家,打造“田园程序猿的乌托邦”。抱着对开源的热情,为国内开发人员和 DevOps 人员提升开发、上线、运维的效率,建木团队研发并开源了“建木”。他就是九州云的联合创始人章津楠,为什么他这么说?“建木”具体是什么项目?

“建木”萌芽

“建木”是基于九州云多年来在项目上的思考与实践:

时间滑回 2015 年,九州云为征信中心研发测试云咨询和落地实践项目时,当时团队的设计方案是从底层基于 OpenStack 的IaaS私有云的构建,到上层基于 Jenkins 的CI/CD流水线,在实践的过程中体会到了 DevOps 的优美和不足,并开始从开发者视角来审视 DevOps,内心埋下自研“建木”的种子。

2018 年,九州云参与金融机构的自动化运维项目,通过从运维人员视角的思考来从业务的角度理解 DevOps 对运维人员的价值,更加理解金融领域对 DevOps 的述求和管理者视角——稳字当头的“敏捷”。“建木”种子在实践的土壤里默默潜伏,于 2020 年真正萌芽起来。

伴随云计算的快速发展,如何自动化运维和管理云 IT 设施成为企业新的技术挑战,随着九州云业务飞速迭代,九州云本身同样面临人员危机。通过对自身“能不能自己革自己的命”,让 DevOps 更简洁,自研工具并在其上搭建需求场景,将业务流程固化,提高运维效率,从而赋能开发、运维人员。2020 年底,“建木”应用而生。得益于九州云一直以来的开源经验,从诞生的第一天起,建木便决定以开源的形式回馈社区。

建木优势:简洁、流程配置可视化

传说中,“建木”是上古先民崇拜的一种圣树,是用作沟通天地人神的桥梁,伏羲、黄帝等均通过这梯子上下往来于人间天庭。《淮南子·墬形训》曰:“建木在都广,众帝所自上下。日中无景,呼而无响,盖天地之中也。”

因此建木团队希望“建木”成为开发人员、运维人员在不同业务场景下相互沟通的桥梁。建木以触发器、流程编排、任务分发等功能为平台核心,支持 SDK 管理、密钥管理、统一日志、统一存储、统一认证等服务,应用在 CI/CD、DevOps、自动化运维、多业务系统集成等场景中。目前建木已应用在九州云真实业务中。

从技术架构上,建木分为任务执行层、流转分发层、概念定义层、支持服务。

任务执行层:执行器管理和任务执行过程管理,目前建木项目会提供一些默认的执行器,社区的开发者也可以通过自身的需要扩展自己的执行器。后续建木项目也会提供一些更有意思的任务节点,现在以建木Hub的形式对外提供。

流转分发层:自研流程引擎,分发层根据触发器来触发流程的执行和执行过程中的分发策略的控制,来对所有的流程(或者 pipeline)的任务根据任务优先级、任务类型、执行器使用率等情况进行合理的分发和调度。

概念定义层:对任务通过流程的方式进行定义,考虑到在建木CI 场景中会比较多的采用pipeline 的形式出现,支持 pipeline 模式的定制。为了更加便于开发者使用,自定义了一整套以 YAML 为基础的 DSL,方便用 git 等版本管理工具对流程进行统一的版本管理,从而实现GitOps。

支持服务:包含自动化集成会使用的统一认证、秘钥管理、SDK 管理等基础支撑模块。

建木官网采用中国式的卷轴形式打开,官网介绍了配置即代码,提供声明式语法将流程代码化,通过代码库进行版本控制,快速实现幂等部署与故障恢复:

建木项目流程配置可视化,让任务编排与执行状态一目了然:

采访过程中快速演示了如何使用建木,通过简单在建木配置语句,就可在 IM 软件自动发布一条群消息。目前建木进入木兰开源社区孵化,并在 Gitee 上托管,感兴趣的同学可以下载使用:jianmu(建木): 建木持续集成平台基于建木,致力于为国内开发者与DevOps人员提供极致用户体验,提升开发、上线、运维的效率,让软件用户专注于提供业务价值。https://gitee.com/jianmu-dev

未来发展

谈及后续发展推广,章津楠表示,一是以产品的方式在社区推广使用,二是坚持开源,让用户以简洁地方式打开,不断吸引和积累用户。

建木团队的愿景是希望建木像组成物质的原子、组成DNA的基因、组成数字字节那样成为IT服务的一个个积木,开发者或者软件使用者可以像乐高积木一样创造自己都为止惊叹的“艺术品”。让 更多 IT 从业人员从体力劳动解放出来,从而真正实现田园程序猿的乌托邦——写代码是一种创作。

通过建木项目我们发现,作为国内较早一批提供开放云边基础架构技术开发和服务的九州云,以“开源·赋能云边变革”为核心,今年对外推出 Skyline、建木等开源项目,同时积极参与OpenStack、StarlingX、Kubernetes、OpenNess以及EdgeGallery等开源社区建设,不断在云计算及边缘计算领域建立深厚的技术储备和开源贡献。

「前端ci/cd系列」第二篇:如何用建木ci更新七牛云cdn证书(代码片段)

上一次已经分享了如何利用建木CI快速地将文件上传到七牛云存储库,有的小伙伴表示还不够刺激并且还发现生成的资源外链全是七牛家的域名,说这样显得太low啦!可不可以把链接改成自己的域名呢?答案是肯定可以的。建木C... 查看详情

如何用建木ci往七牛云上传文件(代码片段)

#gitee仓库路径#七牛云空间管理中创建的空间名字#七牛云密钥管理中的AK#七牛云密钥管理中的SK#存储区域,不设置时,自动识别,华东:z0;华北:z1;华南:z2;北美:na0;东南亚:as0#上传后在七牛云生成的uri#要上传的文件目... 查看详情

1110.删点成林

给出二叉树的根节点 root,树上每个节点都有一个不同的值。如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。返回森林中的每棵树。你可以按任意顺序... 查看详情

萌芽元宇宙初长成

互联网经历了近三十年的发展,由疯狂渐趋于平稳。在科技圈中,很久都没有新鲜的、宏观的概念起势,移动互联网时代红利早已尽失,拉新增长疲软。如何精细化运营保证用户的留存是科技企业现今的策略。从... 查看详情

ioc演义第一回:重构类步步为营新框架萌芽胎动

 问题探讨目前的网站在编程文章的表现上,一般都会把代码折叠起来,而文字部分却始终显示,给人代码似乎可有可无的感觉。实际情况往往恰恰相反:代码和插图、文字应该是文章的三个表现手段,许多情况下插图和文字... 查看详情

什么是独立站与独立网站?独立站在国内市场的萌芽与发展态势

1什么是独立站与独立网站?独立站区别于独立网站,是两个不同概念。独立网站诞生于internet早期,www协议诞生后,互联网上便诞生了第一批独立网站。独立站是相对于电商平台而言的,独立网站的方式不再... 查看详情

虚拟偶像,人类探索元宇宙的萌芽

我们了解了当前环境下促使“元宇宙”成为必然趋势的几种可能,其中有一段提到,“元宇宙”这个概念实在太容易传播了,因为“元宇宙”的概念真的太大了;并且因为若干大头的衬托和不断萌生的“元宇宙”... 查看详情

vmware任道远:中国的开源生态还处在萌芽发展的青春期,需要多元力量和全球化协作iopentekr大话开源vol.9

...|大话开源|任道远:中国的开源生态还处在萌芽发展的青春期,需要多元和全球化来让其繁花锦簇///本期大咖///任道远:VMware威睿中国研发中心总经理CTO首席技术官办公室总经理、“VMware创新网络”联合发... 查看详情

微服务(microservice)认知

微服务萌芽首先聊点比较熟悉的:MVC模式,把一套系统分成三大类,前台页面和逻辑控制、数据库,最大的缺点就是当三者中的任何一个出现非常严重的Bug时运维人员要把整个系统的服务都停下来,一人生病全家休息!为了解决... 查看详情

未来30年前沿科技风口

上世纪70、80年代作为计算机硬软件的萌芽时代,涌现了一批以乔布斯、比尔盖茨等典型的科技企业家、像苹果、微软、Oracle等科技巨头公司。作为萌芽阶段,借助对其独特的热爱、偏执,硬件从有到无、从大到小ÿ... 查看详情

ielts备考|words&phrases

...endorsethisview.首相不可能支持这一观点。2.embryo胚胎embryonic萌芽阶段的,胚胎的embryology胚胎学ananimalorhumanbeingintheveryearlystageofdevelopmentbeforeitisbornTheembryodevelopedintotwingirls,whowereborn.这些胚胎发育成一对双胞胎女婴,并顺利出生。inem... 查看详情

hexo搭建个人博客—前期准备(代码片段)

...,之后慢慢收藏了各方高人的博客。搭建一个自己博客的萌芽也悄然种下,也许是命运使然,在逛知乎的时候偶然间看到如何使用10个小时搭建出个人域名而又Geek的独立博客?,得到了浇灌的萌芽开始茁壮生长。经过几天不懈的... 查看详情

paxos发展算法原理

...的整个发展过程大概可以分为三个阶段:  第一阶段:萌芽期,大致是1988-1996年。Liskov等人在PODC上发表了ViewstampedReplication:ANewPrimaryCopyMethodtoSupportHighly-AvailableDis 查看详情

编码入门

...早,尽量低代价,尽量全面,验证所有逻辑,把BUG消灭于萌芽之中;2.6步法这6个步骤,围绕『单测』这个核 查看详情

国内新闻

...头向上或SaaS巨头向下延伸。  国内云计算市场还处在萌芽期,市场蛋糕正变得越来越诱人。本文出自“小V运维之 查看详情

我的github,欢迎一起学习!

.../github.com/bycuimiao/winter这是一个简单的ioc框架(还处于萌芽阶段,只是实现了最简单的功能) https://github.com/bycuimiao/springboot2-log4j2-demo之前自己写的实用demo,有些网友star和fork了,让我觉着可能有些价值,... 查看详情

《构建之法》阅读笔记

...熟悉和应用领域相关的实际知识。二人合作的阶段分为:萌芽阶段、磨合阶段、规范阶段、创造阶段、解体阶段。在二人 查看详情

uwsgi托管django的坑(代码片段)

...器上使用dockertoolbox部署的,这是一种一起dockerdesktop还没萌芽或者刚刚萌芽时就存在的一种技术,简单说就是让人可以在win系统上使用docker,构建docker镜像,启动docker容器等待。这次有一个开发需求:用户A通过http形式调用我方... 查看详情