DevOps是一組過程、方法與系統的統稱,用于促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。
DevOps這個新理念的出現,是為了應對IT環境中普遍面臨的一些挑戰。開發團隊要求的不斷滿足新的客戶需求,并快速實現新的功能。而運營最關心的是“穩定壓倒一切”,任何差錯都有可能對生產環境中的用戶造成直接影響。
DevOps是一組過程、方法與系統的統稱,用于促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。企業通過以下7個方面來實施DevOps:
1. 確定共同目標
在當今的經濟競爭環境下,只有企業保持足夠敏捷,才能在激烈的競爭中脫穎而出。傳統過程中,開發人員和運維人員各自為營,工作角度和目標完全背道而馳。然而DevOps需要所有團隊人員彼此配合,完成企業的共同目標。DevOps需要一個更加寬闊更加有力的組織性的改變——一個是擁有共同目標和預期效果。對為什么公司正在向更好的合作發展和通過DevOps實現更高的敏捷性的需要達成共識是有效實施的關鍵。
2. 不斷發展的架構模型
容器技術、單頁面的Web應用程序(SPA)、Node.js、移動互聯網應用、物聯網和Web API等這些先進技術已經成為了應用接下來發展的前景。他們顛覆了傳統軟件開發的生命周期(SDLC),從而也顛覆了傳統架構的模型。由于代碼數和單元部署數正在向快速增長的方向發展,這也意味著源代碼管理、版本管理和發布管理等變得更加相關和繁瑣。然而開發人員總數想著更快更直接地完成新的產品,勢必忽視更多運營管理和部署的問題。為了使這些類型的中斷管理有意義,唯一的方式是通過一個成熟的DevOps的方法,和一個強大的DevOps平臺。企業通過采用DevOps戰略,從而獲得更好的服務。
3. 集成現有的安全和治理模型
越來越多的企業正在朝著新的混合模型的方向發展,它是涉及了傳統內部部署的數據中心、公共云、私有云和將服務與平臺作為一種服務能力的軟件所形成的新的混合模型。新的混合模型相比于同類型的模型,帶來了更多的架構發展趨勢的討論,從而誕生了如何在這么多不同實體和供應商下實現管理和發布的問題。然而一個集中的DevOps策略可以在很大程度上減輕混合模型的問題。企業通過將現有的安全模型和工具集成到平臺來實施DevOps策略。同時評估安全模型和工具所引起的差別,在必要的地方引進新的工具和能力,以此來實現無縫地協同合作。
4. 環境異質性(機器/OS)
當環境越是單一,所需的自動化工具的數量(圖像、配置管理、發布、監控等)可能會相對較少,這就使不同部門在分享經驗、代碼和調整等變得更加簡單。任何已經獲得成功的IT運維組織都必須與不斷拓展的平臺和應用類型所帶來的復雜性做斗爭,這時,企業需要一個架構和平臺策略,來幫助企業決定該向哪些領域投資,以及放棄那些不相關的領域。
5. DevOps的啟用
對自動化而言,先進的工具是關鍵性的因素。事實上,DevOps的概念并不是新的概念,但是在當今的時代下,現有的各種先進技術和工具使得進行自動化變成了可能。但是,只是提供一個將工具無縫集成的平臺是遠遠不夠的,實現DevOps計劃時,還需要使用同等水平的“設計思維”。例如,將 DevOps工程師作為計劃團隊的主要成員,當開始一個新的項目時,團隊的管理者申請什么樣的模型元素呢?如何重載 DevOps平臺?什么自動化元素已經可以使用對應著哪些需要被新創建?在DevOps的世界中現有團隊成員的應該肩負什么樣工作職責和扮演什么樣的角色?這些問題都是制約實施DevOps戰略的重要因素,企業需要解決這些因素,從而產生一個合適的“設計思維”。
6. 改造投資
一個企業的DevOps平臺和計劃不會是免費的,從而產生什么樣的業務線(LOB)來完成支付,是否使用開源產品等的問題。DevOps將會是一個很好投資,這是投資于交貨速度、通過自動化實現高質量的交付和采取的減少形式或重新分配資源來降低成本,從而在SDLC進行傳統的活動。由于企業級的工具通常不是完全免費的,存在一定的獲取和管理的成本,然而將“自動化服務”利用于消費模型中,將開源工具集成到平臺上,編寫自動化腳本并且完成管理。
7. 自上而下與自下而上的購買
當行政級別的企業部署DevOps戰略時,他們更多關注更多的是一些成本數、降低的部署周期時間和積極吸引他們進入市場的時間。包括 DevOps在內,得到執行層面的幫助和支持是任何轉型成功的關鍵因素,但只是一個自上而下的方法不會使DevOps成功,只是到達開發人員和在每個環節并得到他們很好的實施的先決條件。DevOps通過自動化水平也重新定義了在開發和測試團隊的角色。開發人員和測試人員有自己的工具和方法,如果使用戰略需求的標準化工具時,他們會非常不情愿的放棄原有的工具。當許多員工之間互相抱怨時,這是沒有成功轉型的一個很好的跡象。開發人員和測試人員也圍繞如何建設完成現有的知識領域,應用組件的依賴關系是什么,什么是更相關的測試場景等等,這是實現自動化等的關鍵信息。當開發人員和測試人員成為合作伙伴時,也意味著轉型是成功的。
DevOps是IT交付過程令人興奮和具有深遠意義的轉變。隨著軟件行業日益清晰地認識到:為了按時交付軟件產品和服務,開發和運營工作必須緊密合作, DevOps勢必會成為企業轉型的主流。