前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Terraform: 基础设施即代码

Terraform: 基础设施即代码

作者头像
凌虚
发布2022-03-31 13:56:34
9940
发布2022-03-31 13:56:34
举报

Terraform: 基础设施即代码

问题

现如今有很多 IT 系统的基础设施直接使用了云厂商提供的服务,假设我们需要构建以下基础设施:

  • VPC 网络
  • 虚拟主机
  • 负载均衡器
  • 数据库
  • 文件存储
  • ...

那么在公有云的环境中,我们一般怎么做?

在云厂商提供的前端管理页面上手动操作吗?

这也太费劲了吧,尤其是当基础设施越来越多、越来越复杂、以及跨多个云环境的时候,这些基础设施的配置和管理便会碰到一个巨大的挑战。

Terraform

为了解决上述问题,Terrafrom 应运而生。

使用 Terraform ,我们只需要编写简单的声明式代码,形如:

代码语言:javascript
复制
...

resource "alicloud_db_instance" "instance" {
  engine           = "MySQL"
  engine_version   = "5.6"
  instance_type    = "rds.mysql.s1.small"
  instance_storage = "10"
  ...
}

然后执行几个简单的 terraform 命令便可以轻松创建一个阿里云的数据库实例。

terraform

这就是 Infrastructure as code 基础设施即代码。也就是通过代码而不是手动流程来管理和配置基础设施。

正如其官方文档所述,与手动管理基础设施相比,使用 Terraform 有以下几个优势:

  • Terraform 可以轻松管理多个云平台上的基础设施。
  • 使用人类可读的声明式的配置语言,有助于快速编写基础设施代码。
  • Terraform 的状态允许您在整个部署过程中跟踪资源更改。
  • 可以对这些基础设施代码进行版本控制,从而安全地进行协作。

Provider & Module

你也许会感到困惑,我只是简单的应用了所写的声明式代码,怎么就构建出来了基础设施,这中间发生了什么?

其实简而言之就是 terraform 在执行的过程中内部调用了基础设施平台提供的 API 。

provider

每个基础设施平台都会把对自身资源的操作统一封装打包成一个 provider 。provider 的概念就好像是编程语言中的一个依赖库。

在 terraform 中引用 provider :

代码语言:javascript
复制
terraform {
  required_providers {
    alicloud = {
      source = "aliyun/alicloud"
      version = "1.161.0"
    }
  }
}

provider "alicloud" {
  # Configuration options
}

我们在写代码的时候经常会把某些可重用的部分剥离出来作为一个模块,而在 terraform 中,对基础设施的管理也是如此,我们能够把可重用的 terraform 配置组成 module 模块,我们即可以在我们 local 本地自己编写模块,也可以直接使用第三方组织好并且公开发布的 remote 模块。

provider & module

最后

本文只是抛砖引玉罢了,有关 terraform 的更多内容还请参考官方文档及其它资料。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Node Python Go全栈开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Terraform: 基础设施即代码
    • 问题
      • Terraform
        • Provider & Module
      • 最后
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档