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