作为一名 Schematics 用户,我为什么需要多个环境,它们的用途是什么?

As a Schematics user why do I need multiple environments and what purpose do they serve?

我正在寻找有关此上下文中的环境的一些指导。在 Schematics 中设置环境有哪些最佳实践?

Schematics 环境类似于软件环境,有时也称为层。这些通常至少包括开发、测试和生产环境。在此处阅读有关此概念的更多信息:https://en.wikipedia.org/wiki/Deployment_environment.

环境允许分离云资源的关注点。每个环境都相互封装,因此每个环境都可以独立运行。这允许开发团队同时对开发和测试环境进行更改,同时不会影响用户与解决方案交互的生产级环境。

示意图环境进一步允许团队潜在地分离他们的云解决方案的组件。这可能是基于产品的。例如,产品 A 可能有三个示意图环境:“product-a-dev”、“product-a-qa”和“product-a-prod”,而产品 B 可能有两个环境:“product-b-non- prod”和“product-b-prod”。这进一步允许客户将他们的产品和他们的资源分离。

示意图环境是将多个分布式元素组合在一起的粘合剂。示意图环境将执行 Terraform 模板所需的信息联系在一起。具体的示意图环境包括以下内容:

  • 指向 Terraform 模板的指针 (url)
  • 特定目标 Terraform 版本
  • 一些有助于组织环境的任意用户定义数据:名称和描述
  • 在 terraform 模板中配置的变量定义和覆盖

将这些信息汇集在一起​​后,Schematic 服务就可以执行这些信息,从而允许调用 Terraform 来创建、更新和销毁云资源。

了解底层技术 Terraform 也很重要。 Terraform 维护 “state”。这允许 Terraform 在您的任意资源名称和云提供商使用的实际标识符之间“映射真实世界”。例如,如果您定义了一个类似于 resource “ibmcloud_infra_bare_metal” “twc_terraform_sample” 的 IBM Cloud 裸机服务器并使用 Schematics 创建了这个资源,那么这个资源的 IBM Cloud id 可能是“253372”。 Terraform 使用状态来映射这两个元素。