Update nexus wiki content
This commit is contained in:
57
wiki/concepts/Infrastructure as Code.md
Normal file
57
wiki/concepts/Infrastructure as Code.md
Normal file
@@ -0,0 +1,57 @@
|
||||
---
|
||||
title: "Infrastructure as Code"
|
||||
type: concept
|
||||
tags: [DevOps, Cloud, Automation]
|
||||
sources: [engineering-devops-automator]
|
||||
last_updated: 2026-05-01
|
||||
---
|
||||
|
||||
# Infrastructure as Code
|
||||
|
||||
## 定义
|
||||
基础设施即代码(Infrastructure as Code,IaC)是一种通过代码定义和管理云基础设施的方法,替代传统手动配置,实现基础设施的可重复性、可版本控制和可测试性。
|
||||
|
||||
## 核心原则
|
||||
1. **声明式配置**:描述期望的最终状态,而非执行的具体步骤
|
||||
2. **幂等性**:多次执行产生相同结果
|
||||
3. **版本控制**:所有配置存储在 Git 等版本控制系统
|
||||
4. **可重复性**:同一代码在不同环境生成相同基础设施
|
||||
5. **自动化测试**:基础设施变更经过测试验证
|
||||
|
||||
## 核心工具
|
||||
- **Terraform**:声明式、多云支持(AWS/GCP/Azure)
|
||||
- **AWS CloudFormation**:AWS 原生声明式服务
|
||||
- **AWS CDK**:使用编程语言(TypeScript/Python)定义云资源
|
||||
- **Ansible**:配置管理 + 基础设施编排
|
||||
- **Pulumi**:使用通用编程语言定义基础设施
|
||||
|
||||
## 在 DevOps Automator 中的应用
|
||||
- 使用 Terraform 定义 AWS Auto-scaling groups、ALB、CloudWatch alarms
|
||||
- 通过 `terraform plan` 预览变更,通过 `terraform apply` 自动部署
|
||||
- 支持多环境管理(dev/staging/prod)
|
||||
|
||||
## 相关概念
|
||||
- [[CI/CD Pipeline]]:IaC 变更通过 CI/CD 流水线自动化部署
|
||||
- [[Terraform]]:DevOps Automator 默认使用的 IaC 工具
|
||||
- [[GitOps]]:基于 Git 的 IaC 运维模式
|
||||
|
||||
## 最佳实践
|
||||
- 状态文件存储在远程后端(S3 + DynamoDB)
|
||||
- 使用 workspaces 或目录分离多环境
|
||||
- 模块化设计,复用公共组件
|
||||
- 敏感信息使用 Vault 或 AWS Secrets Manager
|
||||
|
||||
## 与传统运维的对比
|
||||
| 维度 | 传统运维 | IaC |
|
||||
|------|----------|-----|
|
||||
| 速度 | 手动配置耗时 | 分钟级自动部署 |
|
||||
| 一致性 | 人为差异 | 完全一致 |
|
||||
| 版本控制 | 无 | 完整历史记录 |
|
||||
| 回滚 | 困难 | 一键回滚 |
|
||||
| 审计 | 日志分散 | 集中可追溯 |
|
||||
|
||||
## Aliases
|
||||
- IaC
|
||||
- Infrastructure as Code
|
||||
- 基础设施即代码
|
||||
- Configuration as Code
|
||||
Reference in New Issue
Block a user