【知识版】基础设施配置的编码。 了解“基础架构即代码”的概念,让配置管理变得更加智能。

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

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

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

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

■为什么要编写代码呢?

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

基础设施建设自动化

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

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

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

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

基础设施配置的集中管理

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


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

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

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

学习成本自然会增加。

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

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

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

■概要

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

如果您觉得这篇文章有帮助,请点赞!
2
加载中...
2 票,平均:1.00 / 12
6,090
X Facebook 哈特纳书签 口袋

写这篇文章的人

关于作者

寺冈由纪

于 2016 年加入 Beyond,目前是他担任基础设施工程师
MSP 的第六个年头,他负责排除故障,同时
使用 AWS 等公共云设计和构建基础设施。
最近,我
一直在使用 Terraform 和 Packer 等 Hashicorp 工具作为构建 Docker 和 Kubernetes 等容器基础设施以及自动化操作的一部分,并且我
还扮演了在外部学习小组和研讨会上发言的传播者的角色。

・GitHub
https://github.com/nezumisannn

・演示历史
https://github.com/nezumisannn/my-profile

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

・认证:
AWS认证解决方案架构师-
谷歌云专业云架构师