IaC工具概要比較和IaC生產系統檢查單
IaC工具
|
首次發布
|
WebSite
|
語言
|
代理【被管理機器需安裝】
|
主控服務器
|
類型
|
|
|
Puppet
|
2005
|
https://puppet.com/open-source/
|
聲明性語言
|
Puppet Agent
|
有
|
可變基礎設施
配置管理
|
|
Chef
|
2009
|
http://www.chef.io/chef/
|
過程性語言
|
Chef Client
|
有
|
可變基礎設施
配置管理
|
|
CloudFormation
|
2011
|
AWS [閉源]
|
聲明性語言
|
-
|
-
|
不可變基礎設施
服務開通
|
|
SaltStack
|
2011
|
https://saltproject.io/
|
聲明性語言
|
Salt Minion
|
有
|
可變基礎設施
配置管理
|
|
Ansible
|
2012
|
https://www.ansible.com/
Redhat
|
過程性語言
|
-
|
-
|
可變基礎設施
配置管理
|
|
Heat
|
2012
|
https://wiki.openstack.org/wiki/Heat
OpenStack Orchestration program
|
聲明性語言
|
-
|
-
|
不可變基礎設施
服務開通
|
|
Terraform
|
2014
|
https://www.terraform.io/
Automate Infrastructure on Any Cloud
|
聲明性語言
|
-
|
-
|
不可變基礎設施
服務開通
|
生產IaC檢查清單
|
任務
|
描述
|
工具舉例
|
|
安裝
|
安裝二進制軟件包和依賴庫
|
Bash. Chef. Ansible, Puppet
|
|
配置
|
軟件運行期間的配置,包括端口、TLS證書、服務發現、主節點、從節點、復制等
|
Bash. Chef. Ansible. Puppet
|
|
服務開通
|
基礎設施服務開通,包括服務器、負載平衡器、網絡配置、防火墻設置、IAM權限等
|
Terraform CloudFormation
|
|
部署
|
在基礎設施之上部署服務,無停機更新,包括藍綠部署、浪動部署和金絲雀部署 Kubemetes, ECS
|
Terraform CloudFormation
Kubemetes, ECS
|
|
高可用性
|
在單個流程、服務器、服務、數據中心或區域發生 中斷時,服務持續的能力
|
多數據中心、多區域、復制、自動縮放、負載均衡
|
|
擴展性
|
根據負載進行規模縮放、水平縮放(更多服務器)、垂直縮放(更大的服務器)
|
自動縮放、復制、分片、緩存、分治
|
|
性能
|
優化CPU、內存、磁盆,網絡和GPU的使用。方法包括查詢調整,基準測試、負載測試和分析
|
Dynatrace, valgrind, VisualVM. ab. Jmeter
|
|
網絡
|
配置靜態和動態IP、渴門、服務發現,防火墻、DNS, SSH 訪問和VPN訪問
|
VPC、防火墻、路山器,DNS
注冊, OpenVPN
|
|
安全
|
傳輸中安全加密(TLS)和磁盤上的安全加密、身份驗證、授權、機密管理、服務器強化
|
ACM, Let's Encrypt. KMS. Cognito.
Vault. CIS
|
|
度量指標
|
可用性指標、業務指標、應用指標、服務器指標、 事件、可觀察性,跟蹤和警報
|
CloudWatch. DataDog, New Relic,Honeycomb
|
|
備份和恢復
|
定期備份數據庫,緩存和其他數據。復制到獨立的區域/賬戶
|
RDS. ElastiCache, replication
|
|
成本優化
|
選擇合適的實例類型,使用競價型和預留實例、使用自動縮放,清除未使用的資源
|
自動縮放,競價型實例,預留實例
|
|
文檔
|
記錄代碼、體系結構和實踐,創建劇本來應對事件
|
自述文件、Wiki, Slack
|
|
測試
|
為基礎設施代碼編寫自動測試,在每次提交后運行測試、每晚運行測試
|
Terratest. Inspee, Serverspec.
kitchen-terraform
|