DevOps三步工作法
第一工作法是關于從開發(fā)到IT運維再到客戶的整個自左向右的工作流。為了使流量最大化,我們需要小的批量規(guī)模和工作間隔,決不讓缺陷流向下游工作中心,并且不斷為了整體目標(相對于開發(fā)功能完成率、測試發(fā)現/修復比率或運維有效性指標等局部目標)進行優(yōu)化。
必要的做法包括持續(xù)構建,集成以及部署,按需創(chuàng)建環(huán)境,嚴控半成品,以及構建起能夠順利變更的安全系統(tǒng)和組織。
第二工作法是關于價值流各階段自右向左的快速反饋流,放大其效益以確保防止問題再次發(fā)生,或者更快的發(fā)現和修復問題。這樣,我們就能在所需之處獲取或嵌入知識,從源頭上保證質量。
必要的做法包括:在部署管道中的構建和測試失敗時“停止生產線”;創(chuàng)建快速的自動化測試套裝;開發(fā)和運維之前的頻繁溝通;持續(xù)改進日常生活;
第三工作法時關于創(chuàng)造公司文化,該文化可帶動兩種風氣的形成:不斷嘗試,這需要承擔風險并從成功和失敗中吸取經驗教訓;理解重復和練習是熟練掌握的前提。
必要的做法包括營造一種勇于創(chuàng)新、敢于冒險以及高度信任的文化,把至少20%的開發(fā)和IT運維周期劃撥給非功能性需求,并且不斷鼓勵進行改進。
鳳凰項目background
無極限零部件公司是一家汽車零件生產制造企業(yè),具有驚人的研發(fā)和制造能力。在過去30天內,股票暴跌19%,與其三年前的最高股價相比下跌了52%。這家公司不斷被其勁敵——一家在預測并及時響應用戶需求方面聲名鶴起的公司擊退。現在,無極限零部件公司在銷售增長、庫存周轉率和盈利能力等方面完全處于弱勢。
長久以來,公司一直許諾將通過整合零售和電子商務渠道的鳳凰項目來恢復盈利能力。但是項目比預期拖延2年,超支1000萬美元。
鳳凰項目Scenario 1 - 新官上任
Roles:
公司CIO和IT運維副總裁被公司解聘。比爾是IT運維中型機團隊的leader,因過去的良好表現被任命為IT運維副總裁。Scenario 1發(fā)生在接受任命的同時。
Event:
工資核算系統(tǒng)發(fā)生故障,員工領不到工資,工會介入,公司的公眾形象受損。
安全部門因為應對PII(個人信息)存儲的緊急審計問題,部署了一個標記化應用,損壞了數據庫的SSN(社保卡)字段,但變更沒有被登記,沒有人知道發(fā)生了這個變更。發(fā)生故障的同時,公司SAN固件升級,工程師判斷是SAN升級導致的故障,進行SAN回滾,導致更大面積的故障,更多數據庫宕機。
Learning:
沒有測試環(huán)境進行測試就部署在生產環(huán)境
沒有變更登記
鳳凰項目Scenario 2 - 故障頻發(fā)
Event:
鳳凰項目進展緩慢
開發(fā)批評運維沒有準備好環(huán)境,平時也不參加開發(fā)的會議。
運維說2周前開發(fā)才給出一些技術參數,目前還沒提供基礎架構,沒有產品和測試環(huán)境配置的具體參數。平時只提供一個網絡文件夾作為部署輸入。
關鍵人物布倫特因處理工資系統(tǒng)故障,延誤了鳳凰項目環(huán)境的準備。
Learning:
沒有測試環(huán)境,沒有變更登記
關鍵業(yè)務系統(tǒng)不斷出現故障,修復的優(yōu)先級高于鳳凰項目。計劃外工作不斷中斷高優(yōu)先級工作。
鳳凰項目Scenario 3 - 雪上加霜
Roles:
帕蒂:變更流程負責人
比爾:IT運維副總裁
Event:
電腦安全更新時導致藍屏,比爾作為IT運維副總裁更換不到一臺理想的電腦;
比爾參加CAB(變更管理會議),只有帕蒂一個人參加;
SOX-404 IT審計發(fā)現重大缺陷:95條IT常規(guī)控制缺陷,16條重大缺陷,2條潛在重要缺陷;
大多數審計發(fā)現都需要布倫特的介入,已經聘請了同樣資深的人員,但知識都在布倫特腦中,布倫特忙的沒有時間對其他人進行培訓;
只有業(yè)務項目清單,沒有IT基礎架構項目清單;
Learning:
大部分人力資源上都在鳳凰項目上,更換電腦的流程混亂,效率底下;
變更管理流程和工具花了大量的咨詢費,但因為過于復雜沒有人愿意用;
業(yè)務人員私下找熟悉的人員執(zhí)行變更,其他人都意識不到變更的存在;
每個人忙著處理手上的“高優(yōu)先級”任務,事故和故障修復工作占用了員工75%的時間。
Action:
在現有清單的基礎上,使用談話的方式整理項目清單。
共整理出35個業(yè)務項目,70個運維項目,人均一個項目。
鳳凰項目Scenario 4 - CAB會議
Roles:
帕蒂:變更流程負責人
比爾:IT運維副總裁
Event:
新的CAB會議上,運維人員指出變更管理系統(tǒng)過于復雜,過多的字段設置,大量的輸入以及不合理的設計造成的無法使用。同時批準的速度太慢。
Action:
引入變更看板,在日程表中加入變更索引卡片,包含3個信息:變更計劃制定者,變更實施目標系統(tǒng),一句話變更概述。
收集下周內要實施的變更;
定義變更:對應用程序、數據庫、操作系統(tǒng)、網絡或者硬件進行物理、邏輯或虛擬操作,這樣的操作坑能對相關服務產生影響。
Result:
收集到400+變更,要在一周年實施完畢。
定義審批流程:
高風險:列出十大脆弱的應用、基礎架構和服務,相關的變更必須審批;
中度風險:無須審批,但變更提交者有責任向可能受影響的人員進行咨詢并得到認可,審核后安排變更熱日程,如標記化應用。
低風險:標準變更,只需登記,無須審批。
鳳凰項目Scenario 5 -上帝降臨
Roles:
埃瑞克:公司未來董事,最大投資人
比爾:IT運維副總裁
Event:
埃瑞克帶比爾參觀無極限零件公司的一家工廠的MRP-8車間。介紹這家工廠原來的情況是這樣的:
任務發(fā)布臺的工作人員按照先進先出的原則發(fā)布任務,從不考慮其它工作中心的工作負載和效率。幾十年來,工廠里堆滿了半成品,庫存堆積,工作從未按時完成。
Learning:
應該按照瓶頸資源的工作速度安排工作。瓶頸之外的任何改進都是假象。
-
埃瑞克給比爾提供了一些建議:
作為IT運維副總裁,你的工作是確保形成一條迅速,可預測,持續(xù)不斷的計劃內工作流,從而向業(yè)務部門交付工作價值,同時降低計劃外工作的影響和破壞。
Homework:
搞清楚在運維中心里,等同于任務發(fā)布臺的角色是什么?
找出運維中心四種類型的工作是什么?
鳳凰項目Scenario 6 – 失控變更
Roles:
布倫特:運維技術大牛
比爾:IT運維副總裁
帕蒂:變更流程負責人
Event:
1級嚴重事故:信用卡處理系統(tǒng)故障
故障討論會議中,大家彼此推卸責任,互相指責。事故在討論會議期間被布倫特快速解決,因布倫特意識到是之前的一個操作造成故障發(fā)生,快速回滾。
Action:
比爾要求帕蒂在開會前整理出變更時間線,對可能造成故障的變更進行討論,找出問題;
禁止在找出造成故障的原因之前,嘗試解決問題,避免造成更嚴重的問題;
舉行兩周一次事故處理演練;
鳳凰項目Scenario 7 – 保衛(wèi)布倫特
Roles:
布倫特:運維技術大牛
比爾:IT運維副總裁
Event:
業(yè)務部門再次投訴布倫特沒有按時完成鳳凰項目的任務。比爾到布倫特座位附近觀察布倫特的工作,發(fā)現布倫特的工作總是不斷的被打斷。雖然鳳凰的優(yōu)先級最高,但是因為只有布倫特了解關鍵系統(tǒng),業(yè)務領導威逼利誘,導致他無法聚焦鳳凰。
Action:
建立三級人力資源庫用來解決問題,讓布倫特的電話靜音,只有三級人力資源庫可以接觸布倫特,記錄學習到的知識,同樣的問題不允許布倫特出手第二次。