Davic1
2022-04-08 12:32:49 +08:00
基础设施(Infrastructure) 大多指网络(VPC 安全组) 虚拟机(EC2) 以及云提供商提供的一切资源.(IAM RDS 等等)
通常使用一个云提供商的这些资源,是在 Console 上(Web 界面)用鼠标点点点, 当你点的太多次就会觉得很乏味, 自然而然就会想要用代码来自动化这些事情.
云提供商也明白用户会有这些需求, 所以会有 API 接口, 会提供账号的 AK/SK(Access Key Secret Key)让你通过有权限访问这些资源. 会有相应的 SDK 让你去使用. 你要做的就是写代码. 过程中必然会涉及 VPC 怎么划分, 安全组开哪些端口, EC2 用什么规格...
久而久之就会发现, 用代码来调用开通这个动作其实大同小异. 花心思更多的是在设计和资源选取上. Terrafrom 就是帮你做了开通动作这件事情, 所以你要做的就是按照 Terrafrom 规定的格式去填写你想要开通的资源配置情况.
IaC 是一项一劳永逸的工作, 虽然一开始真的很"劳"
上面只是涉及到单个云厂商, 现实情况可能还会涉及到多云, 甚至自己的 IDC 机房.
当然自己可以写代码来处理这些情况, 但是 Terrafrom 已经帮你做好了基础工作(这时候就要抛出一个 Why not 了.)
OP 想要了解的配置, 指的是广泛意义上的应用程序的配置. 针对不同的软件, 所指的配置是不同的.
举例来说, 我要用 Ansible 做一些服务器优化的事情, 这时候配置就是 Ansible 的 Playbook, 我要开通新资源, 如果使用 Terrafrom 那么配置就是 Terrafrom 的配置文件(xxx.yaml 或者说 xxx.hcl)
另外 Terrafrom 是可以结合 Ansible 一起使用的.
(啊, HashiCrop 的官网 UI 设计的真漂亮)