38 lines
1.7 KiB
Markdown
38 lines
1.7 KiB
Markdown
---
|
||
title: "Infrastructure as Code"
|
||
type: concept
|
||
tags: [DevOps, 自动化, 配置管理]
|
||
sources: [ctp-topic-70-eks-deployment-using-iac, learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording, ctp-topic-16-cross-account-terraform-modules, ctp-topic-12-using-ses-smtp-service-terraform-module, learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform]
|
||
last_updated: 2026-04-24
|
||
---
|
||
|
||
# Infrastructure as Code
|
||
|
||
## Overview
|
||
Infrastructure as Code (IaC) 是一种通过代码定义和管理基础设施的方法,实现基础设施的标准化、可审计和可重复部署。
|
||
|
||
## Core Principles
|
||
- **声明式配置**:定义期望的状态,而非执行的具体步骤
|
||
- **版本控制**:所有基础设施配置纳入 Git 版本控制
|
||
- **自动化部署**:通过 CI/CD 流水线自动化执行部署
|
||
- **幂等性**:重复执行相同配置不产生副作用
|
||
|
||
## Key Tools
|
||
- **Terraform**:HashiCorp 的基础设施编排工具,支持多云
|
||
- **AWS CloudFormation**:AWS 原生的 IaC 服务
|
||
- **AWS Service Catalog**:AWS 的服务目录,封装标准化产品组合
|
||
- **Pulumi**:使用编程语言(Python, TypeScript 等)定义基础设施
|
||
|
||
## Key Concepts
|
||
- **HCL (HashiCorp Configuration Language)**:Terraform 的配置语言
|
||
- **State Management**:Terraform 使用 state 文件追踪资源
|
||
- **Modules**:可重用的基础设施组件
|
||
- **Remote State**:远程状态存储,支持团队协作
|
||
|
||
## Related Concepts
|
||
- [[Terraform]]:最流行的 IaC 工具之一
|
||
- [[AWS Service Catalog]]:AWS IaC 产品目录
|
||
- [[GitOps]]:基于 Git 的运维方法论
|
||
- [[CI/CD Pipeline]]:自动化部署流水线
|
||
- [[DevOps Culture]]:IaC 是 DevOps 实践的核心组成
|