基础设施即代码:它是什么以及为什么要实现自动化
介绍
您是否曾经手动创建过资源?可能是虚拟机或虚拟网络?也许是一些存储?手动在云中部署资源既麻烦又容易出错。如果您必须部署多个资源,则必须花时间进行部署。如果您可以用一些最流行的语言编写代码来自动完成整个过程,那会怎样?
在本指南中,您将了解什么是基础设施即代码 (IaC),以及您应该使用它来让您的生活更轻松的三个主要原因。
什么是基础设施即代码?
让我们考虑部署一个服务器,也许是一个 EC2 实例。这里面有很多事情要做。以下是几个关键方面:
- EC2 实例的大小
- EC2 实例的名称
- EC2 实例是否具有公共 IP 地址
- 将使用哪个安全组
- 谁将有权访问实例
这些关键方面非常重要——事实上,从安全角度来看,它们可以成就或毁掉一个环境。这看起来非常简单,但却充满了错误。很容易点击错误的安全组,或者意外地为 EC2 实例提供公共 IP 地址,并使其可供全世界访问。你想避免这种情况吗?欢迎来到 Infrastructure-As-Code。
IaC 使工程师能够将云资源、本地资源和网络定义为代码。您可以在代码中指定实例的大小、VPC 应具有的 CIDR 等等。IaC 甚至适用于无服务器,例如创建 Lambda 函数。
让我们深入探讨您应该使用 IaC 的更多原因。
原因 1:代码不会说谎
代码不会撒谎。这是什么意思?我们所有人都曾以某种方式、形式点击过错误的按钮,这没关系。即使是最好的人也会犯错。但是,如果有办法知道是否发生了错误以及如何修复它呢?许多工程师花了数小时处理一个问题,却发现这只是一个很小的变化,但由于没有历史记录,他们花了数小时才找到它。
当您实施 IaC 时,您可以将该代码存储在源代码控制中,例如GitHub。当您将代码存储在源代码控制中时,您将拥有代码的历史记录。所做的任何更改或编写的任何代码都记录在源代码控制中。源代码控制的另一个重要功能是能够指定开发/测试代码的位置以及可用于生产的代码的位置。这样,您可以进行尽可能多的测试,而不会危及任何正常运行时间。在没有 IaC 且手动管理基础设施是唯一方法的世界中,这样的事情并不存在。
原因 2:团队协作
当你与一个遍布全球不同时区的工程师团队一起工作时,合作就会变得异常困难。如果某人比你早三个小时或六个小时,那么安排时间几乎是不可能的。假设情况并非如此,所有团队成员都在同一时区工作。如果有人在度假或生病,而你真的想与他们分享有价值的信息,该怎么办?如果他们不在场,看不到或听不到,传达信息就会相当困难。
有了 IaC,您就不必再担心这个问题了。所有的集成、实施和进度都记录下来了。您不必打电话或将他们从会议中拉出来。您只需编写一些代码,将其提交到源代码控制中,然后与同事共享即可。基础设施即代码让您能够在任何环境、任何时区和任何人的时间表内进行协作。
原因 3:速度更快
一天早上,你走进办公室,有人提出了一个请求:开发需要创建十台服务器来测试一个新应用程序,而且它占用大量资源,所以他们想看看它如何扩展。哇,十台服务器?好多啊!手动完成这项工作需要一天或更长时间才能部署和测试,然后才能交付服务器。
使用 IaC,您可以在一次部署中完成此操作。您编写的代码可以创建 10 台服务器,如果开发团队需要,甚至可以创建 100 台服务器。当您开始使用 IaC 时,您不再需要担心手动创建任何云资源。您甚至可以安排部署,离开键盘,部署仍会继续运行!
欢迎来到 CloudFormation
CloudFormation 是 AWS 中的原生基础设施即代码工具。它以 JSON 或 YAML 格式编写,允许您部署、管理和配置 AWS 中可用的任何云资源。CloudFormation 的优点在于它是为 IT 专业人员和开发人员构建的。
许多云供应商都提供 IaC 和自动化支持。由于本指南是有关 AWS CloudFormation 的 Pluralsight 学习路径的一部分,因此它重点介绍该供应商。
结论
在本指南中,您了解了什么是“基础设施即代码”以及为什么要实施它。它不仅可以节省您的时间,还可以创造一个更好的团队环境,实现更多的协作,并帮助您管理多个云资源。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~