IaC,DevOps的必要支撐
基礎設施即代碼(IaC)的核心,在于以代碼形式替代手動流程,高效對基礎設施進行管理與配置。使用IaC,就可以創建包含基礎設施規范的配置文件,極大簡化配置的編輯與分發過程,同時確保每一次都能提供完全相同的穩定運營環境。通過編纂并記錄配置規范,IaC還將幫助企業管理配置選項、避免一切未經記錄的臨時配置變更。
選擇基礎設施即代碼部署方法,還意味著企業可以將自己的基礎設施劃分為多個模塊化組件,而后以自動化方式靈活拼合各具體組件。IaC提供的基礎設施配置自動化功能,可幫助開發者擺脫對服務器、操作系統、存儲及其他基礎設施組件的手動配置及管理,極大提升應用程序的開發與部署效率。
IaC的聲明式與命令式實現方法
IaC的實現方法分為兩種——聲明式與命令式。
聲明式方法意在明確定義系統的預期狀態,包括需要哪些資源、各資源應具備何種屬性,再由IaC工具據此做出配置。聲明式方法還能為系統對象保留一份當前狀態列表,顯著降低基礎設施的關停管理難度。與之對應,命令式方法則強調達成所需配置時執行的特定命令,再以正確的順序依次執行這些命令。
多數IaC工具選擇使用聲明式方法,并自動提供必要的基礎設施配置方案。如果開發者對預期狀態做出修改,聲明式IaC工具將自動為應用變更內容。另一方面,命令式工具則要求開發者清晰理解要如何操作并應用這些變更。
大部分IaC工具雖然同時支持這兩種方法,但在具體實現上往往會傾向于其中一種。
IaC的優勢
基礎設施的配置工作歷來是個極度耗時且成本高昂的手動流程。如今的基礎設施管理已經由數據中心物理硬件轉變為虛擬化、容器與云計算形式,因此操作方式也該做出對應調整。
隨著云計算的發展,基礎設施組件的數量不斷增加,每天都有更多應用程序被發布至生產環境當中,同時要求對基礎設施進行頻繁啟動、擴展與關閉。如果沒有適當的IaC實踐,大規模現代基礎設施帶來的管理難題勢必愈發令人頭痛。
IaC能夠幫助企業妥善管理IT基礎設施需求、提高一致性、同時降低錯誤數量及手動配置需求。總的來看,IaC的優勢在于降低成本、提高部署速度、減少錯誤、提高基礎設施一致性、消除配置漂移。
除了常見的服務器自動化與配置管理工具,我們還可以選擇專門用于IaC的解決方案。
下面來看幾種流行的方案選項:
• Chef
• Puppet
• Red Hat Ansible Automation Platform
• Saltstack
• Terraform
• AWS CloudFormation
IaC對于DevOps有何重要意義?
IaC是實施DevOps及持續集成/持續交付(CI/CD)的重要組成部分。IaC幫助開發人員分擔掉大部分配置工作,確保開發者只需執行腳本即可建立起就緒待用的基礎設施。如此一來,應用程序部署工作不會因基礎設施搭建周期而陷入停頓,系統管理員也不必承擔費心耗時的手動管理流程。
CI/CD的實現,則依賴于整個應用程序生命周期中涵蓋集成、測試、交付及部署的持續自動化與持續監控機制。實現環境自動化的前提,在于環境一致化。如果開發團隊以一種方式部署應用程序或配置環境,但運營團隊的部署及配置方式完全不同時,應用程序的自動化部署將無從談起。
以DevOps方法為開發及運營團隊提供協調支持,能夠極大改善流程中的錯誤、手動部署與一致性沖突等問題。IaC可保證兩支團隊使用完全相同的應用程序部署方式與DevOps協同策略,真正將開發與運營工作融合起來。各個環境均應使用相同的部署流程,其中包括實際生產環境。IaC則能保證每次生成的環境都完全相同。IaC還能徹底消除了無法自動復制的特定配置維護單一部署環境的情況,確保整個生產環境乃至運營體系始終保持一致。
DevOps最佳實踐同樣適用于IaC中的基礎設施。基礎設施可以使用軟件開發期間的相同CI/CD管道,并對基礎設施代碼進行相同的測試與版本控制。
紅帽助力實現自動化
在企業之內全面推行自動化方法不僅有助于提升IT流程效率,還能將自動化元素引入整個技術、團隊及組織結構。
Red Hat Ansible Automation Platform 包含企業內部自動化所需要的全部工具,例如playbook、可視化儀表板及分析工具等等。以YAML編寫而成的Ansible Playbooks可描述系統所需要的狀態,具體狀態信息通常保存在源代碼控制之內。Red Hat Ansible Automation Platform則負責讓系統達到所需狀態,無論其當前狀態如何。
Ansible Automation Platform還能讓安裝、升級與日常管理等操作全面實現可重復性與高可靠性。
此外,Red Hat Ansible Automation Platform還在Forrester Research評選的2020年第三季度Forrester Wave™: 基礎設施自動化平臺中獲得“領軍級”評價。在強有力的自動化解決方案的支持下,企業得以加快應用程序與服務的部署速度、提升IT基礎設施管理效率,最終全面增強應用程序的開發能力。