Azure二头肌与ARM模板的比较

kd3sttzy  于 2023-01-27  发布在  其他
关注(0)|答案(4)|浏览(167)

我读了一些关于Azure二头肌的东西,我觉得这是一种新的东西-

  • Azure资源管理器和ARM模板是使用JSON语法编写的,使用起来可能很麻烦。Azure Bicep是一种域特定语言(DSL),它提供了对Azure资源管理器和ARM模板的透明抽象,支持更清晰的代码语法,更好地支持模块化和代码重用。Azure Bicep在使用ARM模板JSON创作Azure IaC方面提供了一些改进。*

我想了解ARM模板和Azure Bicep之间的比较,比如这两种模板的优缺点、局限性和用例。

1l5u6lss

1l5u6lss1#

我认为二头肌的official GitHub repository几乎有你在问题中提到的所有答案。
部分摘录:
Bicep是用于以声明方式部署Azure资源的域特定语言(DSL)。它旨在通过更清晰的语法、改进的类型安全性以及对模块化和代码重用的更好支持来大幅简化创作体验。Bicep是ARM和ARM模板上的透明抽象

使用二头肌如何改善生活?

  • 与等效JSON相比,语法更简单
  • [...]

已知限制

  • 不支持单行对象和数组(即['a ',' b','c'])
  • [...]

常见问题

    • 这是否准备好用于生产?**是的。从v0.3开始,Bicep现在得到Microsoft支持计划的支持,并且Bicep与ARM模板可以完成的功能100%等同。在撰写本文时,目前还没有计划进行突破性的更改,但将来仍有可能需要进行更改。

更新:更新了提取物,因为它现在已准备好生产。

jexiocij

jexiocij2#

我认为最好的方式来思考BICEP是一个简单的和更少错误的过程来生成ARM模板。最终,BICEP工具只是一个transpiler,即它把BICEP文件变成一个单一的ARM模板,可以部署在你习惯的方式。它没有添加额外的抽象层,所以你总是可以使用最新的资源管理器API版本和属性。
在使用了一段时间之后,我对它感到非常兴奋。在BICEP沿着之前,我使用链接模板来实现模块化,并在任何可能的地方重用代码,但处理大而冗长的JSON文件是很麻烦的。
有了VSCode BICEP扩展和微软在BICEP的智能感知和棉绒方面所做的努力,再加上快速查看ARM输出的能力,我认为我们将享受到显著的生产力提高。
此外,BICEP decompiler看起来是一个非常有用的迁移工具,可以将现有的ARM模板转换为BICEP。
ARM模板在过去是一个令人沮丧和痛苦的来源,但BICEP是一个巨大的进步。显然Terraform在这方面也做了很大的工作,但除非你是专门的多云和多资源提供商,我相信BICEP提供了一个明智的方法。

7rtdyuoh

7rtdyuoh3#

BICEP比ARM模板语法更容易理解。
BICEP被设计为Yaml/TS/Js格式的组合,没有不必要的标点符号。Bicep是一种类似CSS的标记语言,具有循环、if、三元运算和验证语法的VS Code智能感知插件。Bicep仍然要求用户理解Azure资源管理器“资源”(Bicep术语),但与容易出错的json jibberish {","}相比,它为devops monkey提供了更甜蜜的语法糖;Bicep还增加了对不属于Json的注解的支持,与它的-c(“检查健全性”)一起使用Bicep也更安全一些,因为所有内容(默认情况下)的作用域都在ResourceGroup级别。
BICEP提供了与ARM相同的功能,因为它是一个生成ARM模板的转发器,但添加了更高级的功能,如循环、包含、符号引用。ARM是bicep的底层语言,它也被地形或自管理K8自动缩放等工具使用。
一个缺点是BICEP会传播到ARM中,所以如果你的二头肌代码中有bug,你可能最终需要学习ARM才能理解发生了什么。

t8e9dugd

t8e9dugd4#

一个缺点是BICEP会传播到ARM中,所以如果你的二头肌代码中有bug,你可能最终需要学习ARM才能理解发生了什么。
我认为这个缺点比在TF中遇到问题时调试要容易。
目前,ARM模板和BICEP之间的关系是直接的,一对一,非常直接。不幸的是,使用Azure需要了解Azure REST API规范和ARM Tempate。但我喜欢Bisp,因为我不想每次都与ARM Tempate角力。
二头肌让我的Azure Life很开心。

相关问题