DevOps:從理念到實施
為什么會有DevOps的出現?
DevOps這個新理念的出現,是為了應對IT環境中普遍面臨的一些挑戰。
敏捷的出現縮小了上圖所示的***個隔閡,也就是商業需求和開發之間的隔閡,有效的加快了產品開發的周期和效率。那么這無疑為運營團隊增加了很多壓力。
于是上圖中第二個隔閡,也就是開發和運維之間的隔閡需要解決,于是DevOps的理念應運而生。
如何解決開發和運維的隔閡呢?
首先要明白隔閡產生的原因。開發人員和運維人員認識的方法,以及各自所處的角色,都存在根本性的差別。
開發團隊要求的不斷滿足新的客戶需求,并快速實現新的功能。而運營最關心的是“穩定壓倒一切”,任何差錯都有可能對生產環境中的用戶造成直接影響。有些服務提供商都和客戶簽署Service Level Agreement。服務中斷意味著直接的財政損失。衡量指標不同,自然工作的重點不同。
那么我們首先要從文化上著手。
根本上要從文化上著手。文化的改變是***位。了解自己的工作隊全局的影響。
運維團隊必須明確的認識到,如果不能快速把開發成果推倒生產環境,企業就很可能被其他競爭對手超越。長久以來就很有可能被市場淘汰。覆巢之下,焉有完卵?那么運維團隊也就沒有存在的意義了。但不是說穩定不重要,我們需要實施一系列手段來實現即快又穩。
開發團隊必須明確認識到開發代碼或者更改設置時,可能會對整個系統穩定性和性能的影響。
其次要從組織結構上著手,考慮開發團隊和運維團隊的直接領導是同一個人,盡量避免部門直接互相指責和扯皮。
第三要實施一些工具及方法。
如何具體實施?
正如很多企業采用敏捷開發一樣,這需要一個準備,嘗試和逐步實施的過程。其實DevOps僅僅是一個理念,而且這個理念在不斷變化和發展中。無論公司大小,IT環境面臨的有很多挑戰是共通的。大公司組織結構相對發雜,人員理念和文化的形成非一夕一朝之功。在實施DevOps反面,反而小公司有很多的優勢。
除了IT企業外,DevOps對于傳統的行業(金融,電信等等)也同樣有借鑒意義。因為在不久的將來,每一個公司都是數字化的公司。沒必要強調你的企業是不是采用DevOps,應該開始深入了解你的環境中需要解決的問題是什么,再看DevOps中的一些方法是不是會幫到你,然后再具體實施一些措施和借用一些工具來幫助你。比如我所關注的虛擬化平臺的運維,就可以借鑒DevOps的很多思想。
標準化和自動化:
盡量采用模板和指定好的流程來更新Master Image,采用Puppet,Chef等工具來實現系統管理自動化,盡量減少人為干預。同時也避免了不必要的人為失誤。
像管理代碼一樣管理系統配置:
很多應用的配置,因為需求變化而更改。但文檔往往沒有同步更新。需要有工具來記錄系統的配置參數。也就是說借鑒軟件開發中管理Code的方式,來對系統環境的設置進行版本控制和同一的管理。從而保證環境的一致性和穩定性。
這樣可以捕捉到和規定配置不一致的情況,也可以快速的找到問題所在,提高排錯的效率并縮短時間。
要有獨立Dev/Test環境
新的配置必須在獨立的Dev環境中充分測試后,才能在生產環境中實施。
測試自動化
采用一些工具和方法,自動測試系統改動后的各項功能和指標。大大減少測試需要的人力和時間。
開發人員能自己創建開發環境
vCloud Director 可以很好的滿足這個需求。系統管理員可以把運算、網絡和存儲的資源專門分配給開發團隊,并授予適當權限。開發人員自己可以瞬間創建模板以及新的環境。


























