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

 

热门相关:最强狂兵   人间欢喜   天启预报   第一神算:纨绔大小姐   仗剑高歌