建木:做更好的開源社區(qū),讓DevOps更簡潔
原創(chuàng)【51CTO.com原創(chuàng)稿件】“建木”是上古先民崇拜的一種圣樹。傳說建木是溝通天地人神的橋梁。伏羲、黃帝等眾帝都是通過這一神圣的梯子上下往來于人間天庭。《淮南子·墬形訓(xùn)》亦曰:“建木在都廣,眾帝所自上下。日中無景,呼而無響,蓋天地之中也。”為此項(xiàng)目命名為“建木”,希望本項(xiàng)目也可以成為不同業(yè)務(wù)場景下系統(tǒng)間相互溝通的橋梁。建木自動化平臺以觸發(fā)器、流程編排、任務(wù)分發(fā)等功能為平臺核心,可以應(yīng)用在各類使用場景下,包括但不限于,CI/CD、DevOps、自動化運(yùn)維、多業(yè)務(wù)系統(tǒng)集成等場景的自動化。
作為中國最早一批從事“開放云邊基礎(chǔ)架構(gòu)技術(shù)開發(fā)和服務(wù)”的專業(yè)公司,九州云始終以“開源·賦能云邊變革”為核心,堅(jiān)持自主研發(fā),建立了完整的“云+邊”生態(tài)體系和解決方案。目前,九州云可以為企業(yè)客戶提供全棧開放基礎(chǔ)架構(gòu)解決方案。在云側(cè),九州云有涵蓋IaaS云、CaaS云、多云管理、自動化運(yùn)維平臺AutoOps、SD-WAN等的企業(yè)云解決方案;在邊緣側(cè),有涵蓋邊緣中心管理、邊緣區(qū)域管理、邊緣管理、Open UPF、輕量化核心網(wǎng)、邊緣場館/娛樂等的邊緣云解決方案。
憑借自身的技術(shù)優(yōu)勢,九州云深度參與了OpenStack、StarlingX、Kubernetes、OpenNess以及EdgeGallery等開源社區(qū),始終致力于技術(shù)的鉆研和社區(qū)的貢獻(xiàn),長久以來保持社區(qū)貢獻(xiàn)率的穩(wěn)步增長,在云計(jì)算及邊緣計(jì)算領(lǐng)域建立了深厚的技術(shù)儲備和研發(fā)實(shí)力。今年,九州云對外推出了Skyline、建木等開源項(xiàng)目。
九州云聯(lián)合創(chuàng)始人章津楠介紹說,2015年,九州云在做某銀行征信中心二代整個系統(tǒng)的研發(fā)測試云的咨詢和落地項(xiàng)目。項(xiàng)目基于OpenStack,構(gòu)建了底層的OpenStack IaaS和上層的CI/CD。在這個實(shí)踐過程中,九州云體會到了DevOps的優(yōu)美和不足,這個項(xiàng)目使得九州云很好得從開發(fā)者的角度審視了整個DevOps。2018年開始,九州云參與了一個金融機(jī)構(gòu)的自動化運(yùn)維項(xiàng)目,這個過程中,從運(yùn)維者的視角審視了整個DevOps是如何在運(yùn)維中創(chuàng)造價(jià)值的。除了開發(fā)者和運(yùn)維者的視角,管理者的視角也是非常重要的一環(huán)。對于管理者來說,如何在保證“穩(wěn)”的前提下做到“敏捷”,是一大難點(diǎn)。此外,建木團(tuán)隊(duì)也有自己的開源情節(jié)。團(tuán)隊(duì)中一位同事表示:“我接觸開源有15年的時間,真正投身于開源也近乎10年,如果能夠利用自己實(shí)踐過程中的一些經(jīng)驗(yàn)在國內(nèi)創(chuàng)建一個開源項(xiàng)目,也是對于開源的回饋。“
綜合以上因素,九州云從2020年開始,逐漸構(gòu)思如何讓DevOps更簡潔,以及把這樣的方法開源出來。
清新古典的風(fēng)格,強(qiáng)大的功能
打開建木,清新而又古典的氣息撲面而來。建木以卷軸的方式打開,整體軟件分層如下圖,主要分任務(wù)執(zhí)⾏層、流轉(zhuǎn)分發(fā)層、概念定義層,配合⽀撐的會有⼀個⽀持服務(wù)。
任務(wù)執(zhí)⾏層主要是執(zhí)行器管理和任務(wù)執(zhí)行過程管理,目前建木項(xiàng)目會提供⼀些官方的執(zhí)行器,社區(qū)的開發(fā)者也可以通過⾃身的需要擴(kuò)展自己的執(zhí)⾏器。后續(xù)建木項(xiàng)目也會提供⼀些更有意思的執(zhí)⾏器的形態(tài),之后會以Hub的形式提供。流轉(zhuǎn)分發(fā)層的主要核心是流程引擎,整個分發(fā)層會根據(jù)觸發(fā)器來觸發(fā)流程的執(zhí)⾏和執(zhí)⾏過程中的分發(fā)策略的控制。通過這個層對所有的流程(或者pipeline)的任務(wù)根據(jù)任務(wù)優(yōu)先級、任務(wù)類型、執(zhí)⾏器使⽤率等情況進(jìn)⾏合理的分發(fā)和調(diào)度。概念定義層主要是對任務(wù)通過流程的⽅式進(jìn)⾏定義,考慮到在CI場景中會⽐較多的采⽤pipeline的形式,也⽀持 pipeline模式的定制。為了更加便于開發(fā)者使⽤,建木官方也定義了⼀整套以YAML為基礎(chǔ)的DSL,⽅便⽤git等版本管理⼯具對流程進(jìn)⾏統(tǒng)⼀的版本管理以實(shí)現(xiàn)GitOps。⽀持服務(wù)主要包含⾃動化集成會使⽤的統(tǒng)⼀認(rèn)證、秘鑰管理、SDK管理等基礎(chǔ)⽀撐模塊。
流程配置可視化+生態(tài)節(jié)點(diǎn)庫
建木的第一大特點(diǎn)是流程配置可視化,任務(wù)編排與執(zhí)行狀態(tài)一目了然。
只需通過點(diǎn)擊,就能將多種服務(wù)進(jìn)行集成,最終搭建一個服務(wù)。這源于建木的生態(tài)節(jié)點(diǎn)庫里有許多開發(fā)完成的節(jié)點(diǎn)。將這些節(jié)點(diǎn)組織和串聯(lián)起來后,就能快速構(gòu)建一些復(fù)雜的服務(wù)。
同時,建木項(xiàng)目無平臺傾向性,用戶可根據(jù)需要自行選擇。
做好開源社區(qū),實(shí)現(xiàn)開源的最終價(jià)值
目前,建木將代碼托管在Gitee(碼云)上,這是國內(nèi)最有影響力的代碼托管平臺之一。而在開源社區(qū)的選擇上,建木選擇了國內(nèi)非常有影響力的木蘭開源社區(qū),目前已是木蘭開源社區(qū)的孵化項(xiàng)目。
開源社區(qū)使全球信息技術(shù)領(lǐng)域發(fā)生了全局性、持續(xù)性的重大變化,在社會基礎(chǔ)設(shè)施建設(shè)方面也發(fā)揮著越來越重要的作用。章津楠表示,將建木打造為廣泛應(yīng)用的,并且有生命力的開源項(xiàng)目需要經(jīng)歷三個階段:首先是消費(fèi)者社區(qū),用更加優(yōu)質(zhì)的內(nèi)容吸引用戶,讓更多的人使用起來,吸引更多人加入開源社區(qū),并展開一些討論、分享。章津楠認(rèn)為這會是一個很長的過程。第二個階段是讓用戶真正體會到在社區(qū)中的切實(shí)價(jià)值,主動分享自己的心得,幫助社區(qū)成員更好地使用產(chǎn)品,幫助建木獲得內(nèi)容上的成功,在創(chuàng)造自己影響力的同時實(shí)現(xiàn)社區(qū)的內(nèi)容共創(chuàng)。第三個階段也是最終的階段,是使用戶能主動地提出自己的需求,貢獻(xiàn)自己的想法,并能用代碼能力和文檔能力來為社區(qū)做貢獻(xiàn)。
一個好的開源社區(qū)要有足夠的社區(qū)活躍度,以及增量。而開源的最終價(jià)值,章津楠認(rèn)同周明輝教授的觀點(diǎn),即“開源軟件是屬于全人類的”,是全人類的資產(chǎn),“你只要拿過來,你有能力就把他用起來。”
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】