DevOps理念在短短十幾年時間已迅速蔓延全球,成為企業(yè)是否能在行業(yè)內(nèi)脫穎而出的一項關(guān)鍵性因素。DevOps是一種文化,每個企業(yè)都有屬于自己的特色和業(yè)務(wù)需求,CI/CD則是實踐整個自動化流程的最好工具;CI(持續(xù)集成Continuous Integration)指的是研發(fā)人員提交代碼后,從編譯、測試、直到業(yè)務(wù)上線的一個過程,整個過程稱為集成;而高效的、持續(xù)性質(zhì)的不斷迭代代碼的集成工作,就是持續(xù)集成;第一種CD(持續(xù)交付Continuous Delivery)指的是將CI的結(jié)果,由運維團(tuán)隊持續(xù)的部署到生產(chǎn)環(huán)境中;另一種CD(持續(xù)部署Continuous Deploy)指的是所有的變更都自動部署到生產(chǎn)環(huán)境中,持續(xù)交付是一種能力,而持續(xù)部署是一種實現(xiàn)方式。
近幾年,隨著網(wǎng)信產(chǎn)業(yè)的蓬勃發(fā)展,國產(chǎn)處理器及整機對銀河麒麟操作系統(tǒng)內(nèi)核的迭代效率,產(chǎn)品的交付質(zhì)量與速度提出了更高的要求。為此,麒麟軟件將DevOps(Development & Operations)理念引入操作系統(tǒng)內(nèi)核研發(fā)過程,旨在有效提升質(zhì)量的同時提高交付效率,DevOps理念有助于打破部門壁壘,強化團(tuán)隊協(xié)作,提高自動化率,向用戶快速交付高質(zhì)量的產(chǎn)品。
DevOps和CI/CD關(guān)系圖
麒麟軟件研發(fā)人員通過調(diào)研CI/CD的工具鏈,以及針對內(nèi)核自動化持續(xù)集成的研發(fā),構(gòu)建了麒麟軟件自有的K2CI平臺,它的主要業(yè)務(wù)流包括集成代碼審查、代碼靜態(tài)掃描、編譯、測試、反饋、發(fā)布等。自動化作為CI的基石,麒麟軟件K2CI平臺通過自動定時觸發(fā)檢測、自動代碼靜態(tài)掃描、自動kABI檢查、補丁實時集成及自動編譯、測試、報告、定位、創(chuàng)建任務(wù)、關(guān)閉任務(wù)等全自動功能更好的為研發(fā)人員提供了穩(wěn)定的服務(wù),全方位守護(hù)內(nèi)核質(zhì)量,實現(xiàn)了持續(xù)穩(wěn)定的產(chǎn)出。
麒麟軟件K2CI平臺業(yè)務(wù)流程
在內(nèi)核開發(fā)過程中,麒麟軟件K2CI平臺通過在不同的階段,采用不同的CI頻率,即可節(jié)省資源,也提升了CI效率,將代碼提交標(biāo)準(zhǔn)、測試標(biāo)準(zhǔn)、版本出庫標(biāo)準(zhǔn)統(tǒng)一,并提交由K2CI平臺進(jìn)行自動化驗證,內(nèi)核出庫質(zhì)量明顯得到了提升,通過K2CI-RTB實時集成,K2CI-PT每日集成,K2CI-server每周集成,分階段對內(nèi)核代碼質(zhì)量進(jìn)行保障,且在使用過程中,不斷穩(wěn)定輸出成果。
麒麟軟件K2CI平臺集成環(huán)境
目前,在麒麟軟件K2CI平臺中,已涵蓋6家國產(chǎn)CPU架構(gòu)平臺;其中20多個國產(chǎn)整機廠商的設(shè)備已納入K2CI平臺開展測試驗證,在內(nèi)核開發(fā)階段采用K2CI-PT平臺進(jìn)行daily測試、功能測試等,在發(fā)行版出庫前采用K2CI-server平臺進(jìn)行功能性測試、穩(wěn)定性測試、性能測試等;持續(xù)守護(hù)內(nèi)核產(chǎn)品質(zhì)量,為內(nèi)核提供質(zhì)量保障。另外,通過K2CI工具鏈周期性的問題反饋,能及時解決問題并同步內(nèi)部代碼倉庫,極大提高了內(nèi)核產(chǎn)品的健壯性,同時也強化了麒麟軟件對操作系統(tǒng)上游社區(qū)補丁修復(fù)的推進(jìn)。
麒麟軟件K2CI平臺編譯和測試架構(gòu)
未來,麒麟軟件將持續(xù)構(gòu)建面向內(nèi)核的微服務(wù)自動化測試平臺,滿足對最小單元補丁的影響域全方位自動化測試等,為研發(fā)人員提供創(chuàng)新的信息技術(shù)與服務(wù),讓銀河麒麟操作系統(tǒng)更安全、更健壯,更節(jié)能,更高效。
通訊員?| 白鸝莎、杜式薇
來? ? 源 | 產(chǎn)品與生態(tài)中心、研發(fā)中心
審? ? 核 | 市場與政府事務(wù)部