云计算·大数据 频道

Infra即数据与Infra即代码:有什么区别?

Kubernetes带来的最大挑战之一是在不同的云和内部部署环境中部署微服务和应用程序。正如后端开发人员和运维团队所知,配置和管理不同的环境仍然主要是一个手动过程,不仅对于主要的应用程序部署,对于任何代码、应用程序、微服务、安全性或其他更新都是如此。

因此,为了减轻运维和后端开发人员的负担,简化和自动化此过程是一个高度优先事项。

最终,团队应该能够通过单个界面在多云环境、Kubernetes集群和内部部署环境中无缝轻松地部署应用程序、微服务或更新。对于Ops工程师来说,这将是多云和云原生计算的圣杯。

最近,VMware工程师将开源基础设施即数据Idem项目引入,由SaltStack的创始人兼首席技术官Tom Hatch领导,以帮助实现这一目标。

由此产生的开源工具是为了减少与为每个云部署和API编排大量代码库相关的巨大复杂性,使其成为一种由数据组成的格式,项目创建者表示,人类可以轻松理解和管理这些数据。

其创建者表示,Idem代表为云配置的基础设施即数据(IaD),因为它将云配置简化为数据。它的设计使云配置变得更易于为应用程序部署进行配置和管理。

但在许多方面,Idem的创作者希望达到的最终结果与红帽的Ansible据称为IaD提供的结果非常相似。Ansible的创始人Michael Dehaan在2013年为O'Reilly's Radar撰写的文章中写道,IaD基于“基于文本、中间和数据驱动的策略”,而不是将基础设施建模为代码(IaC)或GUI。

“我称之为‘基础设施即数据’——用简单的机器可读数据格式描述系统的样子。”Dehaan写道,“让程序执行这些数据格式,并确保你的基础设施匹配。结果是,配置可以灵活,而且易于原型化、易于审核和维护。”

然后是面向多云和多环境资源调配的基础设施即代码。随着HashiCorp的开源Terraform(现在有数百万个用例,是领先的IaC平台)和Idem直接竞争的相关HashiCorp产品,许多用户已经依赖IaC跨多云和内部数据中心环境提供和管理应用程序。

在高层次上,基础设施即数据工具(如VMware的Idem和Ansible)和基础设施即代码(以Terraform为主),帮助DevOps团队实现其目标,即简化和自动化跨多云和不同环境的应用程序部署,同时帮助减少手动配置和流程。

在这里,我们将比较IaD和IaC,以及它们在某些情况下是如何相互补充的。

基础设施即数据解决的问题

DevOps团队继续面临着降低调配多个云环境的复杂性的挑战。

Enterprise management Associates分析师Torsten Volk表示:“CI/CD管道特定于代码库的特性与云原生应用程序开发的不变原则相冲突。DevOps工具链的每个组件都构成了一个潜在的集成点,需要设置、初始配置和管理。”。

“这就是为什么我们需要特定于云的基础设施工程师团队来研究如何在AWS、Azure、GCP等平台上创建最佳的特定于应用程序的环境。”

Hatch说,就采用而言,Terraform“迄今为止拥有市场”。“当然,与Terraform竞争是一个需要攀登的大山。”他补充道,但使用基础设施即代码与基础设施即数据之间有很大的区别。

当云架构需要使用代码来表达时,“你只是在编写越来越多的Terraform。”他说,“Idem与你通常想的基础设施即代码不同,一切都归结为这些可预测的数据集。”

“你可以将Idem指向你的云,而不是坐下来说,‘我要在Terraform中编写一个云’,它将自动生成所有数据、所有代码和运行时,以在当前状态下强制执行。”

同时,Idem和Ansible在一定程度上都旨在使云资源调配更加自动化和易于管理。

“虽然这听起来很神奇,但Idem恰恰解决了许多Terraform用户(开源和商业用户)所表达的问题。”

“编写传统的任何类型的基础设施即代码都会导致基础设施代码层出不穷,需要不断调整,以跟上云API的变化、应用程序需求的变化以及整个业务环境的变化。”

改进基础设施即代码工具

与此同时,HashiCorp通过Terraform的每个后续版本及其提供的相关工具,继续完善和改进基础设施即代码。Terraform的关键特性是HashiCorp声称的任何IT基础设施的可扩展性。

IaC也是HashiCorp定义的Terraform中“基础设施自动化”的一个组件,目的是:

采用基础设施即代码。

为IaC的组合、协作和重用构建工作流。

根据安全、合规性和管理要求标准化工作流。

通过为最终用户应用程序开发人员和交付团队提供自助式基础设施选项,提供创新。

HashiCorp产品营销高级总监Meghan Liese表示:“Terraform在基础设施层工作,而基础设施即代码是提供自动化的最佳方式,可以从任何云平台、私有数据中心等提供任何基础设施。”

“Terraform实际上是指运维人员能够定义需要配置的基础设施,以便开发人员可以在自助服务模型中使用。因此,在另一层,像Waypoint这样的工具会说,‘嘿,开发人员,你将应用程序需求编码,然后通过Waypoint运行,Waypoint将为平台提供自助服务。’”

IaC和IaD的使用方式可能存在重叠。Liese没有对Idem做出具体评论,但表示,在以基础设施即代码跨多个环境提供基础设施时,为基础设施即数据使用Ansible可以补充Terraform。

Liese说:“Ansible和Terraform的创建者看到了相同的问题,两者能很好地合作。我们与使用Terraform铺设基础设施和多次使用Ansible配置机器的组织合作。在这种情况下,随着市场的不断成熟,这些工具可能会提供一些重叠的功能。”

0
相关文章