规划部署策略

确定您希望如何定义和部署 OCI 资源和工作负载。无论您在何处使用 Terraform 分发(包括 Terraform Cloud 和 OCI 资源管理器),您都可以使用 OCI Terraform 提供程序来管理 OCI 资源。除了 OCI Terraform 提供程序,您还可以使用 OCI Landing Zones Terraform 模块。该模块使用经典 .tfvars 文件或无需编码的 JSON 配置来简化 OCI 资源的部署。

例如,您可以使用 OCI Landing Zones,一键式重复供应 CIS 强化租户和工作负载基础设施,包括身份、安全性、网络、观测和治理等基本云服务。然后,可以将工作负载资源部署在特定应用之上。

根据您的客户和数据选择区域

Cloud Architect, Network Architect, Cloud Operations Manager

在选择区域时,请注意谁将访问您的资源,以及来自国家或世界的哪个区域。在进行选择时,请考虑隐私和法规要求。

采用基础设施作为代码

Cloud Architect, DevOps Architect, Cloud Operations Manager

在 OCI 中采用基础设施作为代码时,您可以采用代码形式定义整个应用基础设施。您可以以代码形式执行操作过程,并实施它们以响应基于事件的通知。

使用以下元素,您可以使用代码定义和管理基础结构:

  • Oracle Cloud Infrastructure 体系框架区域

    OCI Landing Zones 为您提供了一整套 OCI 蓝图,包括可供使用的设计、配置和声明式 IaC Terraform 模块,可用于任何 OCI 架构和部署模型。

  • Oracle Cloud Infrastructure 资源管理器

    Resource Manager 通过使用 Terraform 来帮助您通过基础设施即代码模型来安装、配置和管理资源,从而自动预配 OCI 资源。

  • Oracle Cloud Infrastructure 事件

    事件自动响应租户中的资源更改。OCI 服务会发出事件消息,这些消息是指示资源更改的结构化消息。您可以根据整个租户中资源的状态更改创建自动化,并允许开发团队在资源更改状态时自动响应。

  • Oracle Cloud Infrastructure Functions

    函数提供高度可扩展且完全托管的无服务器平台。部署代码后,您可以使用事件来触发编码为函数的操作过程。

采用 Terraform 实施可重复的工作流

DevOps 云运营经理应用架构师

使用 Terraform 是一款开源工具,您可以通过基础设施即代码模型以编程方式管理、版本控制和保存基础设施。Terraform 配置使用声明式文件对基础设施进行编码,以定义基础设施并维护其状态。

您可以在团队成员之间共享这些文件,将其视为代码、编辑、复核和版本。

无论您在何处使用 Terraform 分发(包括 Terraform Cloud 和 Oracle Cloud Infrastructure Resource Manager ),您都可以使用 OCI Terraform 提供程序来管理 OCI 资源。除了 OCI Terraform 提供程序,您还可以利用 OCI Landing Zones Terraform 模块提供声明式可配置方法,其中包含经典 .tfvars 或 JSON 配置文件,无需编写技能。

将 Terraform 与 OCI 结合使用时,请考虑以下事项:

  • Terraform 是代码,应使用控制版本系统进行处理。OCI 资源管理器可以利用 Git 资源库来运行代码。
  • 如果您在 OCI 中的 VM 计算实例上运行,请考虑使用实例主用户作为 OCI 提供程序的验证。
  • 在 Terraform 堆栈及其运行时可访问的安全位置维护 Terraform 状态文件,并提供正确的粒度级别。在扩展 OCI 资源时,对 Terraform 堆栈中的资源进行隔离和拆分;因为一个堆栈中的所有资源都位于一个状态文件中,这可能需要一些时间来处理,这可能会阻止对其他资源的重要更新。使用 OCI 资源管理器时,每个堆栈都将包含自己的状态文件。
  • OCI Landing Zones 蓝图是专为使用 OCI Landing Zones Terraform 模块运行而构建的配置。您可以在实施许多优秀实践时立即使用这些蓝图,也可以进行修改以支持您的特殊用例。如果您使用采用 JSON 配置的声明式方法,则不需要具备 Terraform 编码技能来运行您的部署。

采用 OCI 设计人员工具包 (OKIT)

DevOps 云运营经理基础设施架构师

Oracle Cloud Infrastructure (OCI) 设计器和可视化 toolKIT (OKIT) 是一款基于浏览器的工具,支持您通过基于 Web 的图形界面设计、部署和可视化(探究/查询)OCI 环境。

借助基于 Web 的界面,架构师和设计人员可以构建其基础设施的可视化表示形式,然后以多种格式导出。完成后,您可以增强设计以添加关键属性信息,从而将设计的基础结构导出到多个 DevOps 框架。

您可以使用 OKIT 通过嵌入在 Web 界面中的简单查询功能来自测现有 OCI 环境,以提供可移植的通用 JSON 文件。您可以使用 JSON 文件将现有系统可视化,或者生成一组 Terraform 或 Ansible 脚本。您可以使用这些脚本将设计的 OCI 基础设施构建为 zip 文件。

OKIT 模型支持使用 Cloud Init 脚本来进一步自动执行计算资源部署。OKIT 本质上是一种最适合在本地运行的单一用户工具,因为它使用用户的个人密钥向租户进行验证。借助 Oracle Cloud Infrastructure Resource Manager ,您可以共享设计。您可以以 JSON 格式导出 OKIT 设计,您可以对其进行版本控制。

自动执行简单且可重复的操作

DevOps 云运营经理架构师

考虑使用 OCI 命令行界面 (command-line interface,CLI) 为可重复操作编写脚本并编排多个任务。使用 OCI CLI 可以通过自动化简化操作。

CLI 提供与控制台相同的核心功能以及其他命令。其中一些功能(例如运行脚本)扩展了 OCI 控制台功能。CLI 支持在 MacOS、Windows 或受支持的 Linux 发行版上运行的 Python 版本 3.6 及更高版本。此外,您可以将其配置为利用联合身份,而不是依赖静态凭据。

采用配置管理工具

DevOps 云运营经理基础设施架构师

您可以考虑采用管理工具(例如 Ansible 模块)来帮助您进行预配、编排和配置管理。

利用 Ansible 模块,您可以自动配置和预配云基础设施,部署和更新软件资产,以及编排复杂的运营流程,从而降低风险,并通过工作负载部署和配置实现敏捷性。Ansible 手册可自动执行配置、部署和编排任务。

OCI 支持使用 Ansible 模块自动执行云基础设施预配和配置、复杂运营流程的编排以及软件资产的部署和更新。OCI Ansible 集合支持 Ansible Tower 和 AWX。

采用构建和部署管理系统

DevOps 云运营经理架构师

使用 Ansible Tower 或 Jenkins 等构建和部署管理系统来提高效率。这些系统可减少手动流程造成的错误,并降低部署更改的工作量。

测试和验证更改

DevOps 云运营经理架构师

要检测错误,请始终跟踪、测试和验证更改。

您可以使用版本控制系统来跟踪代码中的更改。考虑使用部署管理系统来自动执行测试流程。