首頁/ 家居/ 正文

DevOps 3355

DevOps 3355

— 持續交付的三個基礎能力

— DevOps實踐指南的三步法

— 獨角獸專案的五大理念

— 加速的五組能力

DevOps 3355

為軟體的釋出建立一個可重複且可靠的過程

這個原則是我們寫這本書的一個目標:讓軟體釋出成為一件非常容易的事情。事實上,它的確應該是件很容易的事,因為在釋出之前,對釋出流程中的每一個環節,你都已經測試過數百次了。它就應該像單擊一個按鈕那麼容易。這種可重複性和可靠性來自於以下兩個原則:(1)幾乎將所有事情自動化;(2)將構建、部署、測試和釋出軟體所需的東西全部納入到版本控制管理之中。

歸根結底,軟體部署包括三件事:

❑ 提供並管理你的軟體所需要的執行環境,這包括硬體配置、所依賴的軟體、基礎設施以及所需的外部服務;

❑ 將你的應用程式的正確版本安裝在其之上;

❑ 配置你的應用程式,包括它所需要的任何資料以及狀態。

對於應用程式的部署,應該由版本控制系統中的全自動化過程來完成。透過儲存在版本控制系統或資料庫中的必要指令碼和狀態資訊,應用程式的配置也可以是一個全自動化過程。顯然,硬體是無法納入版本控制的,但利用廉價的虛擬化技術和像Puppet這樣的工具,這類支撐過程也可以全部自動化。

DevOps 3355

三步工作法:DevOps的基礎原則

《鳳凰專案》把三步工作法作為基礎的原則,並由此衍生出了DevOps的行為和模式。

DevOps 3355

圖1-4 三步工作法

(來源:Gene Kim在IT Revolution Press部落格上釋出的“三步工作法:DevOps的基礎原則”,訪問於2016年8月9日,http://itrevolution。com/the-three-ways-principles-underpinning-devops/)

第一步,實現開發到運維的工作快速地從左向右流動。為了最大程度地最佳化工作流,需要將工作視覺化,減小每批次大小和等待間隔,透過內建質量杜絕向下遊傳遞缺陷,並持續地最佳化全域性目標。

透過加快技術價值流的流速,縮短滿足內部或者外部客戶需求所需的前置時間,尤其是縮短程式碼部署到生產環境所需的時間,可以有效地提高工作質量和產量,並使企業具有更強的外部競爭力。

相關的實踐包括持續構建、整合、測試和部署,按需進行環境搭建,限制在製品數量,構建能夠安全地實施變更的系統和組織。

第二步,在從右向左的每個階段中,應用持續、快速的工作反饋機制。該方法透過放大反饋環防止問題復發,並能縮短問題檢測週期,實現快速修復。透過這種方式,我們能從源頭控制質量,並在流程中嵌入相關的知識。這樣不僅能創造出更安全的工作系統,還可以在災難性事故發生前就檢測到並解決它。

及時發現並控制這些問題,直到擁有有效的對策,可以持續地縮短反饋週期和放大反饋環,這是所有現代流程最佳化方法的一個核心原則,能夠創造出組織學習與改進的機會。

第三步,建立具有創意和高可信度的企業文化,支援動態的、嚴格的、科學的實驗。透過主動地承擔風險,不但能從成功中學習,也能從失敗中學習。透過持續地縮短和放大反饋環,不僅能創造更安全的工作系統,也能承擔更多的風險,並進行試驗幫助自己比競爭對手改進得更快,從而在市場競爭中戰勝他們。

作為第三步的一部分,我們能夠讓工作系統事半功倍,將區域性最佳化轉化為全域性最佳化。另外,不管是誰參與了工作,所有經驗都可以持續地積累,組織裡的人都可以相互借鑑彼此的經驗和智慧。

DevOps 3355

埃瑞克和瑪克辛走回桌旁。“有五大理念。”埃瑞克開始說。整個桌子的人都把注意力轉向了他。“我已經告訴過你們關於區域性性和簡單性的第一理念。我們需要做好設計,使系統以及構建它們的組織具有區域性性。此外,做任何事情都需要簡單性。

我們要把複雜性控制在內部,無論是在我們的程式碼中、組織中,還是在流程中。外部世界已經夠複雜的了,所以我們不能容忍複雜性存在於自己可以控制的事物中!我們必須讓我們的工作變得容易。”

瑪克辛坐下來,開啟她的筆記本計算機(很欣慰這次她記著帶來了),然後開始做筆記。

“第二理念是專注、流動和快樂。這是關於我們日常工作的感覺。我們的工作是以無聊和等待別人為我們做事為標誌嗎?我們是否盲目地在整體系統的一小塊上工作,只有在部署的時候才看到工作的結果,而這時一切都會崩潰,隨之而來的是救火、懲罰和筋疲力盡?還是說,我們小批次地工作——理想情況下是單件流——可以快速且持續地得到工作反饋?這樣我們就能保持專注和流動,不斷挑戰、學習、發現,精通自身領域,甚至變得快樂。”

他滿臉得意地環視著桌子:“這就是你們現在能得到的。等你們準備好了,我再分享另外三個理念。”

“你在開玩笑吧?”瑪克辛說,“你是在給我們表演尤達大師或宮城先生2的某種套路嗎?來吧,至少告訴我們其他理念的名字吧!”

2尤達大師和宮城先生分別出自電影《星球大戰》和《龍威小子》,都是良師的形象。——編者注

“你們真幸運,年輕人,我沒有時間爭論,酒吧裡都排起長隊了,我需要去處理。”他說,“第三理念是改進日常工作。反思豐田安燈拉繩教給我們的東西,必須重視對日常工作的改進,而不是日常工作本身。

第四理念是心理安全,我們要讓談論問題變得安全,因為解決問題需要預防,預防需要誠實,而誠實需要擺脫恐懼。在製造業,心理安全與人身安全同樣重要。最後,第五理念是以客戶為中心,我們要無情地質疑某樣東西對客戶是否真的重要,比如他們是否願意付錢給我們,還是隻對我們的職能筒倉有價值?”

埃瑞克喝完啤酒,微笑著說:“祝你們好運。下週見。”

“等等,等等,就這些?”瑪克辛說,但埃瑞克已經走了。瑪克辛低頭看著快速記下的筆記:

第一理念——區域性性和簡單性

第二理念——專注、流動和快樂

第三理念——改進日常工作

第四理念——心理安全

第五理念——以客戶為中心

DevOps 3355

​研究揭示了24個關鍵能力,它們驅動著軟體交付效能的改進,並經由統計證明其重要性。我們把這些能力歸為5個類別:

•   持續交付

•   架構

•   產品與流程

•   精益管理與監控

•   文化

相關文章

頂部