DevOps 誰說大象不能跳舞?
很多企業,尤其是大企業在產品開發和運維上存在著一些普遍問題,比如開發周期長、人員合作程度不高、開發和運維脫節等等。可看看一些巨型企業,比如Google,Amazon,Facebook,Salesforce等等,人家的規模不比你大,架構不必你復雜?為什么他們能做到大而靈?
成功的因素固然有很多,而一個共同的因素是,他們都引入了DevOps的概念。
DevOps是基于Agile和Lean發展而來的一種理念,目的是更好的優化開發和運維的流程,從而更快、更高效的實現產品更新。DevOps是由Development + Operation縮寫而來,但絕不是二者的簡單相加。引入DevOps需要在企業文化和技術上都要落實一些措施。
在我們進一步介紹該理念之前,本文來探討一些我見過的IT環境中的問題,尤其是在大企業中有普遍性的問題。
上圖想說的是由于組織結構、文化以及技術局限性的多種原因,各個組負責自己的一畝三分地,別組的事情不管我事,我也根本不知道別人在干什么。那產生的后果呢,咱們從項目的各個環節一一道來。
設計階段
需求分析和后面的環節脫鉤。往往大費時間精力制定的需求,在后續階段中不能很好的執行。可能的原因有:一需求本身的質量不高,沒有很好的衡量手段和標準二需求沒有體現整個LifeCycle,往往忽視運維中可能出現的問題三只注重Functional Requirements , 而忽略Non-Functional Requirement
另外需求更改是難免的,可合同已經簽了。按照Change Control的規定,需要重新評估時間,人力及風險,這一趟下來時間上的損失不說,非常耗精力。
開發階段
實施人員可能對設計本身的了解不透徹,更別說對需求的把握了。做出來的東西有時走了樣,忘了本來的目的是什么。
測試階段
Unit Testing,integration Testing, Performance Testing, Stress Testing, UserAcceptance Testing. 整個測試階段耗時耗力,測試人員有時閑的要死,有時忙的要死。各個測試之間的協調也是問題。
運維階段
大型復雜項目中往往一個Change需要涉及多個團隊,本來30分鐘的活兒,你要想每個組都批準Change可能要數天甚至數周。運維中出了問題呢,各個組之間扯皮推脫自是家常便飯。怕的是有的時候根本不知道哪出了問題,也可能整個系統靠個別技術牛人來撐著,其他人沒有也不知道如何下手。
解決方案
發牢騷誰都會,那么有解決辦法么?當然有,不過這可不是什么靈丹妙藥,一吃就靈。需要從上至下,在文化上和技術上都要有下大力氣才行。請關注下文將展開DevOps的一些實施細節。