客座文章作者:Cycloid内容经理Niamh Lynch,之前在Cycloid DevOps框架博客上发表
如果你最近刚刚进入DevOps的世界,或者正在考虑使用它,那么你很快就会接触到基础设施即代码(IaC,infrastructure as code)。它是良好DevOps实践的支柱,但是如果你一开始就不熟悉基础设施,你可能很难理解它。
最近我们有理由和我们的一个合作者回到 TerraCognita 基础。这个教育练习的结果实际上是一个非常好的代码基础架构介绍,所以我们决定今天在这里重新发布(经过一些编辑),以帮助那些可能需要一些教育或更新基础架构即代码世界的人。
https://blog.cycloid.io/what-is-terracognita
TL;DR(简单来讲)
我们将解释基础设施即代码和围绕它的概念。它的目标客户是那些在技术基础设施方面经验很少或没有经验的人。
在基础设施即代码之前是怎样的?
在云计算时代之前,人们通过命令行或其他界面进行更改来管理基础设施(业务、应用程序或网站的技术组成)。如果你想添加或更改某些内容,你可以指向、单击并进行更改(也就是手动修改基础设施)。
近年来,许多计算已经从物理服务器室转移到“云”。这带来了一些重大的变化——现代基础设施往往更大更复杂,它们的构成变化更频繁,我们停止和启动它们的频率也更高。这意味着你必须每天手动登录和修改数百次,这是不现实的——它不适合扩展,也需要很长时间。
解决问题——基础设施即代码
为了尝试并克服这个问题,创建了基础结构即代码。它不是一种编程语言——它更多的是一种心态或技术。基本来说,它是一组指示,告诉云提供商如何在你不参与的情况下设置和维护基础设施。它确保基础设施每次都按照你的规范创建和修改。
没有基础设施即代码的人生
理想情况下,你或你的公司从一开始就为所有基础设施创建了IaC,但这通常不会发生。如果你已经工作了一段时间,那么可能会有一些手工创建的基础设施存在于某个地方。
这是一个问题,因为如果没有基础设施即代码,你的基础设施是不可复制的。如果它们不能复制,就无法扩展或增长,因为单独为数千台服务器编写指令是不实际的。
另一个问题是,如果没有基础设施即代码,就没有关于基础设施外观的书面声明。你知道你一开始是怎么建立起来的(希望,除非建立它的人忘记了,或者离开了),但是你不知道它现在是什么样子,或者发生了什么变化。
这降低了可见性(DevOps的一个关键组件),并使得应用策略变得非常困难(因为你编写规则的内容可能已经改变)。策略是设计用于大规模应用于服务器的规则集。它们使基础设施更加安全,这也是DevOps和开发的主要部分。
有基础设施即代码的人生
尽管基础设施即代码是目前比较可取的方法,但它也不是完全没有问题。手工编写基础设施即代码是非常耗时的,而且——尽管有价值——也不如devs和ops所做的其他工作有价值。它也有很高的出错风险(从本质上讲,它会复制,所以如果代码中有错误,错误也会扩展!)手动维护最新的作为代码的基础设施和/或迁移到最新版本也会非常麻烦和耗时。
你还得确保公司内部的每个人都能舒适地熟悉IaC。如果你已经引入了一些东西,但其他员工还没有加入,那么他们可以不使用它就进行更改,从而破坏一切。
基本上,基础设施即代码是最佳实践,也是开发人员知道他们应该做的任务之一,但由于各种原因,他们没有这样做。有时候是经理们不相信这一点的重要性,或者有时候生活看起来太忙碌了。
那么Terraform的作用是什么呢?
一旦你开始了解更多关于将基础设施作为代码的内容,你就会开始听说Terraform。Terraform是一种基础设施即代码,由Hashicorp公司创建。它不是唯一的——所有主要的云提供商都有自己的IaC。谷歌提供Google Cloud Deployment Manager,AWS提供CloudFormation,微软的Azure提供Azure Resource Manager。
Terraform广受欢迎,因为它是开源的和平台无关的,这意味着一旦你学习了它,你就可以将它与任何云提供商结合使用,甚至可以编写一个自定义插件,在任何你喜欢的地方使用它。但是,如果你学习了其他专有工具之一,那么它只能在该平台上工作,而不能在其他平台上使用。
总结
所以,就是这样了。基础架构即代码是一种描述性技术,它允许开发人员和ops人员创建一组指令,由云提供商自动设置和维护。如果你正在处理一个庞大而复杂的现代基础设施,那么基础设施即代码是非常必要的——手动与云提供商交互太耗时了。基础架构即代码通常是用Terraform编写的,这是一种开源的、平台无关的IaC工具,但还有其他工具。基础架构即代码是DevOps最佳实践的支柱和一个全面的好想法,现在当这个主题在工作中出现时,你可以确定你确切地知道你在谈论什么!
这里查看更多关于 TerraCognita 的信息。
https://blog.cycloid.io/what-is-terracognita
点击【阅读原文】阅读英文原文。
: 线上峰会介绍
: 这里有封H5【邀请函】
: 官方报名通道正式开启,首届线上KubeCon开源盛会即将起航
扫码 免费 注册
: 大会网站,https://cncf.lfasiallc.cn/
扫描二维码联系我们!
CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。
CNCF ( 云原生计算基金会 )致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。