在過去十年里,云計算從一個概念迅速發展成為一個大家普遍接受、并廣泛應用于實際生產中的新型IT基礎設施。尤其是在公有云IaaS領域,以AWS、阿里云為代表的廠商取得了令人矚目的成就。如此同時,和云計算幾乎同步發展起來的DevOps理念也隨著云計算的普及而逐步被人們接受,并成為主流的軟件生產方式。
根據Puppet Labs 2014年度調查報表顯示,目前有超過半數的受訪者已經在實踐DevOps。并且該調查報告還顯示采用DevOps軟件生產方式是企業打造出高效IT服務能力的有利武器,而一個高效的IT服務能力能夠把軟件和服務部署的頻率提升30倍、同時降低50%的失敗率。因此,我們認為企業IT領域正處在重要的變革器,即:IaaS和DevOps已經變成企業IT領域的新常態。隨著IaaS及DevOps成為新常態,企業IT系統的運維管理體系也需要做出明顯變革,以適應新常態的需求。
一、新常態下的IT運維管理變化
從IT系統進入企業起至今已經有幾十年的發展歷史。在這個過程中,IT運維管理也逐步成熟起來,并形成了以ITIL為代表的完整運維管理體系。 ITIL以傳統IT服務為管理目標,提出了一整套從系統設計、實現到運維的完整流程。這個體系強調流程與規范,以對內輸出服務為主要目標。但是,現如今的企業IT服務已經不再僅僅是企業內部的業務支撐系統,而是需要直接面對最終用戶,快速響應市場變化,并已經成為企業核心競爭能力之一。這些新情況對以 ITIL為核心的傳統運維管理體系提出了迫切的變革需求。而 IaaS 和 DevOps 成為新常態后,這種變革需求則變得更為直接和具體。
變化一:IaaS成為新常態后,企業的運維管理重心轉到應用運維
在IaaS出現之前,企業的IT運維管理職責一般包括基礎運維和應用運維。這種職責劃分甚至都能直接映射到很多企業內部運維團隊的組織架構上。很多公司的運維團隊就會分成以基礎運維為主要職責的基礎運維團隊,以應用運維為主要職責的應用運維團隊,部分公司還會有支撐如上兩個團隊的運維開發團隊。但是,IaaS成為新常態后,企業的基礎設施已經變成IaaS平臺,其基礎運維工作已經完全由IaaS平臺供應商負責。而最終企業用戶則只需要關注應用運維層面的工作。這會導致很多以基礎運維為核心和出發點的工具(如傳統ITOM管理軟件)及其實踐方式都不再適用。當然,采納IaaS后,整個運維管理團隊必須要有自己的云平臺策略,并為之配套相應的運維管理工具,以充分發揮IaaS平臺的優勢,做好應用運維這個重心工作。
變化二:DevOps成為新常態后,企業的運維管理目標轉為持續交付
在傳統軟件生產方式中,Dev和Ops兩個團隊相對獨立,甚至因為組織結構上的原因形成了隔閡。這種情況對于給最終用戶交付IT系統價值非常不利, 并經常導致整個運維管理流程以控制變更為目標而忽視交付給最終用戶的價值要求。DevOps則強調讓Dev和Ops相互融合,并以最大化交付價值為最根本的追求。這種思想下的一個重要原則就是持續交付、快速迭代。為執行這個原則,自服務IT、自動化一切、持續部署等最佳實踐被廣泛采納。同時,IaaS平臺提供的“可編程”基礎設施讓這些最佳實踐更容易得以實施并極大推進了DevOps軟件生產方式的落地。
二、Iaas和DevOps成為新常態下的企業IT運維管理面臨的問題
在IaaS和DevOps成為新常態之后,企業的IT運維管理同樣會面臨著一些新問題。具體總結為如下幾個方面。
問題一:IaaS成為新常態后,如何統一管理不同云平臺的資源
當企業決定采納云平臺作為其IT基礎設施,就需要面對統一管理不同類型基礎設施的問題。部分基礎設施為公有云平臺資源,部分則可能來自遺留的企業內部虛擬環境或者物理機。即使無遺留IT基礎設施,企業也經常選擇多家公有云平臺來避免被一家供應商鎖定。另外,出于業務安全或者合規要求,企業非常有可能采用混合云架構。下圖來自RightScale 2015年企業采用云計算平臺現狀的調查報告,其調查結果也佐證了這個觀點。
當混合云成為普遍選擇時,企業IT資源的統一管理就會成為一個新的挑戰。例如,企業經常需要面對下面幾個問題:
◆如何統一管理公有云主機、私有云主機和物理機?
◆如何以應用視角管理基礎設施?
◆如何集成云API,實現自動伸縮?
新型IT運維管理體系只有解決以上幾個基本問題才能實現對于不同來源基礎設施進行標準化無差別管理,同時也充分發揮IaaS平臺帶來的彈性基礎設施的優勢。
問題二:DevOps成為新常態后,如何真正實現持續部署和交付
如前所述,現如今IT系統的交付周期越來越短。而且還需要在持續交付的過程中保證服務的高可用和性能的高穩定。但是,整個IT系統的持續部署和交付需要一個較長的流程來保障。例如,下圖就是一個典型的從代碼到最終服務的流程。
在這過程中,阻礙整個持續交付流程順利進行下去的常見問題有:
◆如何建立統一的Artifact倉庫?
◆如何保證測試環境和生產環境的一致性?
◆如何在部署后實現快速反饋?
企業在實施IT持續交付過程中經常會因為未解決以上常見問題而導致最終的持續交付流程流于形式,未能達到支持業務創新的目標。
[page]問題三:IT服務能力成為企業核心競爭力后,如何高效運維管理越來越龐大的IT系統
隨著互聯網+浪潮的逐步深入推進,企業IT系統承載的業務會越來越多,也越來越重要。這也意味著需要更高效的運維方式管理越來越龐大的IT系統,尤其是需要管理日益增多的虛機。同樣來自于RightScale 2015年的報告,大部分企業的虛機數量已經超過50臺(如下圖)。
一般來說,超過50臺虛機的規模意味著傳統手工運維管理已經很難保證效率和質量。這時企業就會在日常運維管理中,遇到以下常見的問題:
◆如何同時給1000臺虛機打補丁?
◆如何實現端到端的監控?
◆如何實現故障自動修復?
要解決企業IT系統規模增加帶來的運維挑戰,自動化成為現代運維管理系統普遍的選擇。這其中就包括自動化構建、自動化測試,自動化部署、自動化修復等一系列最佳實踐。
三、新常態下的IT運維管理解決方案
針對IaaS和DevOps成為新常態下的IT運維管理需求,傳統以ITIL為標準的ITOM管理軟件及相關運維管理實踐已經無法適用。克服這些問 題,除了需要新的理念,新的組織架構,也同樣期待新型的統一云管理平臺(Cloud Management Platform,CMP),這個平臺需要具備如下幾個方面的能力:
◆管理平臺能夠統一管理不同來源的IT基礎設施,解決企業IT基礎設施碎片化的問題。同時需要深度對接主流IaaS平臺,響應企業業務對于新型IaaS的需求。
◆管理平臺需要以應用為核心構建整個管理體系,而不再是以管理IT基礎設施為核心。無論是IT資源的組織方式、服務監控告警的展示方式,還是各種日常運維的操作和部署都需要從應用的角度設計。
◆管理平臺需要提供一站式的全棧工具鏈集成能力,讓開發、測試和運維人員都能在其上對于一個應用進行協作和管理。并且,這個平臺還需要能夠構建應用的全面反饋體系(需要全面的自動化測試和監控),并基于這個反饋體系實現整個工具鏈的自動化。
對于企業級用戶來說,選型統一的云管理平臺也就需要充分考慮以上這些要素。具體實施來說,企業可以有以下幾種可能途徑:
◆基于IaaS平臺控制臺及相關管理類服務搭建。這種方式是企業用戶最容易上手的途徑,尤其是在企業IaaS供應商非常單一的情況下可以很快有初步結果。但是這個途徑的最大風險在于會被某一個IaaS供應商所鎖定(lock-in)。越深入的使用云供應商的管理服務就會越深的被它鎖定。
◆基于開源軟件完全自建。自建自己的統一云管理平臺對于很多企業用戶非常有吸引力,尤其是在開源軟件如此豐富的今天。如果選擇自建云管理平臺(尤其是直接利用開源軟件搭建)時,企業用戶要非常注意傳統平臺經常會出現的“煙囪效應”,即不同應用場景下使用的工具完全不一樣,且相互的信息無法打通。例如,運維管理平臺最基礎的CMDB層應該在監控、運維以及代碼部署等很多運維場景中復用,以便始終保持數據的一致性,降低運維維護負擔。但是常見的開源軟件基本是以單一場景出發,并未提供一體化解決方案,所以需要用戶自身來完成相關整合工作。另外,企業最好還要評估自建平臺的成本及收益,做到有的放矢。
◆購買第三方獨立供應商軟件。目前,在市場上存在的第三方云管理平臺大致可以分成兩類。一類是以傳統運維管理平臺演化而來的產品(包括CA、 BMC、IBM等),這類軟件對基礎設施層管理能力比較強,非常適合公司云基礎設施集中管理(包括權限管理、賬號管理、費用管理、審計管理等)。而另外一 類則是以RightScale為代表的新型云管理平臺。這一類產品則更多的關注云上應用管理(包括應用監控、運維和部署等),非常適合面向公司內部云上應用的開發、測試和應用運維人員。
對于企業級用戶,在確定公司的云戰略中,云管理層會是一個非常必要的組成部分。無論企業最終選擇那種方式來實現,最好都需要在規劃階段就能夠仔細考 慮,使其成為公司云戰略的一部分。這樣才能在未來更好的實施云戰略,并促成公司達到采納云的初衷:利用IT能力加速企業的業務創新。
作者簡介
徐桂林:當前在FIT2CLOUD負責公司的技術布道和生態合作。在此之前先后供職于意法半導體、Autodesk和阿里云。徐桂林熱衷于云計算(尤其是公有云IaaS平臺),有過多年AWS的生產環境工作經歷,是較早在國內分享AWS上實踐經驗的作者之一。