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