在業務經營中,“少即是多”一般是常見的陳詞濫調,IT也不例外。這意味著通過尋找更有效的方式利用現有資源以應對不斷增長的需求。這通常是通過任務自動化和簡化的過程與腳本和批處理作業來實現的。雖然這些方法是有效的單一的系統或任務,它們的范圍有限,因為它們一般不延伸超過一個單一的系統。而為了使IT產業能夠滿足企業的需求,必須將腳本化使之成熟為一種能夠跨越多個系統的自動化工具。
單個任務的自動化僅是自動化旅程的第一步。今天的IT基礎架構必須無縫交互,使組織能夠以難以置信的速度遷移多個系統的組合。雖然這聽起來在紙上談兵,而在實踐中,每個供應商都有自己的IT自動化工具。
PowerShell改變自動化的游戲規則
應用程序編程接口(API)作為IT專業人員期待的自動化基礎架構已經面世多年,但這些API的范圍和功能往往有限,直至微軟發布了PowerShell。PowerShell不是第一個IT自動化工具,也并不是一開始就是最好的IT自動化工具之一,但由于Windows的普及,它具有廣泛安裝基礎的優勢。微軟公司明智地選擇了不鎖定PowerShell,從而創建第三方的管理單元,使用戶能夠將PowerShell的擴展到其它環境中,如VMware,NetApp和Dell。
用戶在自動的環境中決定采用哪些IT自動化工具時,應該考慮不同的供應商提供的自動化工具的核心特性,工作平臺,以及成本。
由于PowerShell和虛擬化的逐漸普及,創造了許多編程語言來滿足自動化需求。這些環境的需要創建自動化編碼的能力。編碼通常不使用鼠標和圖形用戶界面(圖形用戶界面),它需要工作人員具備編程的工作知識。對于那些不熟悉編程的工作人員來說,關鍵是要從小做起,如果在沒有準備好之前做太多的功能,只會損害其基礎架構。最好的辦法是通過使用控制測試和開發環境,用戶可以承受不按計劃進行的失敗。自動化的主要吸引力在于它可以快速地執行任務,但這也意味著執行錯誤的速度也很快,因此想要阻止一個錯誤的事件發生,進行額外的測試是一個很好的想法。
自動化有一個偉大的事情是,就是在開源社區中有人可能已經做了你想做的事情,而大多數人都愿意分享代碼。所有的主要廠商,包括微軟,PuppetLabs,Chef和Ansible,有強大的社區樣本代碼豐富,并有專家愿意幫助新人改進。微軟公司甚至通過基于用戶需要的GUI的操作生成PowerShell代碼,一旦你有一個例子,它變得更容易修改代碼,而不是試圖從頭開始寫代碼。
選擇自動化工具
在環境決定使用哪些自動化工具時,用戶應該考慮到不同的供應商提供的核心功能,即它們的工作平臺和成本。微軟公司的PowerShell是理想的Windows環境,而PuppetLabs,Chef和Ansible則喜歡運行在VMware環境。然而,這并不意味著它們是獨家占用那些平臺:PuppetLabs和Chef可以延伸到微軟Azure的云平臺。VMwarePowerCLI也可以運行PowerShell插件。這些編碼平臺中的許多都包含在基礎產品中,并可能為那些希望支持的人提供一個起點。然而,那些社區免費的產品所得到的支持可能不會像特許產品那樣強大。
一個產品從行業中脫穎而出往往由于其獨特的自動化方法:VMware的vRealizeOrchestrator(VRO)。VRO不是基于代碼的自動化工具,而是一個圖形化的基于工作流的自動化工具,主要設計用于VMware的基礎設施。具有圖形用戶界面不一定能使VRO更容易使用,有的甚至可能基于這樣的事實,即VRO是基于工作流,而不是基于功能的自動化工具。此外,VRO是根據用戶的業務流程來實現的,而不是任務的自動化。這并不是說VRO無法完成任務,事實上,可能是PowerShell和其他功能集成到VRO。VRO與其他工具和功能相比,只是工作在不同的級別,是合作關系,而不是競爭的關系。
當開始使用自動化工具時,用戶有各種各樣的產品和平臺可以選擇。為確保已經評估所要完成任務的范圍,確定里程碑,并在基礎設施中建立穩固而安全的自動化。要投資于用戶選擇的正確的IT自動化工具和培訓平臺,充分利用其選擇的產品的社區力量,如果選擇成功,不要忘記為社區分享一些代碼。