--- title: "CTP Topic 32 Using Atlantis CICD for Infrastructure Deployments" type: source tags: - Atlantis - CI/CD - IaC - Terraform - GitOps date: 2026-04-29 --- ## Source File - [[Cloud & DevOps/Public-Cloud-Learning-Sessions/06_CI_CD_GitOps/ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments.md]] ## Summary(用中文描述) - 核心主题:Atlantis 作为 Terraform IaC 自动化工具,用于替代 Jenkins 执行基础设施部署 - 问题域:当前 CI/CD 流水线速度慢(初始化时间长、多次代码克隆、顺序测试、ECS Deployer 预配置)、复杂度高(持续修修补补导致脆弱和漂移) - 方法/机制:Atlantis 部署在每个 Landing Zone 的 Shared Account 中单一 EC2 实例上,通过 GitHub Enterprise Webhook 接收通知,用户在 PR 上评论 `atlantis plan/apply` 触发操作;内置 Locking 机制防止并发冲突,支持并行构建和跨账户角色访问 - 结论/价值:Atlantis 通过合并前 Apply 的机制确保代码与基础设施同步,提供更优协作模型、简化网络架构、节省 VPC 端点成本 ## Key Claims(用中文描述) - Atlantis 团队使用 Atlantis 替代 Jenkins 进行基础设施部署,解决了原流水线速度慢的问题 - Atlantis 部署在每个 Landing Zone 的 Shared Account 中单一 EC2 实例上,通过 GitHub Enterprise Webhook 与代码库集成 - Atlantis 支持模块级 Locking:Plan 运行时锁定模块目录,直到 PR 合并、关闭或 Plan 被丢弃才释放,防止并发冲突 - Atlantis 通过声明模块和数据文件依赖关系实现依赖触发计划(依赖变更自动触发相关模块的 Plan) - Atlantis 支持并行构建,对多个模块同时运行 Plan 和 Apply 命令 ## Key Quotes > "The current pipeline is practically very slow due to significant initialization time, multiple code cloning, sequential testing, and ECS deployer provisioning." — 原流水线速度瓶颈描述 > "Atlantis applies changes before merging, ensuring code in sync with infrastructure." — Atlantis 核心价值:合并前 Apply,确保代码与基础设施同步 > "When a plan is run, the directory of each module is locked until the pull request that has this folder locked is merged or closed, or the plan is manually discarded." — Atlantis Locking 机制说明 ## Key Concepts - [[Atlantis]]:开源、自托管的 Terraform 自动化工具,通过 GitHub PR 评论触发 Plan/Apply 操作,替代传统 CI/CD 流水线执行 IaC 部署 - [[Terraform]]:基础设施即代码(IaC)工具,用于声明式定义和配置云基础设施 - [[GitOps]]:基于 Git 仓库作为单一事实来源的基础设施和应用程序交付方法论,Atlantis 是 GitOps 落地的核心工具 - [[Infrastructure as Code (IaC)]]:通过代码管理和配置基础设施的实践,Terraform 是主流 IaC 工具之一 - [[CI/CD Pipeline]]:持续集成/持续交付流水线,Atlantis 在 IaC 场景下替代了传统 Jenkins 流水线 ## Key Entities - [[Atlantis]]:本视频核心产品 — 开源 Terraform CI/CD 自动化工具,替代 Jenkins 用于基础设施部署 - [[Jenkins]]:Atlantis 所替代的传统 CI/CD 工具 — 存在初始化慢、复杂度高、脆弱等问题 - [[GitHub Enterprise]]:Atlantis 的协作平台 — 通过 Webhook 与 Atlantis 通信,用户通过 PR 评论触发 Plan/Apply ## Connections - [[CTP Topic 33 An Introduction to GitOps]] ← is_implemented_by ← [[CTP Topic 32 Using Atlantis CICD for Infrastructure Deployments]] - [[CTP Topic 9 CI CD with Gruntwork]] ← shares_pattern ← [[CTP Topic 32 Using Atlantis CICD for Infrastructure Deployments]](均涉及 IaC 自动化) - [[CTP Topic 56 Automated Infrastructure Testing]] ← relates_to ← [[CTP Topic 32 Using Atlantis CICD for Infrastructure Deployments]](Terraform 测试为 Atlantis Plan 阶段的一部分) - [[CTP Topic 55 AWS Firewall Manager]] ← uses ← [[Atlantis]](Firewall Manager 策略通过 Atlantis CI/CD 流水线部署) - [[Jenkins]] ← replaced_by → [[Atlantis]](在 IaC 部署场景下的替代关系) ## Contradictions - 与 [[Jenkins]] 的传统 CI/CD 模式: - 冲突点:Atlantis 主张合并前 Apply,Jenkins 传统模式通常为合并后部署 - 当前观点:Atlantis 认为合并前 Apply 能确保代码与基础设施始终同步,减少漂移风险 - 对方观点:传统 Jenkins 流水线通过自动化测试后合并部署,更符合 DevOps 最佳实践