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

大家好,我是Teraoka,一名基础设施工程师。
这篇博文的主题是 基础设施即代码(Infrastructure as Code)
。我一开始想写些什么,结果写出来比预想的要长,所以我决定把它分成知识部分和技术部分。
首先是知识部分。基础设施即代码我会先解释一下什么

■什么是“基础设施即代码”?

简而言之,代码来配置你的基础设施。(这非常简单明了,连谷歌翻译都会感到惊讶!)
如今,像 AWS 这样的云服务已经成为主流,因此
构建或修改基础设施通常只需在图形用户界面 (GUI) 上点击几下即可完成。但
基础设施即代码 (IaC) 的工作方式却截然不同。
编写程序一样,代码编写成
然后使用专门的工具来部署你的基础设施。
这个专门的工具叫做“Terraform”,
我将在技术部分进行介绍!(之后我会在我的博客上写一篇关于它的文章。)

■为什么要编写代码呢?

如果没有好处,你不会做这样的事,对吧?(当然有好处。)
总而言之,好处如下:

基础设施建设自动化

这或许是它最大的优势。
当需要搭建多台配置相同的服务器时,
手动操作往往需要大量重复劳动。
难道真的要为每台服务器重复完全相同的工作吗?你肯定不想这么做,对吧?

在上一节中,我写了以下内容:

将所有内容都编写成“代码”,就像编写程序一样,然后
使用专门的工具进行部署。

您想要构建的基础架构配置已经以代码形式编写完成,因此
您只需告诉专用工具“请按此方式构建”。其他一切都将自动完成。
此外,由于它仅涉及代码执行,因此任何执行此任务的人都将始终获得相同的结果。
这也有助于防止人为错误

基础设施配置的集中管理

在建造或改造基础设施时,
必须记录当前的配置以及何时、哪些部件进行了更改。
(这些通常被称为设计文档或程序手册。)
如果没有这些文档,就无法了解当前的配置。
(而一旦丢失这些信息,就必然会发生操作错误。)

此外,在创建设计文档或流程手册时,
每次执行任务后都必须使用最新信息进行更新。
这是因为下次执行相同任务时,需要参考该文档。
然而,由于更新是手动完成的,因此出错在所难免。
很容易忘记更新文档,
导致文档内容与实际结构出现差异。
最后更新文档的人是已经离开项目的前任,
会更加糟糕

基础设施即代码(Infrastructure as Code,IaC)是指
基于预先编写的代码形式的流程手册来构建基础设施。由于任何
配置更改都需要编辑代码,因此几乎不可能忘记更新。
像管理程序源代码一样,使用 Git 等工具来管理版本

■虽然方便,但也存在一些问题

学习成本自然会增加。

如果你不会写代码,就根本无法修改配置。
此外,你还需要学习如何使用部署工具。
这无疑会增加学习难度。
难道如今的基础设施工程师如果不会写代码就无法胜任工作了吗?

代码出现了意料之外的错误。

如果代码中存在错误,程序会像其他编程语言一样报错停止运行。
带着错误部署代码会严重影响心理健康,所以
通过在 GitHub 或类似平台上共享代码来防止知识被特定人员垄断
允许第三方持续监控以发现错误。

■概要

说实话,知识部分就是阅读长句(
我认为,如果你能正确理解并正确操作这个系统,那它将是一个很有吸引力的想法。
最重要的是,“基础设施即代码”这个术语听起来很酷。
玩笑就到此为止,下次我们再深入技术部分,现在开始吧。敬请期待!

如果您觉得这篇文章对您有帮助,请点个“赞”!
2
加载中...
2票,平均分:1.00/12
6,194
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

寺冈由纪

我于 2016 年加入 Beyond,目前
担任基础设施工程师和 MSP(托管服务提供商)已有六年。我负责处理突发事件的故障排除,
并使用 AWS 等公有云设计和构建基础设施。最近,我一直在
Docker 和 Kubernetes 等容器基础设施。此外,
使用 HashiCorp 的 Terraform 和 Packer 等工具来构建和自动化
我还担任技术推广者的角色,在外部学习小组和研讨会上进行演讲。

・GitHub
https://github.com/nezumisannn

• 演讲邀约
:https://github.com/nezumisannn/my-profile

• 演示材料(SpeakerDeck)
https://speakerdeck.com/nezumisannn

・认证:
AWS认证解决方案架构师 - 助理级、
Google Cloud专业云架构师