企業須要深刻了解將工做負載遷移到公共雲的正確步驟,並所以下降成本。git
雲遷移不會自行發生,在遷移項目成功以前並不能完成工做和任務。企業將業務遷移到雲平臺的最大好處之一是能夠下降工做和運營成本,其中一個最重要的因素是雲計算基礎設施的自動化和配置。經過基於雲計算基礎設施的配置、設置和管理實現自動化,組織能夠騰出時間和資源來進行關鍵任務創新,而不是平常維護。安全
幸運的是,有許多雲計算基礎設施自動化工具可用於幫助加快流程。此外,許多相關工具也可能有所幫助。雖然沒有一種工具適合全部狀況,但這個指南能夠爲考慮所提供的各類優點提供幫助,並選擇最能知足企業的雲計算基礎設施需求的優點,不管企業的遷移是針對公共雲、私有云仍是混合雲架構。服務器
爲了幫助確保其在全部雲計算領域的領導地位,亞馬遜公司的AWS CloudFormation容許用戶使用YAML或JSON對資源進行建模,對它們實現自動化,而後將它們部署在基於AWS的基於雲計算的基礎設施中。網絡
若是企業使用或計劃使用基於AWS的雲計算產品,CloudFormation能夠幫助用戶確保全部團隊的配置儘量簡單。架構
CloudFormation容許用戶當即運行大量其餘AWS工具,包括Amazon CloudWatch和AWS Elastic Beanstalk。CloudFormation還能夠處理跨區域帳戶的自動化管理,從而能夠在業務擴展時更輕鬆地擴展到新的區域設置。CloudFormation Change Sets是在基礎設施發生以前預覽即將發生的更改的好方法。運維
若是用戶計劃使用AWS雲,能夠採用CloudFormation儘量多地完成任務。微服務
注:國內的阿里雲也提供了相似的運維工具。工具
做爲配置自動化市場的長期領導者,Puppet幫助當今一些最大的軟件團隊建模、配置和系統地實施其基礎設施的所需配置。藉助該公司的商業產品Puppet Enterprise,用戶能夠以驚人的規模管理基於雲計算基礎設施的各個方面,從計算到存儲再到網絡資源(對於基本部署,能夠考慮超過20,000個節點)。它適用於公共雲、私有云和混合雲。用戶使用Puppet的特定於域的語言(DSL)編寫模塊,這些語言爲用戶在每一個節點上安裝的代理程序強制執行的配置提供代碼。學習
使用Puppet Enterprise,用戶能夠得到開箱即用的編排和基於任務的命令執行和多設備管理。其GUI控制檯能夠輕鬆地對用戶部署的全部雲計算進行分類和管理。雖然Puppet DSL以花費一段時間來學習而聞名,但收益可能很大。阿里雲
Puppet公司與微軟、VMware,、谷歌和亞馬遜等主要廠商保持着整合和合做關係。例如,針對Puppet Enterprise的AWS Opswork提供了一套徹底集成的自動化工具套件,用於管理基於雲計算的基礎設施。
若是用戶須要標記強制配置和漂移補救,Puppet是其良好的自動化工具。
最近受到RedHat的保護,Ansible正迅速成爲基於其易於使用,基於任務的基礎設施自動化的行業標準。Ansible公司聲稱,用戶不須要具備計算機科學的深厚背景就能夠採用簡單的語言自動化、配置或編排任務,用戶能夠將其打包在「劇本」中。此外,用戶能夠輕鬆管理雲計算基礎架構的全部方面,而無需在雲計算基礎設施中的任何位置安裝單個代理。
Ansible Tower的主要功能(Ansible的商業產品)包括做業調度、基於GUI的庫存管理、多個遊戲工做流程,以及靈活的REST API,可以讓用戶在幾乎任何基於任務的配置管理過程當中嵌入Ansible Tower。
主要集成包括AWS、Microsoft Azure、VMware、Rackspace、Digital Ocean和谷歌雲。
使用Ansible的任務執行自動化配置可能會讓用戶的工做感受有點過於簡單。
Chef公司是基礎設施配置領域中的另外一家資深廠商。與Puppet同樣,Chef公司提供本身的DSL來幫助用戶實施從配置策略到持續交付生產代碼的全部內容。對於Chef Automate用戶(Chef的商業平臺),能夠每小時自動管理基於AWS的自託管基礎設施,或使用AWS Opswork實施Chef Automate。
藉助Chef Automate,用戶能夠得到詳細的合規性管理、高可用性和基於GUI的工做流程管道建立等關鍵功能。主要集成包括AWS、Microsoft Azure、VMware、谷歌雲。
若是用戶須要合規管理,Chef是一個不錯的選擇。
Kubernetes最初由谷歌公司開發,是一個容器編排平臺,用於自動化容器化應用程序的部署、擴展和管理。事實上,它已成爲容器編排的事實標準,而且是雲原生計算基金會的旗艦項目,由谷歌、AWS、微軟、IBM,英特爾、思科和RedHat等主要廠商提供支持。
雖然它不是一個真正的基礎設施配置管理工具,但Kubernetes能夠輕鬆部署和運行基於微服務架構的應用程序,幾乎適用於任何雲。它經過在一組主機之上建立一個抽象層來實現這一點,開發團隊能夠部署他們的應用程序,讓Kubernetes管理諸如控制應用程序或團隊的資源消耗,在主機基礎設施中均勻分佈應用程序負載以及自動加載平衡請求之類的事情。
考慮採用容器和微服務架構?許多人懷疑Kubernetes有朝一日會使傳統的配置管理工具徹底過期。
基礎設施管理的另外一個方面是「基礎設施即代碼」的概念。AWS、微軟、谷歌公司這三個行業巨頭都聲稱這是一箇中心哲學,Terraform也不例外。簡而言之,Terraform是一個開源工具,用戶可使用它來編寫聲明性配置文件來建立和修改基礎設施,但它並不徹底是配置自動化工具。
若是用戶在基於雲計算的工做流(例如AWS)中使用企業的商業產品Terraform Enterprise,那麼用戶將編寫版本控制配置的模塊、聲明建立或修改高級資源,例如Amazon EC2實例或Amazon Relational Database Service(RDS)資源。Terraform能夠藉助普遍的資源圖形和執行計劃幫助用戶自動配置這些資源。可是用戶仍然可能須要像Puppet或Chef這樣的配置管理工具來幫助其在這些資源上自動設置和執行軟件。
Terraform的主要集成包括AWS、谷歌雲平臺,Microsoft Azure雲平臺和Oracle雲。
Terraform很是重視「基礎設施即代碼」。用戶會獲得所指望的強大而穩定的聲明性配置。
若是用戶計劃使用谷歌雲平臺構建雲計算基礎設施,請採用雲計算部署管理器。在這裏,用戶可使用並行、可重複的部署和模板驅動的配置自動配置和部署谷歌雲。雲計算部署管理器提供了一系列豐富的工具,從CLI和API到GUI,用於管理基礎設施配置和管理的全部階段,從資源建立到刪除。
Azure Automation提供基於雲計算的自動化和配置服務,可在Azure和非Azure環境中提供一致的管理。它由流程自動化、更新管理和配置功能組成,旨在幫助用戶減小錯誤,並減小基礎設施部署所花費的時間。Azure Automation還提供對維護和合規性運行的自動控制。
最重要的是,它不只僅適用於微軟使用Azure自動化,用戶可使用經過PowerShell或Python Runbook觸發的自動化爲Windows或Linux主機進行異構部署。
微軟公司顯然表現出對現代DevOps從業者的奉獻精神。若是用戶須要運行各類操做系統,Azure多是一種很好的方式。
思科公司提供了許多從私有到公共到混合解決方案的雲計算產品。除了這些產品外,思科智能自動化雲平臺還提供從基礎設施即服務(IaaS)到在思科雲或其餘雲環境(包括AWS、OpenStack和VMware)中運行的實例的實際配置和管理。
主要功能包括爲用戶的雲計算用戶、多租戶和網絡服務自動化提供的自助服務門戶。儘管思科公司明確建立本身的雲計算基礎架構產品,但思科智能雲計算自動化平臺可以將自動化工具擴展到其餘生態系統中。
最初是像Puppet和Chef這樣的開源項目,Saltstack也加入了企業領域,主要關注自動化安全合規性。與Ansible同樣,SaltStack能夠無代理運行(但若是用戶的工做流須要,也能夠運行代理)。
若是用戶有興趣遷移到雲平臺,SaltStack提供了一個與雲計算提供商進行交互的界面,稱爲Salt Cloud,所以用戶可使用Salt來配置和管理基於雲計算基礎設施的全部方面。
SaltStack的主要功能包括無代理節點管理和卓越的安全合規性工具。它還與AWS、Microsoft Azure、VMware、Rackspace、Digital Ocean、OpenStack和谷歌雲進行了重要的雲集成。
現在,安全合規彷佛是一個巨大的問題,因此若是這是一個問題,也許SaltStack是用戶想要的方式。
VMware世界的這一小部分可幫助用戶配置和維護VMware雲環境(在AWS和RackSpace等供應商上運行),以知足其運營、安全和合規性要求。
VCM爲用戶提供了一個控制基於VMware的基礎設施配置的中心位置,不管它是在Windows、Linux仍是Unix操做系統上運行。企業還能夠輕鬆選擇VMware集成,這有助於使用許多VMware工具(包括vCenter、vCloud Director和VMware vCloud Networking)跟蹤配置數據,更改數據,網絡配置和合規性策略。
CFEngine是一種經典的配置管理工具,長期以來一直用於在各類規模的企業中實現IT基礎設施的自動化。與Puppet等須要中央管理服務器的工具不一樣,CFEngine依賴於每五分鐘運行一次的「自治代理」來強制執行其主機配置。使人印象深入的是,CFEngine容許用戶爲每一個管理服務器管理多達5,000個主機。
CFEngine與用戶的Amazon EC2基礎架構集成。
若是用戶須要一個輕量級工具來管理服務器的整個生命週期,從裸機到配置再到業務流程,開源Foreman項目能夠提供幫助。但請注意,Foreman依賴於與開源Puppet的至關深度的集成來進行節點的配置管理,但它還爲Chef、Ansible和Salt提供插件支持以用於其餘管理方面。
其專門的開源社區擁有普遍的插件庫。用戶能夠在主要提供商(如Amazon EC二、Google Cloud Computing、OpenStack和VMware)上使用Foreman配置雲計算實例。
Foreman絕對是構建開源軟件團隊的選擇之一。
每一個基礎設施自動化工具都有其優點、劣勢和學習曲線。在選擇工具時,用戶須要找到最符合項目需求和團隊需求的工具。當用戶開始雲遷移時,雲計算供應商構建的工具多是提供最簡單的方法,尤爲是若是用戶正在尋找「一站式服務」的時候。
也就是說,像Puppet、Chef和Ansible這樣的工具已經爲DevOps從業者在各類雲環境中管理基礎設施創建了巨大的聲譽,他們的集成證實了這一點。但必定要作好功課,由於一些相關的工具可能正是用戶所須要的。實際上,在許多狀況下,用戶可能會發現最好的方法是將兩個或更多這些工具組合在一塊兒。