日前,基礎(chǔ)設(shè)施自動化服務(wù)商Puppet發(fā)布了2021年DevOps調(diào)查報告。這已經(jīng)是該系列報告發(fā)布的第十年,報告顯示,在超過2,650 名 IT、開發(fā)和信息安全專業(yè)人士之中,有83%的IT決策者表示,他們的組織正在進行DevOps實踐,以通過更優(yōu)質(zhì)的軟件、更快的交付、更安全的系統(tǒng)以及系統(tǒng)的理論體系,來釋放更高的業(yè)務(wù)價值。
DevOps,即Development(開發(fā)人員) 和Operations(運維人員)的組合詞。
這是一種重視軟件開發(fā)人員和運維人員之間溝通合作的開發(fā)模式,是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進開發(fā)、技術(shù)運營和質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合。關(guān)于對DevOps的理解,有許多不同答案。亞馬遜云科技曾總結(jié)稱,DevOps集文化理念、實踐和工具于一身,可以提高組織高速交付應(yīng)用程序和服務(wù)的能力,與使用傳統(tǒng)軟件開發(fā)和基礎(chǔ)設(shè)施管理流程相比,能夠幫助組織更快地發(fā)展和改進產(chǎn)品。
DevOps模式
傳統(tǒng)的軟件開發(fā)流程被稱為瀑布模型,分為開發(fā)、測試、部署三個階段。軟件開發(fā)人員先是用數(shù)周或數(shù)月的時間編程,然后將代碼交給測試團隊,最后將發(fā)布版本交給運維團隊部署維護。
現(xiàn)在,隨著軟件交付周期的縮短,同時為了應(yīng)對頻繁的更改需求,遲緩的瀑布式開發(fā)已不能滿足各方要求。通常來說,伴隨著DevOps和敏捷開發(fā),對應(yīng)的還有CI和CD兩個詞。CI是Continuous Integration(持續(xù)集成),CD對應(yīng)兩個詞語,Continuous Delivery(持續(xù)交付)和Continuous Deployment(持續(xù)部署)。DevOps模式下可大幅提高開發(fā)團隊的工作效率,加快版本更新。不僅如此,產(chǎn)品被更快地交到用戶受眾,業(yè)務(wù)團隊也能更快得到反饋、進行響應(yīng)。
在對應(yīng)用程序發(fā)布的影響上,DevOps有幾點突出優(yōu)勢。
一是減少變更范圍。與傳統(tǒng)的瀑布式開發(fā)模型相比,采用敏捷或迭代式開發(fā)意味著更頻繁的發(fā)布、每次發(fā)布包含的變化更少。由于部署經(jīng)常進行,因此每次部署不會對生產(chǎn)系統(tǒng)造成巨大影響,應(yīng)用程序會以平滑的速率逐漸生長。
二是增強發(fā)布協(xié)調(diào)??繌娪辛Φ陌l(fā)布協(xié)調(diào)來彌合開發(fā)與運維之間的技能鴻溝和溝通鴻溝,采用電子數(shù)據(jù)表、電話會議、即時消息、企業(yè)門戶(wiki、sharepoint)等協(xié)作工具來確保所有相關(guān)人員理解變更的內(nèi)容并全力合作。
三是自動化。強大的部署自動化手段確保部署任務(wù)的可重復(fù)性,減少部署出錯的可能。
DevOps起源
DevOps是近十年才興起的開發(fā)思潮,其思想萌芽于2007年。當(dāng)時,Petrick Debois 參與了比利時一個大型數(shù)據(jù)中心遷移項目,負責(zé)測試和驗證。他需要同時在開發(fā)團隊(Dev)工作和運維團隊(Ops)工作,兩個團隊截然不同的工作模式使他非常困擾,但同時也給了他新的啟發(fā)。
2008 年,在多倫多敏捷會議上,Petrick Debois 提出“ DevOps”一詞。2009 年,第一屆DevOpsDays會議在比利時根特舉行。從此,“DevOps”一詞逐漸傳開。2012 年, Puppet的Alanna Brown起草并發(fā)布DevOps調(diào)查報告,此后更多機構(gòu)參與報告調(diào)查,到了2014年,他們發(fā)現(xiàn),DevOps的采用正在加速。
現(xiàn)在,絕大多數(shù)的組織都正在引入DevOps以應(yīng)對更復(fù)雜的開發(fā)需求和環(huán)境,DevOps已經(jīng)被視為企業(yè)發(fā)展的關(guān)鍵。最新的DevOps報告發(fā)現(xiàn),它所遇到的大多數(shù)團隊都高度進化,成為交付代碼最快、最頻繁、為開發(fā)人員提供最緊密反饋循環(huán)的團隊,這些團隊通過使用內(nèi)部平臺來實現(xiàn)諸如用戶和服務(wù)到服務(wù)的身份驗證和容器編排等等。
DevOps工具
正如前文所說,DevOps集文化理念、實踐和工具于一身?,F(xiàn)在已經(jīng)有許多工具可以幫助組織更快速落地DevOps,下面介紹幾款流行工具和平臺。
Jenkins是開源的CI/CD服務(wù)器,可幫助用戶自動化交付流水線的不同階段。Jenkins流行的主要原因是其巨大的插件生態(tài)系統(tǒng),它提供1000多個插件,因此幾乎可以和所有DevOps工具(從Docker到Puppet)集成。
Git,最流行的DevOps工具之一,它是一種分布式SCM(源碼管理)工具。Git讓用戶可以跟蹤自己開發(fā)工作的進度。用戶可以保存自己源碼的不同版本,并且在需要的時候切回之前的版本。要將Git和DevOps工作流集成起來,需要維護repository,團隊成員可以向其中push各自的工作。
容器平臺Docker也可以一種重要的DevOps。使用Docker容器,可以在這些自定義環(huán)境中開發(fā)和部署應(yīng)用程序,從而不必擔(dān)心兼容性問題。它將應(yīng)用程序隔離成單獨的容器,因此應(yīng)用變得更加便攜也更為安全。Docker應(yīng)用程序也獨立于OS以及平臺,用戶可以使用Docker容器代替虛擬機,比如VirtualBox。
Kubernetes,容器編排工具。使用Kubernetes,無需將容器化的應(yīng)用程序綁定到某個單獨的機器里。相反,將它部署到一個機器集群里,Kubernetes會自動化分發(fā)并在整個集群里調(diào)度容器。
一種開發(fā)模式從出現(xiàn)到壯大,究其根本終究會落腳至 “降本增效”,而近期出現(xiàn)在大家視野的,稱可實現(xiàn)“十人可抵百人用”的“飛算SoFlu全自動軟件工程平臺”,則實現(xiàn)了通過可視化編程的方式實現(xiàn)全自動開發(fā)、測試、運維,即使用平臺的一個ID相當(dāng)于一個10人科技團隊,輸入流程圖即可實現(xiàn)自動開發(fā)、自動測試、自動運維,人力成本被大大降低,程序員從“重復(fù)造輪子”中解放出來,去關(guān)注更多的架構(gòu)設(shè)計的事情,而企業(yè)用戶在降本增效的同時,則可更多地關(guān)注自身業(yè)務(wù)。
據(jù)了解,飛算SoFlu全自動軟件工程平臺有三大核心技術(shù),包括:
可視化開發(fā),改變傳統(tǒng)開發(fā)方法,業(yè)務(wù)邏輯有可視化展示,降低開發(fā)門檻,無需編寫代碼,在設(shè)計業(yè)務(wù)邏輯時就形成微服務(wù)應(yīng)用;
平臺組件,可視化平臺組件是一類通用的技術(shù)功能模塊,平臺支持循環(huán)條件判斷、函數(shù)調(diào)用,通過拖拽方式以及參數(shù)配置實現(xiàn)等同于編寫復(fù)雜代碼的業(yè)務(wù)邏輯,有別于通過組件排列組合;
管理方式,主要通過管理平臺來管理需求、研發(fā)、測試、部署、上線、運維等整個軟件生命周期,沉淀經(jīng)驗、積累知識,將管理制度真正的落地。
研究下來,飛算SoFlu全自動軟件工程平臺可稱得上是近期比較有亮點的DevOps工具了,而可以幫助構(gòu)建DevOps實踐的工具還有許多,隨著DevOps的實施及相應(yīng)工具的普及,已經(jīng)有越來越多的團隊受益。
Liberty Mutual Insurance的DevOps平臺高級總監(jiān)曾表示,從根本上說,DevOps使開發(fā)人員能夠擁有、運行和管理應(yīng)用程序或軟件的端到端交付。其團隊部署代碼的速度加快了200倍,創(chuàng)造了更高的穩(wěn)定性,使其能夠進行更多的實驗,在更短的時間內(nèi)推出新產(chǎn)品和功能。
審核編輯:符乾江
評論
查看更多