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

叫寺冈,是一名基础设施工程师。
今天的博客文章是关于基础设施即代码(IaC)的。
由于篇幅比预期要长,我决定将其分为知识部分和技术部分。
首先,我们先来看知识部分。什么是基础设施即代码

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

简而言之,代码配置基础设施。(顾名思义,连谷歌翻译都会感到惊讶。)
如今,像 AWS 这样的云服务已成为主流,因此
构建新的基础设施或进行更改只需在图形用户界面 (GUI) 上点击一个按钮即可完成。但
基础设施即代码,情况就不同了。

你需要像编写程序一样,将所有内容都编写成代码来构建基础设施,然后使用专用工具进行部署。Terraform
这样一款专用工具,
我将在技术部分进行介绍!(之后我会专门写一篇博客文章来详细介绍它。)

■为什么要编写代码呢?

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

基础设施建设自动化

这或许是最大的优势。
如果您需要搭建多台配置相同的服务器,
手动操作往往会导致重复劳动。
难道每台服务器都必须重复完全相同的工作吗?如果可以,您肯定不想这样做。

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

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

您想要创建的基础架构配置已经以代码形式编写完成,
您只需指示专用工具按此方式创建即可。其余操作将自动完成。
由谁执行操作,都能确保获得相同的结果
这也有助于防止人为错误

基础设施配置的集中管理

在建造或改造基础设施时,
必须留下“当前配置”以及“何时、哪些部件进行了更改”的详细记录。
(这些记录被称为设计文档或操作手册。)
如果没有记录,就无法了解当前的配置情况。
(一旦丢失了配置信息,自然就会出现操作错误。)


在完成任务后
,您需要将设计文档或流程手册是因为下次执行相同任务时,您需要参考这些文档。
然而,由于这项工作是由人手动完成的,因此出错在所难免。
很容易想到有人会忘记更新文档。
一旦发生这种情况,文档内容和实际结构可能会有所不同。
上次更新文档的人是您的前任,而他已经离职,
将是一场灾难

基础设施即代码(IaC)技术基于
预先编写的指令构建基础设施,这意味着任何
配置更改都需要编辑代码,从而消除了忘记更新的风险。
像程序源代码一样,使用Git 等工具进行版本控制

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

学习成本自然会增加。

如果你不会写代码,就连配置都无法更改。
你还需要学习如何使用新的部署工具。
这会在一定程度上增加学习成本。
我们是否会进入这样一个时代:基础设施工程师如果不会写代码就无法胜任工作?

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

如果代码中存在错误,项目会停止并报错(就像任何编程语言一样)。
带着错误部署项目对心理健康不利,所以
将代码分享到 GitHub 或其他平台非常重要,这样可以避免知识过于私人化,也
能让第三方持续监控错误。

■概要

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

如果您觉得这篇文章有用,请点击【点赞】!
2
加载中...
2票,平均分:1.00/12
6,103
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

寺冈由纪

他于 2016 年加入 Beyond 公司,目前已是第六年
担任 MSP(托管服务提供商)的基础设施工程师,负责故障排除以及
使用 AWS 等公有云设计和构建基础设施。近期,他开始

使用 HashiCorp 的 Terraform 和 Packer 等工具,用于构建和运维
Docker 和 Kubernetes 等容器基础设施的自动化流程。此外,他还扮演着技术推广者的角色,经常在外部学习小组和研讨会上发表演讲。

・GitHub
https://github.com/nezumisannn

・讲述历史
https://github.com/nezumisannn/my-profile

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

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