基础架构即代码(IaC)是用于软件基础架构,虚拟硬件基础架构还是两者都适用?

时间:2018-08-29 02:23:58

标签: continuous-deployment provisioning azure-automation infrastructure hardware-infrastructure

基于Wikipedia concept

  

基础架构即代码(IaC)是通过机器可读的定义文件而不是物理硬件配置或交互式配置工具来管理和供应计算机数据中心的过程

它对于Ansible,Chef,Puppet和PowerShell DSC等置备工具非常有效,这是众所周知的自动化工具,在持续开发过程中非常有用。长期以来,这是我们使用代码创建应用程序所需的整个 Infrastructure 的最接近的方法。尽管如此,随着基础架构即服务的发展,我们变得能够真正管理网络,计算和存储基础架构。

如果我们在计数another point of view of IT Infrastructure中将其定义为

  

支持数据流,存储,处理和分析的物理和虚拟资源的组成。

那么,对我来说,基础设施可能更多地指的是网络/计算/存储资源,即IaaS资源。 我想到的工具是Azure Resource Manager TemplatesAWS CloudFormation;可以从根本上创建基础架构,当然,供应工具可以很好地补充系统自动化的配置。

应使用“基础结构即代码”来指代调配/自动化/部署工具,还是应仅强调那些通过代码可以实现虚拟资源的自动化和管理的工具?

2 个答案:

答案 0 :(得分:1)

  

我想到的一个工具是Azure资源管理器模板和   IMHO是IaC真正成型的IaaS解决方案。

让我们谈谈Azure资源管理器模板,它允许人们像模板一样通过代码方便地创建或重新创建资源。正如您所说的

  

基础架构即代码(IaC)是管理和   通过机器可读的定义配置计算机数据中心   文件

因此,我个人认为,“基础架构即代码”应仅强调那些通过代码可以实现虚拟资源的自动化和管理的代码。对于IaC更合适。让我们假设,如果不能通过代码来管理基础结构,我们就不能认为它是作为代码的基础结构。

答案 1 :(得分:1)

  

应使用“基础结构即代码”来指代调配/自动化/部署工具,还是应仅强调那些通过代码可以实现虚拟资源的自动化和管理的工具?

都不是。 IaC不涉及工具。它是指一个过程。用您自己的报价:

  

基础架构即代码(IaC)是管理和配置计算机数据中心的过程。...

区别很简单:

  • 在过去,如果您知道软件需要Windows 7 SP2,则过程是为系统工程师输入票证,以将Windows 7 SP2应用于服务器。

  • 在IaC时代,如果您知道您的软件需要Windows 7 SP2,则该过程将是修改源代码并将其检入。

旧的过程很耗时,从开发人员手中夺走了控制权,并且不是很可重复,这可能导致错误或在O / S上进行设置的方式上的微小差异。也可能难以回滚。系统“版本”可能存储为VM映像或备份,这往往很大。

如果设置正确,新过程将完全可重复,非常快速,并将显影剂置于驾驶员的座位上。您可以在源代码管理中保留任意多个版本,并且回滚就像回滚软件一样简单。

实施IaC的行为是启用后一个过程的行为-购买,集成或开发工具,使您可以通过代码签入来修改系统。这就是“代码”部分如此重要的原因。如果您管理代码,则可以管理硬件。

相关问题