云管理員可以使用各種各樣的工具和方法來實現Azure部署的自動化。決定runbooks、DSC或其他替代工具是否最適合用戶的實際需求。
自動化腳本程序和runbooks是系統管理員工具箱里的看家寶。遷移至云基礎設施——管理員可以在幾秒鐘內進行實例化、移動和擴展虛擬資源——只強調了一致性可重復管理過程的重要性。
對于Windows操作系統的管理員來說,PowerShell一直以來都是首選的腳本程序工具。而在今天,PowerShell則更是成為了微軟Azure自動化服務的堅強骨干。
雖然Azure自動化最初也是圍繞PowerShell工作流程(這是一系列可執行任務和命令的步驟,即所謂的runbooks)進行設計開發的,但是它現在還支持聲明模式。這些模式描述了被稱為期望狀態配置(DSC)的一個系統或服務配置,這種方法首先是由PowerShell引入的。
這兩種自動化技術為用戶提供了實現相同目標的不同方法。Runbooks就如同是為從A點到B點提供了精確的轉向導航方向一般,而DSC則是為GPS地圖軟件設置了一個目的地,并讓它計算到達目的地的最佳路徑。
這里是在選擇兩種方法時所需予以考慮的一些事項。
Azure Runbooks
微軟Azure自動化服務中的工作方式是與其在Windows Server中一樣的;管理員可以使用PowerShell通過API來控制任何服務。此外,包括PowerShell模塊實施cmdlet在內的任何應用都可以通過Azure自動化工作流程進行控制。雖然自動化runbooks是專為管理Azure服務而設計開發的,但是他們還可以使用被稱為混合Runbook Workers的功能來控制私有數據中心內的資源。
管理員可以從頭開始創建工作流程或在Runbook Gallery中的可用工作流程基礎上進行微調。他們還可以在文本編輯器中使用PowerShell 代碼或者在Azure門戶上是用圖形UI來開發定制的runbooks。Azure門戶還配有一個顯示各個作業的作業活動與錯誤條件、資源使用情況以及日志詳細信息的信息顯示板。
建議與比較
自動化是提高管理效率和保持Azure一致性、可靠性和安全性的關鍵所在。以下是一些通過自動化技術實現更高效Azure管理的相關建議:
對于在單個公共云上實施標準化的企業來說,Azure自動化應當是系統管理腳本程序的默認選項,因為它與Azure服務組合是緊密集成的,并支持大部分Windows管理員已經在使用的腳本程序環境。
已經熟悉PowerShell的Windows企業用戶應當使用它來構建自動化runbooks。但是,他們還應當使用DSC對一些活動進行體驗,例如保持虛擬機配置和補丁程序級別同步等。這種方法的風險是與特定供應商綁定的。雖然亞馬遜網絡服務和谷歌云計算平臺都支持PowerShell,但是腳本程序本身不一定是可重用的。通過采用參數化方法(而不是硬編碼)、Azure特定API調用或將模塊中封裝Azure特定代碼,可嘗試確保代碼的可移植性,而不是依靠腳本程序本身。
Linux企業用戶可從學習使用PowerShell實現自動化中受益良多,但是他們可以從CLI入手,CLI可在任何shell環境中正常工作。
多云計算企業用戶應當充分調研可以跨公共云和私有云環境的第三方配置管理軟件。此外,因為自動化工具可以在持續集成和部署中發揮作用,企業用戶在作出決策之前可咨詢相關開發人員和DevOps團隊。
Azure DSC
DSC描述了Azure節點所需的配置。當企業用戶在運行集群(其中多個節點共享相同配置)時,例如負載平衡web前端或VDI服務器,這種方法是特別有用的。DSC 需要一個Pull服務器,它可以存儲節點配置并將其發送至每臺托管節點上的本地配置管理器(LCM)引擎。LCM可對配置信息進行解析,使用Windows Management Instrumentation將其與現有狀態進行比較并執行任何所需的變更。
與runbooks一樣,DSC是一個使用配置塊的PowerShell腳本程序,管理員可以使用它來開發自定義的DSC資源。微軟公司還提供了十二個內置的DSC資源,其中包括了歸檔文件、寫入時間日志或管理注冊表項的功能。
無論是使用runbooks還是使用DSC,微軟Azure自動化可用于各種各樣的云計算管理任務,例如跨Azure訂閱區或區域創建和克隆虛擬機,或者在一個訂閱區內跨所有機器進行安全策略的配置和修改。
Azure自動化服務的替代品
通過上述所列出的相同runbook功能,管理員還可以在任何PC上使用PowerShell或命令行界面(CLI)來對Azure進行腳本程序開發和運行。由于PowerShell現在是開源的,所以用戶使用它是不需要Windows的;但是對于OS X、Ubuntu以及CentOS等操作系統來說,是需要安裝相關安裝包的。
微軟還為可用于Windows、Mac OS X和Linux等操作系統的Azure提供了CLI和開源shell命令。CLI可以與Azure資源管理器或傳統的Azure管理門戶一起使用。
管理員還可以使用諸如Chef、Puppet、Ansible以及Salt這樣的第三方DevOps軟件來自動化實現Azure資源與管理系統的安裝、配置、更新、安全補丁升級等工作。Chef 已將其軟件與Azure集成以簡化Azure Marketplace中預配置Chef服務器的部署。