引言
站在SRE的视角,公有云的兴起及大规模普及应用,解决了过去一直无法根本解决的成本和资源快速扩展问题,但同时又衍生出了新的问题。
问题1:容灾机制对用户不可见,出现问题只能等待云商解决,用户缺乏主动可控手段,而近几年各大主流云商出现多次重大故障,使得使用单个公有云成为了一个风险较高的选择
问题2:公有云本质上是商业属性,因各自的产品及机房节点布局差异,单个公有云很难完全满足业务需求,但各个云商的一些壁垒限制,多云资源的管理成本又变的较高,尤其是自动化的开发适配成本
Terraform的价值
Terraform的出现有效的解决了上述问题,它的理念是基础设施即代码,允许用户通过编写代码的方式构建、变更和版本化云基础资源,下面我们先谈谈Terraform的优势
1、支持多个主流云商,如AWS、Azure、阿里云等,可以实现统一管理不同公有云的资源
2、所有的资源创建及变更都以代码形式存在,在遇到灾难故障时,可以快速在当前环境或者其它云上恢复业务
3、声明式的语法,使得定义资源变的很简单,可以实现复杂基础设施(数据库、网络等)的自动化部署
4、Terraform的配置文件可以通过Git等版本控制系统进行管理,便于团队协作和变更追踪
5、可以与CI/CD系统、工单系统等进行集成,实现自动化的部署及资源创建、回收。
Terraform的使用
安装
Terraform的安装使用也非常简单,以Linux举例,执行以下命令即可完成安装
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.