開啟 DevOps之旅,有哪些關鍵點?

danny_2018發表於2022-08-31

想要落地DevOps卻不知道如何入手?本篇文章將帶你深入學習關於DevOps的關鍵概念及最佳實踐。

DevOps的起源

一般認為,DevOps的出現源於兩個因素:敏捷軟體方法的廣泛採用以及IT基礎設施及程式碼的管理方式。

我們先看敏捷軟體開發方法。20世紀末,主流軟體開發方法是所謂的瀑布模型,需要花費大量時間,適用於對快速產品交付需求不大的大型資訊系統,這個模型能夠確保產品的高質量和精細的成本控制。

20世紀90年代,隨著網際網路和Web技術的發展,瀑布模型的消極作用開始顯現:如何滿足不斷變化的客戶需求的同時,還要按時交付同時不降低產品質量,就變得極為困難。

因此,IT管理方法也需要隨之變化,逐漸從聚焦IT系統逐漸轉變為聚焦IT服務的管理模式。

從2000年開始,這些湧現出來的管理實踐,被先行者工程採納之後,成為所謂的最佳實踐,有些最佳實踐進一步被業界廣泛接受,甚至成為標準。

我們以IT服務為例,20世紀80年代,這樣的想法開始出現:資訊科技以服務的形式提供價值,以流程的形式組織IT活動。隨後ITIL(IT基礎設施庫)等被闡述出來,使得這些實踐進入最佳實踐之列,在2002年成為IT服務管理的首個標準。

如今,新湧現出來的實踐,被打上DevOps(開發+運維)的標籤。實際上,DevOps的內涵,已經大大超出了原始含義。那麼究竟什麼是DevOps呢?

何為DevOps?

隨著與客戶互動的新方法的出現,以及敏捷開發技術的充分應用,業界迫切需要一種新的IT管理方法。而以虛擬化和雲端計算技術為支撐的基礎設施即程式碼的出現,為IT管理新方法的出現提供了機遇,基於敏捷軟體開發和精益生產演進的IT管理新方法DevOps應運而生。

DevOps是一種敏捷軟體開發和精益製造想法的演變,應用到IT端到端的價值鏈,歸功於文化、組織和技術的變革,使業務能夠透過現代資訊科技更多地達到預期,更快滿足使用者的業務需求,提升資源利用率。

首先,DevOps是對敏捷軟體開發和精益實踐兩者的演變,是吸收,而不是取代。

其次,DevOps 被應用到IT端到端的價值鏈,其本質就是:DevOps所考慮的不僅僅是軟體開發,而是整個價值鏈。整個價值鏈始於業務干係人的新想法,經過需求分析,設計,開發,測試和部署,到運維,最後到交付給客戶。端到端價值鏈的方法有助於從宏觀上整體地分析,識別和消除瓶頸。

為什麼要採用DevOps?

首先,企業落地DevOps是提升產能和效率的必然選擇,可以大幅提升新產品或新應用的上市時間。

傳統企業新產品上市涉及到相當大的時間跨度,對於響應的IT部門,這個時間可能包括以下環節:

針對一種或若干種業務想法構建和起草方案,以及業務論證;

評估和選擇一個業務想法進行實施;

規劃實施所需的行動,獲得資金;

員工和業務流程準備;

同時進行需求規範化,原型開發,初始測試,全功能IT系統開發,全面測試,釋出和部署;

同時進行營銷活動,市場準備,銷售渠道和工具的準備;

新產品或服務的推出。

上述流程需要花費幾年時間,然而業務部門希望縮短到數月。擁抱DevOps的理由是顯而易見的。

創造數字化產品的充滿活力的公司,習慣於快速行動。相對於嚴謹,詳細計劃,他們更推崇可安全失敗的實驗。這時,流程可能是這樣的:

建立一個假設,開發驗證方法;

假設的實際實現;

結果評估,A / B測試,與目標的比較;

