使用 Terraform 管理 SAP BTP

学习目标

  • 说明基础设施即代码

  • 说明 Terraform

  • 应用适用于 SAP BTP 的 Terraform Provider

说明基础设施即代码

简介

以自动化方式设置和管理云环境是 DevOps 的关键概念之一。在本课中,您将学习如何使用适用于 SAP BTP 的 Terraform Provider 来自动化 SAP BTP 环境的设置和管理。

基础设施即代码

基础设施即代码(IaC)使您能够使用代码而非手动操作来自动化基础设施的配置和管理。它有助于确保基础设施的一致性、可扩展性、版本控制、协作和文档化。

IaC 采用声明式方法。您定义系统的期望状态,包括所需的资源以及这些资源应具有的任何属性。IaC 工具将采用这一目标配置,并执行必要的步骤使其匹配。

幂等性是另一个关键概念。重新运行脚本应始终产生相同的配置。

IaC 的主要优势:

  • 自动化:IaC 为自动化基础设施的配置和管理奠定了基础。基础设施可以通过编程方式创建、修改和销毁,减少人工干预的需求并最大限度地减少人为错误。

  • 一致性:使用 IaC,您可以确保基础设施在不同环境(如开发、测试和生产)中一致地配置和设置。这减少了配置漂移并提高了可靠性。

  • 可扩展性:IaC 允许您以可扩展的方式推出基础设施。通过在代码中定义基础设施配置,您可以以一致且可重复的方式轻松复制和部署基础设施资源。

  • 版本控制与协作:IaC 配置应存储在版本控制系统中,使您能够跟踪随时间的变化,并在需要时回滚到以前的版本。它还支持团队成员之间的协作,因为多个人可以同时处理同一基础设施代码库。

  • 文档化:IaC 可作为一种文档形式,清晰简洁地呈现期望的基础设施状态。它有助于理解基础设施架构,并促进团队内的知识共享。

说明 Terraform

Terraform 是 IaC 工具事实上的标准。它支持 3,000 多个基础设施提供者。用户通过使用 Hashicorp Configuration Language(HCL)编写的配置声明资源或调用数据源,与这些提供者进行交互。

Terraform 使用声明式配置描述期望的最终状态。一旦用户在给定配置上调用 Terraform,Terraform 将代表用户执行 CRUD 操作,以实现期望的状态。

Terraform 在状态文件中跟踪您的真实基础设施,该文件充当您环境的事实来源。Terraform 使用状态文件来确定要对基础设施进行的更改,使其与您的配置匹配。这也可用于检测由于 Terraform 之外的资源更改而导致的配置漂移。

Terraform 流程

实施 Terraform 配置包括以下步骤:

  • 界定范围:确定项目的基础设施。

  • 编写:为基础设施编写配置。

  • 初始化:安装 Terraform 管理该基础设施所需的插件。

  • 计划:规划并验证 Terraform 将对基础设施所做的更改

  • 应用:执行计划中的更改。

Terraform 在应用阶段生成或更新 terraform.tfstate 文件。该文件包含所生成资源的所有 ID 和属性,Terraform 将使用它来更新或销毁您的环境。建议将此文件存储在集中且安全的位置。

应用适用于 SAP BTP 的 Terraform Provider

适用于 SAP BTP 的 Terraform Provider

适用于 SAP BTP 的 Terraform Provider 使您能够自动化 SAP BTP 上资源的配置、管理和设置。这使您能够简化和精简 SAP BTP 上服务和应用程序的部署与维护。

使用适用于 SAP BTP 的 Terraform Provider,您可以管理以下资源:

  • 全局账户、目录和子账户

  • 权益和订阅

  • 环境(Cloud Foundry、Kyma、SAP BTP ABAP 环境)

  • 信任配置

  • 角色、角色集合和角色集合分配

  • 服务实例和服务绑定

从用户角度看,Terraform 与 SAP BTP 交互的流程如下图所示:

从技术上讲,适用于 SAP BTP 的 Terraform Provider 使用 SAP BTP CLI 作为技术基础,即作为与 SAP BTP 平台 API 交互的统一 API。

适用于 SAP BTP 的 Terraform Provider 是开源的,采用 Apache License 2.0 许可。

适用于 Cloud Foundry 的 SAP Terraform Provider

配置和管理 Cloud Foundry 特有的资源必须通过 Terraform Provider for Cloud Foundry 来处理。

SAP 开发了该提供者并将其捐赠给 Cloud Foundry Foundation。作为该基金会的成员,SAP 负责该提供者的维护和未来增强。

从技术上讲,该提供者使用 go-cfclientCloud Foundry Controller v3 API 交互。因此,该提供者与 SAP BTP 上的 Cloud Foundry 环境完全兼容。

观看下面的视频,了解如何使用 Terraform 创建和管理 SAP BTP 资源。

视频:本节含 SAP 官方视频(视频 ID 1_qnlsvc7c),需在 learning.sap.com 在线观看。

小结

在本课中,您了解了如何使用基础设施即代码(IaC)通过 Terraform(即适用于 SAP BTP 的 Terraform Provider)来自动化 SAP BTP 环境的设置和管理。

延伸阅读

  • Getting Started with Terraform on SAP BTP

  • SAP BTP Terraform Provider

  • SAP Cloud Foundry Terraform Provider

  • SAP BTP Provider - Quick Start Guide

  • Terraform Tutorials

本课其余配图

U4L3_The_Terraform_Flow

U4L3_The_SAP_BTP_Terraform_Pr