DevOps 是一種重視 “軟件開發(fā)人員(Dev)” 和 “運(yùn)維技術(shù)人員(Ops)” 之間溝通合作的文化、運(yùn)動(dòng)或慣例,是軟件開發(fā)領(lǐng)域最近十年來興起且當(dāng)下普遍成熟運(yùn)用的方法論。它和傳統(tǒng)的瀑布模型、螺旋模型等理念不同,其核心是 “敏捷”,結(jié)果是自動(dòng)化。DevOps 是敏捷開發(fā)的延伸,通過 “軟件交付” 和 “架構(gòu)變更” 的流程自動(dòng)化,使構(gòu)建、測(cè)試、發(fā)布軟件能夠更快捷、頻繁并且可靠。
傳統(tǒng)的軟件開發(fā)組織結(jié)構(gòu)中開發(fā)、運(yùn)維和質(zhì)量保障部門之間相互獨(dú)立、各司其職。隨著需求膨脹和響應(yīng)迭代頻率的加劇,行業(yè)對(duì)敏捷開發(fā)的要求更高,不僅要做到交付快捷頻繁,而且得保證質(zhì)量可靠,這就對(duì)軟件研發(fā)工具提出了更高的要求。
一個(gè)明顯的趨勢(shì)是,軟件研發(fā)工具正在從單個(gè)工具逐漸轉(zhuǎn)向?yàn)橐徽臼?Devops 平臺(tái)。
一站式 Devops 平臺(tái)至少要滿足如下三個(gè)最基本的條件:
•功能矩陣完整,能覆蓋研發(fā)過程的主要部分
•完善的研發(fā)數(shù)據(jù)鏈路和功能整合能力
•系統(tǒng)間的高度自動(dòng)化能力
有了這三方面最基本的保證,一站式 Devops 平臺(tái)才能發(fā)揮最大價(jià)值。
以代碼評(píng)審為例,工程師發(fā)起代碼評(píng)審時(shí),系統(tǒng)界面自動(dòng)將評(píng)審的研發(fā)數(shù)據(jù)鏈路信息(代碼 Diff 對(duì)比、評(píng)論、push、commit、關(guān)聯(lián)的需求、關(guān)聯(lián)的測(cè)試、流水線構(gòu)建、代碼掃描等)關(guān)聯(lián)并顯示到評(píng)審功能界面上。評(píng)審發(fā)起人和評(píng)審者可以基于這些信息進(jìn)行高效的數(shù)字化研發(fā)協(xié)同。
具體來說,在這個(gè)過程中:
①工程師進(jìn)行研發(fā)工作的各流程時(shí),可快速完成功能切換,無需跨多系統(tǒng)操作,使用高效,節(jié)約時(shí)間。
②將代碼評(píng)審的研發(fā)數(shù)據(jù)鏈路進(jìn)行功能級(jí)集成,不管是評(píng)審發(fā)起者還是評(píng)審人,都不再需要到各離散系統(tǒng)中去尋找相關(guān)信息,在評(píng)審界面各種信息應(yīng)有盡有,甚至可以直接在當(dāng)前界面進(jìn)行操作,這才是數(shù)字化研發(fā)協(xié)同能夠得以真正實(shí)現(xiàn)的關(guān)鍵核心,從而讓大幅度提升效能變?yōu)楝F(xiàn)實(shí)。
③當(dāng)代碼評(píng)審創(chuàng)建時(shí),代碼掃描、自動(dòng)化構(gòu)建等各種相關(guān)系統(tǒng)立即被自動(dòng)觸發(fā)與執(zhí)行,不需要復(fù)雜配置,實(shí)現(xiàn)全過程高度自動(dòng)化。不僅如此,這種高度的自動(dòng)化直接帶來了強(qiáng)大的質(zhì)量內(nèi)建和左移能力。
此外,一站式 Devops 平臺(tái)還具備如可視化能力、可追溯能力、可度量能力等,直接讓研發(fā)團(tuán)隊(duì)數(shù)字化協(xié)同水平上一個(gè)大臺(tái)階。
對(duì)技術(shù)背景雄厚的企業(yè)來說,自研 DevOps 平臺(tái)工具也是一種選擇,但這一平臺(tái)的開發(fā)需要很大的投入。以微軟的 Azure DevOps 為例,從微軟 2005 年正式對(duì)外發(fā)布產(chǎn)品化 Team Foundation Server(Azure DevOps 前身)開始,經(jīng)歷了 17 年的不斷開發(fā)與優(yōu)化,才有了目前國際市場(chǎng)上被廣泛認(rèn)可的 Azure DevOps。在此期間 Azure DevOps 為了適應(yīng)不斷變化的軟件研發(fā)管理實(shí)際要求,也經(jīng)歷了數(shù)次大的技術(shù)調(diào)整與重構(gòu)。由此可見想一蹴而就地研發(fā)一款優(yōu)秀的 DevOps 產(chǎn)品基本是不可能的。
雖然目前市場(chǎng)上有很多 DevOps 產(chǎn)品,但是或多或少會(huì)有一些開源工具的影子,有些干脆就是基于開源工具套了一個(gè)殼子。這種方式可以讓產(chǎn)品快速投入使用,但是同時(shí)也會(huì)有很多的問題。比如:
技術(shù)封裝不到位:這類產(chǎn)品的最大特點(diǎn)就是只是對(duì)開源產(chǎn)品進(jìn)行類簡(jiǎn)單地封裝,但由于封裝得不到位,導(dǎo)致了在運(yùn)行自開發(fā)產(chǎn)品的同時(shí),需要維護(hù)底層的開源產(chǎn)品。也有一些產(chǎn)品,在基于開源產(chǎn)品進(jìn)行優(yōu)化時(shí)反而降低了開源產(chǎn)品具備的優(yōu)秀能力,提高了使用難度,這就有點(diǎn)兒得不償失了。
流程管理模式僵化:DevOps 平臺(tái)需要具備的研發(fā)流程管理,配置管理,自動(dòng)化流水線,制品管理,環(huán)境管理等重要模塊功能中,除了研發(fā)流程管理,其他的主要功能每個(gè)產(chǎn)品的差異不是很大。最能體現(xiàn)產(chǎn)品特色的就是研發(fā)流程管理。但是很多產(chǎn)品在設(shè)計(jì)這部分時(shí),都只支持敏捷、看板或者帶有自管理方式的流程。研發(fā)流程上每個(gè)企業(yè)都或多或少地存在差異,尤其是在一些中大型的軟件研發(fā)部門或企業(yè)中,固化的流程管理方式很難適配所有團(tuán)隊(duì)。
擴(kuò)展性差、定制化強(qiáng):很多 DevOps 產(chǎn)品是都支持企業(yè)級(jí)用戶的,但往往在適配企業(yè)用戶時(shí)需要對(duì)現(xiàn)有產(chǎn)品進(jìn)行定制才能將企業(yè)管理流程落地。定制化方式往往僅限于基于現(xiàn)有產(chǎn)品的定制化開發(fā)。其實(shí)基于產(chǎn)品的定制化開發(fā)應(yīng)該是最后才考慮的,否則會(huì)導(dǎo)致后期維護(hù)成本高,同時(shí)會(huì)給版本升級(jí),產(chǎn)品功能迭代帶來諸多質(zhì)量問題。
管理維度能力較強(qiáng),工程維度專業(yè)度不足:正確的做法應(yīng)該是平臺(tái)工具從管理維度上覆蓋軟件研發(fā)的所有過程,從工程維度上有的 DevOps 平臺(tái)產(chǎn)品可以覆蓋軟件研發(fā)的主要過程,但是很多產(chǎn)品在設(shè)計(jì)的時(shí)候并沒有考慮到從工程維度的版本交付維度進(jìn)行管理,這導(dǎo)致了在當(dāng)前軟件研發(fā)過程中很多 DevOps 平臺(tái)產(chǎn)品都是項(xiàng)目 / 系統(tǒng) / 團(tuán)隊(duì)范圍內(nèi)的研發(fā)管理,但是由于很多企業(yè)的不同產(chǎn)品間是存在耦合的,很多時(shí)候需要不同系統(tǒng)協(xié)同開發(fā)與發(fā)布,而很多 DevOps 平臺(tái)產(chǎn)品對(duì)跨系統(tǒng)支持得并不好。
可度量設(shè)計(jì)缺失、數(shù)據(jù)分散:有些 DevOps 平臺(tái)的研發(fā)數(shù)據(jù)分別存儲(chǔ)在不同功能模塊中,各個(gè)模塊數(shù)據(jù)沒有聯(lián)系,這種情況尤其體現(xiàn)在基于開源產(chǎn)品的封裝式產(chǎn)品上;有些則無法簡(jiǎn)單地定制化度量報(bào)表。
一站式 DevOps 工具如此之多,應(yīng)該怎么選呢?正所謂 “試玉要燒三日滿,辨材須待七年期”,所以歷經(jīng)六七年時(shí)間打磨的 SoFlu 軟件機(jī)器人才能在眾多 DevOps 開發(fā)工具中脫穎而出。它是一款覆蓋軟件全生命周期的自動(dòng)化開發(fā)工具,包含后端全自動(dòng)開發(fā)平臺(tái)、前端全自動(dòng)開發(fā)平臺(tái)、全自動(dòng)測(cè)試平臺(tái)、全自動(dòng)運(yùn)維平臺(tái)。
SoFlu 軟件機(jī)器人有三大特性:
可視化:SoFlu 軟件機(jī)器人擁有可視化開發(fā)界面,用戶利用簡(jiǎn)單的流程圖就能分析業(yè)務(wù)邏輯,拖拽組件就能完成軟件開發(fā)。不論是專業(yè)的開發(fā)人員,還是沒有編程基礎(chǔ)的普通人,都可以創(chuàng)建復(fù)雜程度不同的軟件,自動(dòng)化開發(fā)流程可以滿足加速數(shù)字化轉(zhuǎn)型的業(yè)務(wù)需求。平臺(tái)簡(jiǎn)單易上手,極大地降低了開發(fā)門檻和人力資源投入。
自動(dòng)化:自動(dòng)化是提高軟件開發(fā)效率的保證。不論是開發(fā)、測(cè)試、運(yùn)維,都能實(shí)現(xiàn)自動(dòng)化。以后端開發(fā)為例,連接數(shù)據(jù)庫后,平臺(tái)自動(dòng)生成庫中所有表的基本接口和 SQL 語句,開發(fā)效率提升 300%,時(shí)間成本降低 10 倍。此外,項(xiàng)目測(cè)試時(shí),平臺(tái)能自動(dòng)識(shí)別所有變動(dòng)的接口,自動(dòng)查找接口關(guān)聯(lián)的所有測(cè)試用例進(jìn)行精準(zhǔn)回歸測(cè)試。
全棧一體化:一站式 Devops 平臺(tái)不是簡(jiǎn)單的菜單堆積,不是系統(tǒng)的簡(jiǎn)單集成,也不是過 webhook 或者插件,能實(shí)現(xiàn)幾個(gè)系統(tǒng)之間簡(jiǎn)單的信息傳遞和自動(dòng)化觸發(fā),而是像 SoFlu 軟件機(jī)器人一樣,全棧一體化,將軟件開發(fā)、測(cè)試、運(yùn)維全部聯(lián)通,并且自動(dòng)化執(zhí)行,無需考慮與第三方平臺(tái)的集成成本。比如,由于測(cè)試平臺(tái)關(guān)聯(lián)了前后端開發(fā)平臺(tái),一旦開發(fā)環(huán)節(jié)有所變化,測(cè)試平臺(tái)可以生成自動(dòng)化的測(cè)試腳本,實(shí)現(xiàn)精準(zhǔn)回歸測(cè)試。SoFlu 軟件機(jī)器人的全自動(dòng)運(yùn)維平臺(tái)提供 170 個(gè)接口,方便用戶精準(zhǔn)定位問題,極大提升運(yùn)維效率。
而且,SoFlu 軟件機(jī)器人已經(jīng)有了成功的案例。它曾幫助國有企業(yè)中石油開發(fā)一個(gè)大型電商平臺(tái),在 5 個(gè) SoFlu 軟件機(jī)器人的協(xié)助下,中石油僅僅投入 9 人團(tuán)隊(duì) 45 天就完成了平臺(tái)的重構(gòu)及上線。而此前,中石油曾聘請(qǐng)外部廠商,組建了一個(gè)近二十人的開發(fā)團(tuán)隊(duì),花了約一年的時(shí)間才勉強(qiáng)將該電商平臺(tái)完成,且上線后,出現(xiàn)了系統(tǒng)運(yùn)行不穩(wěn)定、信息安全存在隱患等諸多問題??梢哉f,電商平臺(tái)能順利上線, SoFlu 軟件機(jī)器人在其中起到了關(guān)鍵性的作用,不僅明顯降低了項(xiàng)目開發(fā)難度,提升開發(fā)效率,還極大地為企業(yè)節(jié)省了人力成本和資金投入,真正實(shí)現(xiàn)了 “一人一項(xiàng)目,十人抵百人”。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )