Fab*_*iro 4 azure devops azure-sdk pulumi infrastructure-as-code
我在这里遇到了一个难题,即要问这个问题的 SE 站点,所以如果它应该在其他地方,请帮助我。
我一直在研究基础设施即代码解决方案。
不太喜欢 Terraform。智能感知的缺乏使得可观察性比程序员习惯的更难。
我一直在考虑 ARM 模板。我喜欢模板在我们在门户中创建资源时可用,但它似乎不太可读并且之后更难维护。
然后我发现了 Pulumi 并喜欢他们的想法,与 Terraform 相比。在我看来,他们的方法也像上述选项一样是声明性的,但我们可以使用体面的编程语言来完成工作。
该for循环是必须的。
酷,我喜欢!但是既然我们喜欢使用 C#(或其他替代方案),那么我们为什么不使用 SDK 来管理我们的基础设施即代码呢?
Pulumi 将自己与云 SKD 进行了比较,将他们的解决方案定位为更安全,并主张如果我们自己只使用云 SDK,那么我们的解决方案就不会那么可靠。
我想知道这在多大程度上是真的?
去年,我编写了一些使用 Azure 服务总线队列/主题的库。有几个集成测试可以并行运行,我需要通过创建新的队列/主题来隔离它们,并习惯于Microsoft.Azure.ServiceBus.Management.ManagementClient这样做。
看起来我真的根本不需要学习任何东西。
现在进入正题。不放弃我认为很棒的 Pulumi 的创新:
与使用 Azure SDK 相比,Pulumi 真的会增加这么多好处吗?
你有什么体验?
这里是 Pulumi 开发人员,所以我绝对有偏见。我怀疑 SO 社区可能会发现您的问题违反了某些指南,但我希望我的回答能够继续存在 :)
使用 Pulumi 的好处之一是您可以访问多个具有一致开发人员体验的提供商。您可能只使用 Azure,但您可能会在某个时候开始将其与构建和发布 Docker 映像、部署 Kubernetes 应用程序或 Datadog 仪表板等内容结合起来。所有这些都可以通过同一个程序或解决方案来完成。
现在,命令式 SDK 的最大区别在于期望状态配置的概念。Pulumi 程序描述了资源图和它们之间的依赖关系(什么),而不是提供它们的步骤(如何)。当您的环境存在数月和数年时,使用婴儿步骤发展单一定义和应用增量更改 (Pulumi) 与编写一堆更新脚本/程序以将每个环境带入新状态 (SDK) 之间存在很大差异)。
您如何维护可能相似但仍然不同的多个环境?(生产 vs 登台 vs 测试 vs 开发)你如何确保你为夜间测试创建的短期基础设施反映了生产的现实?当 SDK 程序在中间失败时会发生什么 - 您可以重试再次运行它还是会创建重复的资源/因另一个错误而失败?你如何在 git 中获得随时间变化的简单概述?并发控制?改变历史?
以上所有内容都融入到 Pulumi 中,需要使用云 SDK 手动考虑。
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |