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