Pulumi教程和基础设施作为代码(IAC)

举报
kaliarch 发表于 2022/09/04 20:29:16 2022/09/04
【摘要】 什么是作为代码的基础设施?维基百科对IaC的定义如下:作为代码的基础设施是通过机器可读的定义文件而不是物理硬件配置或交互式配置工具来管理和供应计算机数据中心的过程。或者换句话说基础设施即代码(IaC)意味着使用配置文件管理IT基础设施。为什么我们要做IAC?正如前面所说,IAC意味着通过配置文件管理云基础设施的创建和管理。 IAC的好处将基础结构配置编写为代码或模板比手工过程更容易完成工作...

什么是作为代码的基础设施?

  • IaC的定义如下:
    作为代码的基础设施是通过机器可读的定义文件而不是物理硬件配置或交互式配置工具来管理和供应计算机数据中心的过程。
  • 或者换句话说
    基础设施即代码(IaC)意味着使用配置文件管理IT基础设施。
    为什么我们要做IAC?
    正如前面所说,IAC意味着通过配置文件管理云基础设施的创建和管理。

IAC的好处

  • 将基础结构配置编写为代码或模板比手工过程更容易完成工作。
  • 模板或代码增强了可重用性的可能性,而不是可重复的手动操作。
  • 通过IAC跟踪基础结构配置变得更加容易,通过将这些代码和模板文件推入Git DevOps,源代码管理也变得可行。
  • CI/CD与IAC的集成使得云基础设施资源的部署变得更加容易。

流行的IAC工具有哪些?

Terraform、Ansible、Pulumi是IAC的几个广为人知的工具。它们中很少有人要求以JSON的形式编写基础结构配置,也很少有人要求以YAML模板的形式编写。

什么是命令式与声明式IAC?

在IAC中,开发人员/devops工程师以声明的方式定义了基础设施的期望结束状态,添加了需要部署的资源及其配置,其余的由IAC工具计算出来。声明性方法更接近用户对计算机的要求。从某种意义上说,声明性方法是为用户服务的。
在强制IAC中,开发人员按照特定的顺序定义和运行命令/代码,从而达到所需的状态。命令式方法不存储或管理任何状态,如果您一遍又一遍地运行相同的命令,我们可能不会得到相同的结果。命令式方法更接近计算机如何运行。从某种意义上说,命令式方法是为机器服务的。

什么是Pulumi和Terraform?&Pulumi与Terraform有何不同?

Pulumi:Pulumi是一个开源的IaC工具,用于在云基础设施上设计、部署和管理资源。该工具支持许多公共、私有和混合云提供商
Pulumi用于创建传统的基础设施元素,如虚拟机、网络和数据库。该工具还用于设计现代云组件,包括容器、集群和无服务器功能。
虽然Pulumi以命令式编程语言为特色,但使用该工具进行声明性IAC。用户定义基础结构的期望状态,Pulumi建立所请求的资源。
Terraform:Terraform是一个流行的开源IaC工具,用于构建、修改和版本化虚拟基础设施。

该工具适用于所有主要的云计算提供商。Terraform用于提供从低层组件(如存储和网络)到高端资源(如DNS条目)的所有内容。使用Terraform构建环境是用户友好和高效的。用户还可以使用该工具管理多云或多产品环境。
Terraform是一个声明性IaC工具。用户将描述所需组件的配置文件写入TerraForm。然后,该工具生成一个计划,描述达到所需状态所需的步骤。如果用户同意大纲,Terraform将执行配置并构建所需的基础结构。

Pulumi和Terraform的主要区别

  • Pulumi没有特定于领域的软件语言。开发人员可以使用Python、Go、.NET、JavaScript等通用语言在Pulumi中构建基础设施。另一方面,Terraform使用其Hashicorp配置语言(HCL)。
  • Terraform遵循严格的代码准则。普鲁米在这方面更加灵活。
  • Terraform有很好的记录,有一个充满活力的社区。Pulumi在市场上是很新的,因此有一个较小的社区,它正在慢慢地被记录下来。
  • Terraform更容易进行状态文件故障排除。
  • 由于不使用特定于领域的语言,Pulumi提供了优越的内置测试支持。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。