根據分析進行調整,返回第一步或第二步。

很容易看到這是一個迴圈,預期時長是幾周。這就是小步快跑的策略。這樣快速的步驟是必須的,因為DevOps的本質就是持續的探尋。最終狀態是不可知的,指定長期的計劃沒有意義。

為了儘可能縮短上市時間,DevOps提供了多種技術:

減少批次大小;

減少交接次數;

持續識別和消除損失;

自給自足的團隊,傳統IT部門為成本最佳化,DevOps為速度而最佳化;

自動化。

其次,減少技術債務也是企業擁抱DevOps的一大原因。技術債務是在團隊成員選擇一個非最優的方式解決問題以縮短開發時間時產生的。這是一個自然的過程,問題是累積的非最優方案導致了開發產出逐步惡化,必然導致產品質量下滑。

DevOps持續重構程式程式碼,重視在操作中取得的經驗,鼓勵持續識別並消除瓶頸,認為這些工作和技術創新同開發新產品功能同等重要。

同時,DevOps強烈建議使用“儘可能頻繁面對問題”的實踐,以便防止問題的“停滯”,即所有人都知道,但沒有人能夠處理的情況。

除此之外,採用DevOps可以幫助企業排除脆弱性。通常組織中最重要的和業務收益最相關的系統是最脆弱的。

DevOps能夠以最激進的方式改變脆弱性,做到完全排除;

在DevOps中,程式碼和系統作為一個整體,在某個時刻是全功能的,如果接下來的變更破壞了效能,就要馬上回滾並且讓系統持續正確地工作;

DevOps的實踐,有意地引入混亂和不穩定性到生產環境,目標IT系統必須以獨立和快速的方式做出反應,探測到故障並恢復它們的正常運作,理想情況下終端使用者是無感知的,當然資料也不會丟失。

DevOps常見誤區

常見誤區1:“DevOps不過是延續敏捷的想法”

企業在落地DevOps前,首先要明確一點,DevOps並不僅是敏捷的一部分。

儘管DevOps在很大程度上基於敏捷,然而擴充套件了敏捷開發到通用的敏捷IT交付,覆蓋整個組織、整個流程以及完整的價值鏈;

獲得DevOps的回報需要在公司中進行比以往敏捷所做的更為顯著的文化變革;

DevOps的目標集合不僅限於加速交付:也需要減少技術債和排除脆弱性。

常見誤區2:“工具能夠給你極致的DevOps”

其次,我們需要意識到DevOps是一系列的組織文化和工作方式變革,而不僅僅是工具和自動化。

雖然個別的軟體解決方案被廣泛接受,但沒有也不可能有一個完整的DevOps必備軟體列表;

DevOps依賴確定的自動化工具的可用性和有效性。但是嚴格來講,這些工具的最小集可以縮減到用於儲存所有原始碼的版本控制系統、IT基礎設施配置資料、軟體交付流水線自動化系統;

任何特定的DevOps實施都需要從企業自身組織情況出發,專業的商業化廠商可以幫助企業快速理清流程、加速實現組織變革。

常見誤區3:“DevOps是一個全能士兵,能寫程式碼,做測試,部署環境,並管理基礎設施”

最後,我們需要了解DevOps並不是一個新職業。

DevOps是一種對IT部門的基本面有深遠意義的變革,並不是透過招聘一些DevOps工程師或邀請DevOps專家就能達成的;

具有實施軟體交付流水線的能力也不能保證成功;

短期來看,不大可能透過應用DevOps的實踐就立即節省成本,但長遠來看是在為更大的降本增效做準備,因而選擇一個具有過硬技術實力和豐富實踐經驗的廠商十分重要。

來自 “ alauda ”, 原文作者:雲原生技術社群;原文連結:https://mp.weixin.qq.com/s/RNZsjcHuqakxfDIMKnvDFw,如有侵權,請聯絡管理員刪除。

相關文章