【知识版】基础设施配置代码化。学习“基础设施即代码”的概念,让配置管理更智能。

目录
大家好,我是Teraoka,一名基础设施工程师。
这篇博文的主题是 基础设施即代码(Infrastructure as Code)
。我一开始想写些什么,结果写出来比预想的要长,所以我决定把它分成知识部分和技术部分。
首先是知识部分。基础设施即代码我会先解释一下什么
■什么是“基础设施即代码”?
简而言之,代码来配置你的基础设施。(这非常简单明了,连谷歌翻译都会感到惊讶!)
如今,像 AWS 这样的云服务已经成为主流,因此
构建或修改基础设施通常只需在图形用户界面 (GUI) 上点击几下即可完成。但
基础设施即代码 (IaC) 的工作方式却截然不同。
编写程序一样,代码编写成
然后使用专门的工具来部署你的基础设施。
这个专门的工具叫做“Terraform”,
我将在技术部分进行介绍!(之后我会在我的博客上写一篇关于它的文章。)
■为什么要编写代码呢?
如果没有好处,你不会做这样的事,对吧?(当然有好处。)
总而言之,好处如下:
基础设施建设自动化
这或许是它最大的优势。
当需要搭建多台配置相同的服务器时,
手动操作往往需要大量重复劳动。
难道真的要为每台服务器重复完全相同的工作吗?你肯定不想这么做,对吧?
在上一节中,我写了以下内容:
将所有内容都编写成“代码”,就像编写程序一样,然后
使用专门的工具进行部署。
您想要构建的基础架构配置已经以代码形式编写完成,因此
您只需告诉专用工具“请按此方式构建”。其他一切都将自动完成。
此外,由于它仅涉及代码执行,因此任何执行此任务的人都将始终获得相同的结果。
这也有助于防止人为错误。
基础设施配置的集中管理
在建造或改造基础设施时,
必须记录当前的配置以及何时、哪些部件进行了更改。
(这些通常被称为设计文档或程序手册。)
如果没有这些文档,就无法了解当前的配置。
(而一旦丢失这些信息,就必然会发生操作错误。)
此外,在创建设计文档或流程手册时,
每次执行任务后都必须使用最新信息进行更新。
这是因为下次执行相同任务时,需要参考该文档。
然而,由于更新是手动完成的,因此出错在所难免。
很容易忘记更新文档,
导致文档内容与实际结构出现差异。
最后更新文档的人是已经离开项目的前任,
会更加糟糕
基础设施即代码(Infrastructure as Code,IaC)是指
基于预先编写的代码形式的流程手册来构建基础设施。由于任何
配置更改都需要编辑代码,因此几乎不可能忘记更新。
像管理程序源代码一样,使用 Git 等工具来管理版本。
■虽然方便,但也存在一些问题
学习成本自然会增加。
如果你不会写代码,就根本无法修改配置。
此外,你还需要学习如何使用部署工具。
这无疑会增加学习难度。
难道如今的基础设施工程师如果不会写代码就无法胜任工作了吗?
代码出现了意料之外的错误。
如果代码中存在错误,程序会像其他编程语言一样报错停止运行。
带着错误部署代码会严重影响心理健康,所以
通过在 GitHub 或类似平台上共享代码来防止知识被特定人员垄断
允许第三方持续监控以发现错误。
■概要
说实话,知识部分就是阅读长句(
我认为,如果你能正确理解并正确操作这个系统,那它将是一个很有吸引力的想法。
最重要的是,“基础设施即代码”这个术语听起来很酷。
玩笑就到此为止,下次我们再深入技术部分,现在开始吧。敬请期待!
2
