天天看點

DevOps的故事(如何整合開發和運維?)

在一個與我們平行的世界中,有一個軟體開發公司。這個公司所做的産品使用者量近期增長的十分迅猛,但是令CTO頭疼的是公司的兩大部門:開發部和運維部近期也是“掐”得厲害。為解決這個問題,CTO決定倒入現在十分流行的DevOps,并且CTO還請來了Gary來當顧問。項目管理者聯盟

  聽到這個消息,開發部經理 “小D” 在部門會上長長舒了一口氣,說:終于可以解脫“豬隊友”的問題了,維護人員什麼也不懂,就會擺弄那些當機器,有點小問題都讓我們來解決。DevOps 我了解,就是讓那幫運維人員用開發人員的思維去做運維工作,這個問題終于可以解決了!”項目管理者聯盟

  于此同時,運維部經理“大O”也興奮地對運維團隊說:“太好了,開發團隊開發的産品就是一灘屎,總是讓我們擦屁股,有什麼技術他們還捂着、掖着不告訴我們。DevOps要求産品品質前移,好好整整開發部,那樣我們就會輕松很多了!”項目管理論壇

  很快CTO組織了一次會議,這次參會的隻有四人:CTO、“小D”、“大O”還有顧問gary。在互相介紹後,CTO宣布了要推行DevOps的決定,并讓“小D”和“大O”談談看法。項目管理者聯盟

  “小D”首先發言:項目管理者聯盟

  1. 我們開發能力通過持續改進已經很強了。現在我們靈活開發,自動化測試、內建和部署,可以每天內建,每周進行對外釋出。www.mypm.net

  2. 至于運維人員我不敢恭維,水準太差。現場問題基本都透傳給開發,嚴重影響到了我們的開發進度。那麼多人都不知道在幹什麼?!training.mypm.net

  接着是“大O”的反擊:項目管理者聯盟

  1. 你們每周都釋出,我們每周都要維護新東西,都要現學現賣,運維要的是産品穩定,你知道我們有多大壓力嗎?項目管理者聯盟

  2. 我們運維人多是因為你們産品開發品質差、問題多,而且問題一出現就是大問題,都要修改代碼,這不是我們能解決的。項目管理者聯盟

  3. 我們運維人多,但是工資低,而且還不被重視,工作也很累,要7*24小時盯着。service.mypm.net

  4. 你說我們什麼都不會,那是因為開發什麼也不教我們運維,我們怎麼會?項目管理者聯盟

  “小D”畢竟年紀青,有些被氣瘋了,指着“大O”的鼻子說:“我們開發任務那麼忙,哪有時間教你們。而且,從去年起我們進行的BSC分解中,運維被定義為開發的内部客戶,你們對我們有考核權,從此我們這塊的KPI就沒高過,你還想怎麼樣?!”PgMp.mypm.net

  CTO看兩人快動手了就急忙拉架,并順勢打開了去年KPI說:“來,大家都看看,去年的KPI是這個吧?”項目管理者聯盟

  表一開發部KPI(部分):項目管理者聯盟

DevOps的故事(如何整合開發和運維?)

項目管理者聯盟

  表二 運維部KPI(部分):項目管理者聯盟

DevOps的故事(如何整合開發和運維?)

項目管理者聯盟

  “大O”指着表二說:“看到了吧,我們運維部也背着市場和銷售部門的内部滿意度KPI呢!”項目管理者聯盟

  這時Gary覺得該是他出面的時候了,他穩定下情緒,心平氣和地對CTO說:“你們公司的目标應該是讓客戶滿意度提升,而不是隻讓你們把内部責任分解得很清楚,現在的KPI您也看到會激化部門間沖突,是以我建議應整合兩個部門,讓開發和運維部共同承擔對客戶滿意度的KPI。”項目管理論壇

  CTO想了下說:“你的意思是将開發和運維合成一個部門?”此言一出“小D”和“大O”各自驚出了一身冷汗。Gary有深意地掃了一下他們倆,對CTO說:“不,我不是這個意思。如果單純地整合了兩個部門,實際上隻是将沖突藏在了一個部門内部,沒有徹底解決問題,而且弄不好新合并的部門将成為一堆爛泥,分不清楚了。而且即使合成一個部門,開發和運維的人員還是要分開的,否則開發和運維工作都搞不好。” CTO有點暈了:“那你到底想要幹啥?” Gary說:“好,讓我們簡單地梳理一下,我通過你們的讨論而想到的幾點解決辦法吧!”項目管理者聯盟

  1. 以後客戶對産品的滿意度由開發、運維兩個部門應共同承擔。這個滿意度部分開發還是運維階段,而是整體的滿意度。我們要改變一些觀念,比如:去掉“完成”概念。不要有釋出了就算開發完成了和開發無關了;運維通知開發處理問題了就和運維人員無關了等等的想法。項目管理者聯盟

  2. 我們不光是開發品質遷移,還要運維需求“前移”。運維人員可以根據現場運維情況,提出對運維的需求,比如:對哪些常見問題的自動化監測、報警值、報警方式等等,這樣會讓産品可運維性大大提升。項目管理者聯盟

  3. 建立産品問題庫,對于産品營運階段不管是開發還是運維人員發現、處理的問題大家都可以看到,這樣我們既可以及時分享處理問題方法還可以讓不同的人了解大家的工作現狀。

4. 開發部應加強對運維人員的教育訓練工作,隻有提升了運維人員能力,才能讓他們解決更多類型的問題,這樣才能減輕開發人員壓力,磨刀不誤砍柴工嘛!項目管理者聯盟

  5. 對于經常出現的問題,運維可以整理出來由開發部先開發些成熟的自動化工具,提升問題解決效率。後期,運維人員應加強程式設計能力,最終做到用80%時間編制一些運維自動化工具,進而減輕運維成本。項目管理者聯盟

  這些隻是我的初步想法,後續我們在實施DevOps的時候再詳細地讨論吧,包括開發時使用什麼樣的新技術和新工具。“小D”聽到這眼睛明亮了許多。項目管理者聯盟

  CTO想了想,一拍桌子說:“好,就這樣決定了,我們現在就制定DevOps實施計劃。”