事故不斷的 DevOps !
DevOps方面有什麼樣的坑?好多坑,不過你好歹可以從別人犯的錯誤中汲取教訓。
在DevOps圈子,失敗根本就不受鼓勵。企業組織希望成功。它們希望每次構建、每個專案和每項長期計劃都實現其目標。不過,DevOps方面的失敗卻是不爭的事實。常言道,如果你眼看要失敗,就確保儘快叫停,從中汲取教訓,並利用剛獲得的教訓改進流程和產品。
以這個理念為背景,我們剖析了業內人士提到的幾個常見的DevOps故障,嘗試從每個故障中汲取一些教訓。
第一個坑:不可預見的鎖定
講述者:首席軟體工程師Carlos Sanchez
當你使用配置即程式碼實現部署自動化時,確保已落實了適當的保護措施(即驗證配置)。否則,很容易把自己鎖在外面,迫使你自己手動登入到每臺計算機,以便推送錯誤的變更並部署到所有計算機上後進行修復。
教訓:你將質量融入流程並提前做好自動化時,需要確保儘早並經常驗證所有變更。
這種情況表明了企業需要如何實施正確的流程,不僅僅針對應用程式程式碼變更,還針對管理環境的基礎設施即程式碼變更。實現自動化以追求DevOps時,有必要針對DevOps和生產系統的訪問許可權的登入資訊和秘密管理制定一項策略。
第二個坑:部署不合拍
講述者:工程技術主管Laura Frank Tacho
在持續整合/持續交付(CI/CD)期間並行開展工作可加快自動化測試,並縮短反饋週期。務必確保部署不是作為一個並行步驟來執行。錯誤配置會導致你的程式碼在測試執行的同時進行部署,無論其退出程式碼如何,部署前自動化測試的意義幾乎喪失殆盡。
教訓:這個故事強調了在部署到客戶之前確保已透過某些關卡有多麼重要。你需要構建CD管道,以便並行測試作為生產關卡來加以管理,確保經過適當測試和驗證的變更並沒有自動部署。
另一件事:雖然DevOps堅持認為你應該能夠隨時輕鬆部署,但需要將部署視作一個受管理、謹慎的事件。管道中的所有流程結束時再進行部署,任何變更部署到客戶之前已完成了所有必需的測試、驗證、檢查和審批。
第三個坑:SCM衝突
進述者:解決方案架構師Will Refvem
DevOps方面的最大挑戰之一是原始碼管理(SCM)。在我職業生涯的早期,有權訪問Git程式碼倉庫有點像將一把用彈藥帶的機槍交給喝醉酒的小孩。我在DevOps方面出的最大 糗事就是,我在一個使用Git子模組的專案中試圖掌握Git的基礎知識,有一系列bash指令碼實施了一套基本的CI/CD工作流程,卻直接在我們部署變更的環境中執行。我記不得遇到了多少次合併衝突和分離的HEAD。幸好,我們當時使用的是fork-PR模型,所以我沒有造成嚴重破壞。
教訓:需要一種適當的分支和合並模型,確保你將適當的輸入饋送給DevOps管道,好讓你可以持續整合、測試和最終部署變更。
第四個坑:定義不明確的KPI
講述者:產品營銷人員Juni Mukherjee
我們如何定義關鍵績效指標(KPI)很重要。比如說,一個質量工程團隊將每個迭代開發週期(sprint)執行的測試數量定義為一個成功指標。人會受到激勵的驅使,團隊的天性是增加越來越多的測試,甚至沒有考慮歸檔過時的內容。想一想,我們可以做到測試較少,但影響力較大;更重要的是,測試越少,測試周期時間越短。因此,我們應關注測試的覆蓋範圍和有效性,而不是純粹的數量。
與之相仿,釋出工程團隊將每個迭代開發週期的釋出數量定義為一個成功指標。釋出的數量勢必體現了速度,然而版本釋出只是將程式碼從A點移到B點,並沒有評估給業務增添的價值。因此,將業務KPI(比如獲得的新客戶數量和收入增長百分比等)與釋出速度聯絡起來至關重要,那樣我們就知道自己力求有價值的速度,而不是自殺的速度。
教訓:這是DevOps方面一個很重要卻常常被忽略的教訓。不能僅僅為了表明你在搞DevOps而實施。你需要為計劃制定目標,並確保兩者相一致。一旦我們定義了這些目標,就需要將KPI和成功指標與這些目標保持一致。合理定義這些成功指標和KPI將決定構建管道時哪些方面會優先考慮。
第五個坑:未能消除組織阻礙
講述者:顧問Viktor Farcic
一大障礙是文化,因孤立的部門而導致。我們開始分析整個系統、找出哪些方面要改進時,答案往往是“這不是我們的部門,我們不瞭解,他們不會與我們溝通。”那些孤島正是使用DevOps的主要理由;DevOps試圖消除這些孤島。但是實際上,大多數公司帶來了另一種孤島,這回是DevOps部門。實踐中的DevOps直接有悖於DevOps的想法。
教訓:圍繞產品和功能等主題來組織你的團隊,並讓軟體開發過程中的所有利益相關者進入這些產品或功能團隊。這讓利益相關者更好地參與其中,並防止常常困擾傳統軟體開發的“對立”的部落心態。
DevOps方面的文化完全與流程、實踐、工具和技術一樣重要,但它是最難改變的方面之一。
結論
與任何複雜的流程一樣,DevOps同樣會遇到失敗。一路上會有交接不順、溝通不暢。企業組織還會在實施整體DevOps計劃方栽跟斗。
DevOps方面的這幾個坑表明了DevOps轉型如何難以實現。會有種種問題,但它們是可以解決的。你需要將轉型當作一次學習和改進的迭代過程。如果你偶爾失敗,繼續前進,長遠來看你會成功的。
作者:CloudBees公司的DevOps宣傳官
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547898/viewspace-2214005/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 終端斷開,任務不斷
- 保持ssh的連線不斷開
- 不斷向上滾動的公告欄
- 管理不斷增長的API組合API
- jQuery不斷閃動的文字效果jQuery
- postfix配置積累(不斷的積累)
- 開源:不斷創新的動力
- 如何管理 CVE 不斷上升的趨勢
- kafka線上事故Kafka
- 自己總結的部分面試題,不斷更新面試題
- UITableView中發現的小技巧(不斷更新)UIView
- 我常用的幾個SQL,不斷新增中SQL
- AIX filesystemcache引發的Oracle事故AIOracle
- 不斷提高自己技術水平
- Javascript Lib (不斷更新中)JavaScript
- 前端渣渣對requestAPI的不斷重構之路前端API
- 資料處理踩過的坑(不斷更新):
- 美國播客產業——不斷增長的受眾產業
- Python中不盡如人意的斷言AssertionPython
- UltraEdit for linux 不斷試用30天的方法Linux
- SecureCRT for linux 不斷試用30天的方法SecurecrtLinux
- tc abaper的部落格 ABAP不斷學習中。。。
- Redis Cluster 當機引發的事故Redis
- win10電腦怎麼設定黑屏不斷網_win10黑屏後不斷網的設定方法Win10
- const特性總結(不斷更新)
- jquery 工作筆記,不斷整理中..jQuery筆記
- securecrt保持會話不會斷掉Securecrt會話
- oracle維護管理指令(不斷更新)Oracle
- java基礎:面試題【不斷更新】Java面試題
- 字串操作彙總(不斷新增中)字串
- Nginx配置使用積累[不斷更新]Nginx
- iterator標籤總結(不斷更新)
- 單方事故處理
- Js+CSS間斷和不間斷文字滾動程式碼JSCSS
- 入股心動,B站斬不斷的遊戲陽謀遊戲
- Omdia觀察:伺服器的使用年限不斷延長伺服器
- “新政”不斷的智慧城市,如何安全迎接新變革?
- 晶片產業不斷翻新將迎來新的增長晶片產業