Sync: add infrastructure as code notes

This commit is contained in:
2026-04-24 19:58:02 +08:00
parent cc23df1883
commit e4f6f463cb
29 changed files with 2344 additions and 155 deletions

View File

@@ -0,0 +1,56 @@
---
title: "Canary Deployment"
type: concept
tags: [DevOps, Deployment, Kubernetes, ECS, AWS]
sources: [learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording]
last_updated: 2026-05-05
---
# Canary Deployment
## Definition
金丝雀部署Canary Deployment是一种软件发布策略通过将新版本逐步推向一小部分用户来降低风险——在新版本全面推广前先将少量流量导向新版本观察其行为和性能验证无误后再逐步扩大比例。
## Core Mechanism
1. **流量分割**:将用户流量按比例分割(如 5%/10%/50%/100%
2. **逐步提升**:从低比例开始,逐步增加新版本流量
3. **快速回滚**:发现问题时,立即将流量切回旧版本
## Implementation in AWS
### ECS (Elastic Container Service)
ECS 模块支持金丝雀部署,通过 Target Group 权重调整实现流量控制:
- 创建新旧两个 Task Definition
- 通过 ALB/NLB 的 Target Group 逐步调整权重
- 结合 CloudWatch 监控自动决策扩缩比例
### EKS (Elastic Kubernetes Service)
Kubernetes 原生支持金丝雀部署,通过以下机制:
- `ReplicaSet` 控制新旧版本副本数
- `Service` 选择器配合金丝雀标签
- Argo Rollouts 等高级工具提供声明式金丝雀策略
### AWS Tools
- **AWS CodeDeploy**:原生支持 ECS 和 Lambda 的金丝雀部署策略
- **ALB Target Groups**:权重路由实现流量分割
- **CloudWatch**:金丝雀指标监控
## Comparison with Other Deployment Strategies
| 策略 | 风险 | 成本 | 适用场景 |
|------|------|------|----------|
| **Blue-Green** | 中 | 高(双倍资源) | 快速回滚需求 |
| **Canary** | 低 | 中 | 生产验证 |
| **Rolling** | 中 | 低 | 资源受限环境 |
| **A/B Testing** | 低 | 中 | 功能验证 |
## Key Metrics to Monitor
- 错误率5xx
- 延迟P50/P95/P99
- 业务指标(转化率/点击率)
- 资源利用率
## Related Concepts
- [[Blue-Green-Deployment]]:双环境切换策略
- [[ECS-Module-Deployment]]ECS 场景的模块化部署
- [[Infrastructure-as-Code]]:部署自动化基础

View File

@@ -0,0 +1,61 @@
---
title: "Cross-account Terraform Modules"
type: concept
tags: [Terraform, Cross-Account, Modules, IaC, AWS]
sources: [ctp-topic-16-cross-account-terraform-modules]
last_updated: 2026-04-14
---
## Overview
Cross-account Terraform Modules 指的是在单个 Terraform 模块中通过配置多个 AWS Provider实现跨多个 AWS 账号同时创建或管理资源的能力。
## Problem Statement
在复杂的云架构中(如 AWS Landing Zone经常需要在一个模块内跨多个账号创建资源。例如
-**InfoBlocks 账号** 配置 DNS 记录
-**Workload 账号** 部署应用服务
原有的 Gruntwork 流水线主要针对单账号设计,直接赋予账号间互访权限存在巨大安全风险——某一账号被攻破可能波及全局。
## Solution Architecture
基于 **Shared Account共享账号** 的中心化部署方案:
1. **Jenkins 托管于 Shared Account**,当检测到模块目录中存在 `cross-account.json` 标记文件时,触发 ECS Deploy Runner
2. **ECS Deploy Runner**(运行在 ECS 上的 Docker 容器)被授予特殊权限,通过 Assume Role 访问目标账号:
- `TF state bucket accessor`:读取目标账号 S3 桶中的 Terraform 状态文件
- `cross-account ECS deploy runner role`:在目标账号内执行资源部署
3. 通过根目录 `terragrunt.hcl` 配置角色切换逻辑
## Three Design Goals
| Goal | Mechanism | Benefit |
|------|-----------|---------|
| **安全性** | 无 Workload 账号间直接信任,权限集中于 Shared Account | 控制 Blast Radius |
| **自动化** | Jenkins 自动识别模块类型并选择正确部署路径 | 无人工干预 |
| **可复用性** | 模块代码不硬编码特定账号的角色 | 灵活适配多环境 |
## Key Files
- `cross-account.json`:约定俗成的标记文件,放置于模块目录中,告知 Jenkins 调用跨账号部署逻辑
- `terragrunt.hcl`Root全局 Terragrunt 配置文件,定义远程状态存储和角色切换逻辑
## Relationships
- [[ECS Deploy Runner]] — 执行单元,运行 Docker 容器执行 plan/apply
- [[Shared Account]] — 信任源,托管 Jenkins 和公共服务
- [[Terraform]] — 底层 IaC 工具
- [[Gruntwork]] — 参考架构来源
- [[AWS-Landing-Zone]] — 多账号架构框架
## Related Concepts
- [[Infrastructure-as-Code]] — 上层方法论
- [[GitOps]] — 部署编排模式
- [[Assume Role]] — 跨账号身份切换机制AWS IAM
## Notes
- 本方案与单账号 Gruntwork 流水线为**演进关系**而非冲突
- 本方案与 Atlantis 跨账号 IAM Role 机制**类似**但执行载体不同ECS 容器 vs EC2

View File

@@ -0,0 +1,68 @@
---
title: "DRY Principle"
type: concept
tags:
- software-engineering
- iac
- best-practices
sources: [ctp-topic-48-terraform-vs-terragrunt]
last_updated: 2026-04-26
---
# DRY Principle
## Definition
DRYDon't Repeat Yourself勿重复自己是一项软件工程原则主张**系统中的每一条知识必须有一个单一的、明确的、权威的表示**。DRY 的核心目标是减少重复代码和配置,提高系统的可维护性、可扩展性和可测试性。
## Core Idea
> "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system."
DRY 不是简单的"不复制粘贴",而是更深层的原则:**避免重复的知识**。这包括:
- 代码逻辑
- 配置文件
- 文档注释
- 数据结构
## DRY in IaC
在基础设施即代码IaC领域DRY 尤为重要因为基础设施配置往往需要在多个环境dev/staging/prod中复用
| 实践 | 说明 |
|------|------|
| **Terragrunt** | 封装 Terraform通过 `remote_state``include` 块统一管理跨环境的 provider 和状态配置 |
| **Terraform Modules** | 将可复用的基础设施组件抽象为模块,避免在每个环境中重复定义 |
| **Service Catalog** | 企业级模块目录,支持三级复用(单账户→产品团队→跨团队) |
| **Hierarchical Configuration** | 层级配置继承,父级定义通用配置,子级覆盖特定值 |
**来源**: [[ctp-topic-48-terraform-vs-terragrunt]], [[ctp-topic-3-deploy-and-maintain-infrastructure]]
## DRY vs WET
| 原则 | 全称 | 结果 |
|------|------|------|
| **DRY** | Don't Repeat Yourself | 一次定义,多次引用 |
| **WET** | Write Everything Twice | 多次重复,维护成本高 |
WET 的典型反模式:
- 复制粘贴配置到每个环境
- 硬编码值而非使用变量
- 注释与代码不同步
## When NOT to Apply DRY
DRY 不是绝对的,在以下情况下适度重复是可接受的:
- **性能优化**:内联代码可能比函数调用更快
- **可读性**:过度抽象可能导致代码难以理解
- **解耦**:强制的 DRY 可能增加组件间的耦合
## Related Concepts
- [[Infrastructure-as-Code]] — DRY 原则的重要应用领域
- [[Terraform]] — Terragrunt 的底层引擎
- [[Terragrunt]] — DRY 原则在 Terraform 生态中的具体实现
## Related Sources
- [[ctp-topic-48-terraform-vs-terragrunt]]

View File

@@ -0,0 +1,108 @@
---
title: "Event-Driven Architecture"
type: concept
tags:
- Architecture
- Event-Driven
- Serverless
- AWS
sources:
- public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee
- public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091
- public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091
last_updated: 2026-05-05
---
## Definition
Event-Driven Architecture事件驱动架构是一种软件设计范式在该模式下系统组件通过产生和消费事件Event进行异步通信而非通过直接的函数调用或请求-响应模式。事件是系统中发生的重要动作或状态变化的声明式通知,事件消费者无需知道事件产生者的存在。
## Core Principles
| 原则 | 描述 |
|------|------|
| 异步通信 | 生产者和消费者解耦,无需同步等待响应 |
| 事件声明 | 事件代表"发生了什么",而非"该做什么" |
| 松耦合 | 生产者和消费者之间无直接依赖 |
| 可扩展 | 新增消费者无需修改生产者代码 |
## Event Anatomy
典型事件包含:
```json
{
"event_id": "uuid",
"event_type": "ORDER_CREATED",
"source": "order-service",
"timestamp": "2026-04-14T10:00:00Z",
"data": { /* */ }
}
```
## AWS Event-Driven Stack
| 组件 | 角色 | 说明 |
|------|------|------|
| [[Amazon-EventBridge]] | 事件总线 | 接收、过滤、路由事件到目标 |
| [[AWS-Lambda]] | 事件消费者 | 响应事件执行处理逻辑 |
| [[Amazon-SNS]] | 事件发布/订阅 | 一对多广播消息 |
| [[Amazon-SQS]] | 事件队列 | 可靠的事件持久化和顺序处理 |
| [[Amazon-DynamoDB]] | 事件源 | DynamoDB Streams 触发 Lambda |
| [[Amazon-S3]] | 事件源 | S3 事件通知触发 Lambda |
## Serverless 中的事件驱动
[[AWS-Lambda]] 是事件驱动架构的核心执行单元:
- **事件即触发器**Lambda 函数不主动运行,由事件触发
- **事件源映射**Lambda 轮询 Kinesis、DynamoDB Stream、SQS 获取事件
- **状态变化即事件**S3 对象上传、API Gateway 请求、DynamoDB 写入等均为事件
## Event Patterns
## EDA 三组件与事件代理类型
| 组件 | 角色 | 说明 |
|------|------|------|
| 事件生产者Producer | 产生事件 | 服务检测到状态变化时发布事件 |
| 事件消费者Consumer | 消费事件 | 订阅并处理事件,执行对应业务逻辑 |
| 事件代理Broker | 路由/存储 | 分事件路由器和事件存储两类 |
**事件路由器Event Routers**——按规则过滤事件并路由到正确消费者:
- [[Amazon-EventBridge]]:更丰富,支持 Schema 注册、跨服务触发
- [[Amazon-SNS]]一对多广播Fan-out
**事件存储Event Stores**——流式持久化事件,消费者自行过滤:
- [[Amazon-SQS]]:标准队列(乱序/高性能)/ FIFO 队列(有序/Exactly-Once
- [[Kinesis-Data-Streams]]:有序事件流,支持重放
## 编排模式Choreography vs Orchestration
| 模式 | 特点 | 适用场景 |
|------|------|---------|
| Choreography编排 | 各微服务自主通信,无中央协调者 | 简单、独立的跨服务交互 |
| Orchestration编排 | 中央协调者(如 [[AWS-Step-Functions]])控制工作流步骤 | 复杂业务流程、需要事务保障 |
## 生产级最佳实践
1. **幂等性Idempotency**:同一操作执行一次或多次产生相同结果。[[AWS-Lambda]] 异步调用会自动重试,因此幂等性是处理重复消息的关键——尤其适用于订单、支付等场景。
2. **事件排序**
- **有序**SQS FIFO 或 Kinesis Data Streams
- **乱序可接受**:标准 SQS 或 EventBridge消费者自行处理乱序
3. **团队独立性**采用去中心化所有权平台团队提供基础设防Cloud CoE消费者团队自主按需消费事件。
## Event Patterns
1. **Pub/Sub**SNS 主题广播,多消费者订阅同一事件类型
2. **Event Streaming**Kinesis/DynamoDB Stream 持久化事件流,支持重放
3. **Fan-Out**SNS 主题或 EventBridge 规则将事件分发到多个消费者
4. **Competing Consumer**同一消息同一时间只有一个消费者处理SQS
5. **Dead-Letter QueueDLQ**:处理失败事件,防止消息丢失
6. **Saga Pattern**:通过事件序列协调分布式事务
7. **Event Sourcing**:完整记录所有状态变化事件作为唯一真相来源
## Connections
- [[Event-Driven-Architecture]] ← is_execution_model_of ← [[Serverless-Computing]]
- [[Event-Driven-Architecture]] ← uses ← [[Amazon-EventBridge]]
- [[Event-Driven-Architecture]] ← executed_by ← [[AWS-Lambda]]

View File

@@ -1,37 +1,49 @@
---
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
tags: [DevOps, AWS, Terraform, Automation]
sources: [ctp-topic-3-deploy-and-maintain-infrastructure, ctp-topic-9-ci-cd-with-gruntwork, ctp-topic-48-terraform-vs-terragrunt, ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments, ctp-topic-33-an-introduction-to-gitops, ctp-topic-56-automated-infrastructure-testing, learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording]
last_updated: 2026-05-05
---
# Infrastructure as Code
## Overview
Infrastructure as Code (IaC) 是一种通过代码定义和管理基础设施的方法,实现基础设施的标准化、可审计和可重复部署
## Definition
基础设施即代码(Infrastructure as Code, IaC是一种通过机器可读的定义文件(而非物理硬件配置或交互式配置工具)管理和配置计算基础设施的方法
## Core Principles
- **声明式配置**定义期望的状态,而非执行的具体步骤
- **版本控制**:所有基础设施配置纳入 Git 版本控制
- **自动化部署**:通过 CI/CD 流水线自动化执行部署
- **幂等性**重复执行相同配置不产生副作用
- **声明式配置**描述期望的最终状态,而非执行的具体步骤
- **版本控制**:所有基础设施定义文件存储在 Git
- **幂等性**:多次执行产生相同结果
- **可重复性**同一模板可在不同环境快速部署
- **自动化**:与 CI/CD 流水线集成
## Key Tools
- **Terraform**HashiCorp 的基础设施编排工具,支持多云
- **AWS CloudFormation**AWS 原生的 IaC 服务
- **AWS Service Catalog**AWS 的服务目录,封装标准化产品组合
- **Pulumi**使用编程语言Python, TypeScript 等)定义基础设施
- **Terraform**HashiCorp 出品,云厂商无关的 IaC 工具,通过状态文件管理资源
- **Terragrunt**Terraform 轻量封装,贯彻 DRY 原则
- **AWS CloudFormation**AWS 原生 IaC 服务JSON/YAML 模板
- **Pulumi**:编程语言驱动的 IaC 平台
- **Ansible**:配置管理和应用部署工具
## Key Concepts
- **HCL (HashiCorp Configuration Language)**Terraform 的配置语言
- **State Management**Terraform 使用 state 文件追踪资源
- **Modules**可重用的基础设施组件
- **Remote State**:远程状态存储,支持团队协作
## Terraform Ecosystem
- **Gruntwork**:预建 Terraform 模块库,生产级参考架构
- **Atlantis**Git 集成 Terraform 部署PR 评论式协作
- **Terratest**Terraform 代码的 Go 测试框架
- **tfsec**Terraform 静态安全分析工具
- **TFLint**Terraform 代码规范检查
## IaC in CTP Context
CTPCloud Transformation Programme使用 Terraform/Terragrunt 构建 AWS Landing Zone
- [[ctp-topic-3-deploy-and-maintain-infrastructure]]Terragrunt HCL 文件与模块化管理
- [[ctp-topic-9-ci-cd-with-gruntwork]]Gruntwork CI/CD 流水线实践
- [[ctp-topic-48-terraform-vs-terragrunt]]Terraform 与 Terragrunt 对比选型
- [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]Atlantis 替代 Jenkins
- [[ctp-topic-56-automated-infrastructure-testing]]TerraTest 自动化测试
- [[learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording]]ECS IaC 部署实践
## Related Concepts
- [[Terraform]]:最流行的 IaC 工具之一
- [[AWS Service Catalog]]AWS IaC 产品目录
- [[GitOps]]:基于 Git 的运维方法论
- [[CI/CD Pipeline]]:自动化部署流水线
- [[DevOps Culture]]IaC 是 DevOps 实践的核心组成
- [[GitOps]]Git 作为 IaC 的单一真相来源
- [[CI/CD Pipeline]]IaC 与 CI/CD 流水线的集成
- [[Policy-as-Code]]IaC 扩展至安全合规策略
- [[Canary-Deployment]]:基于 IaC 的金丝雀部署策略
- [[Atlantis]]GitOps 驱动的 Terraform 协作工具

View File

@@ -1,76 +1,70 @@
---
title: "Serverless Computing"
type: concept
tags: [Cloud, Serverless, Cloud Native, Edge Computing]
date: 2026-04-26
tags:
- Cloud
- Serverless
- AWS
- DevOps
sources:
- public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee
last_updated: 2026-04-14
---
# Serverless Computing (无服务器计算)
## Definition
**Serverless Computing** is a cloud execution model where the cloud provider dynamically manages the allocation and provisioning of servers. Developers can build and deploy applications without worrying about infrastructure management.
## Key Characteristics
- **No server management**: Cloud provider handles infrastructure
- **Automatic scaling**: Resources scale based on demand
- **Pay-per-use**: Pay only for execution time
- **Event-driven**: Functions respond to events/triggers
Serverless Computing无服务器计算是一种云原生执行模型在该模式下云厂商承担底层基础设施的全部运维责任负载均衡、自动扩展、安全补丁、容量管理开发者只需专注编写业务逻辑代码。Serverless 并非"无服务器",而是将服务器管理抽象给云厂商。
## Key Platforms
## Core Characteristics
| Provider | Service |
|----------|---------|
| AWS | Lambda |
| Azure | Azure Functions |
| GCP | Cloud Functions |
| 特性 | 描述 |
|------|------|
| 无运维 | 云厂商管理服务器操作系统、运行时和安全补丁 |
| 事件驱动 | 函数由事件触发,事件即资源状态的任何变化 |
| 按需付费 | 仅在函数执行时计费(按调用次数和执行时长) |
| 自动扩展 | 云厂商根据请求量自动水平扩展,无需人工干预 |
| 内置安全 | 云厂商提供基础安全能力网络隔离、IAM 权限控制) |
## Benefits
## Business Value
### 1. Cost Efficiency
- Eliminates unnecessary resource consumption
- No idle capacity costs
- Pay only for actual execution time
企业采用 Serverless 的核心驱动因素:
- **更快上市时间**Faster Time to Market开发团队专注业务逻辑无需管理基础设施
- **业务聚焦**Business Focus将非核心运维任务外包给云厂商
- **更低 TCO**Total Cost of Ownership按需付费空闲时零成本
- **弹性扩展**Elastic Scalability从零到百万并发自动应对
- **内置安全**Built-in Security云厂商持续更新安全补丁
### 2. Scalability
- Automatic scaling from zero to thousands of instances
- Handles traffic spikes without provisioning
- Global distribution ready
## AWS Serverless Ecosystem
### 3. Developer Productivity
- Focus on business logic, not infrastructure
- Faster deployment cycles
- Reduced operational overhead
AWS 提供完整的 Serverless 服务矩阵:
## Use Cases
| 服务 | 作用 | 关系 |
|------|------|------|
| [[AWS-Lambda]] | 无服务器计算核心 | 函数执行层 |
| [[Amazon-API-Gateway]] | API 创建、发布、安全 | API 暴露层 |
| [[AWS-Step-Functions]] | 工作流编排 | 流程编排层 |
| [[Amazon-EventBridge]] | 事件总线 | 事件路由层 |
| [[AWS-Fargate]] | 无服务器容器 | 容器层的 Serverless |
| [[Amazon-DynamoDB]] | 无服务器数据库 | 数据持久层 |
| [[SAM-Serverless-Application-Model]] | 本地开发和部署工具 | 开发工具层 |
### Event-Driven Automation
- Real-time file processing
- Automated backups
- Scheduled tasks and cron jobs
## Shared Responsibility Model
### API Backends
- Microservices architecture
- Real-time data processing
- IoT data ingestion
在 Serverless 环境中AWS 与客户共担运维责任:
### AI/ML Inference
- On-demand model inference
- Image and video processing
- Natural language processing
- **AWS 负责**:基础设施、服务器硬件、网络、运行时环境、安全补丁、负载均衡、自动扩展
- **客户负责**业务代码、依赖管理、权限配置IAM、应用程序级别的安全
## Relationship to Green Computing
- Serverless computing contributes to [[Green Computing]] by:
- Eliminating idle resource consumption
- Optimizing energy efficiency through shared infrastructure
- Reducing data center carbon footprint
## Event-Driven Architecture Connection
Serverless 天然契合 [[Event-Driven-Architecture]] 模式:
1. **事件源**Event SourceS3、API Gateway、EventBridge、DynamoDB Stream 等
2. **事件路由器**Event RouterEventBridge、SNS 等筛选和路由事件
3. **Lambda 函数**Function消费事件执行业务逻辑
4. **下游服务**DownstreamDynamoDB、SQS、SNS 等处理结果
## Related Concepts
- [[Cloud-Native]]
- [[Green Computing]]
- [[Event-Driven-Architecture]]
- [[Edge-Computing]]
## Related Entities
- [[AWS Lambda]]
- [[Azure Functions]]
- [[Google Cloud Functions]]
- [[Event-Driven-Architecture]] — Serverless 的天然执行模型
- [[Lambda-Permissions-Model]] — Serverless 函数的安全权限模型
- [[Cloud-Transformation-Programme]] — Serverless 是云转型的关键技术路径之一

View File

@@ -0,0 +1,78 @@
---
title: "AWS Lambda"
type: entity
tags:
- AWS
- Serverless
- Compute
- Lambda
sources:
- public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee
last_updated: 2026-04-14
---
## Aliases
- Lambda
- AWS Lambda
## Definition
AWS Lambda 是 AWS 的无服务器Serverless计算服务——开发者只需编写业务逻辑函数HandlerAWS 负责所有底层运维负载均衡、自动扩展、安全补丁和容量管理。Lambda 函数由事件event触发事件即云资源状态的任何变化。
## Core Properties
| 属性 | 值 |
|------|-----|
| 触发模式 | 同步调用、异步调用、事件源映射 |
| 权限模型 | 执行角色Execution Role+ 资源策略Resource-Based Policy |
| 代码管理 | 版本Version、别名Alias、Layers共享公共依赖 |
| 架构支持 | x86 和 ARM64ARM64 提供更优性价比) |
| 监控 | CloudWatch 指标(请求数、错误数、延迟、节流) |
| 调试工具 | Amazon Q集成 AI 辅助调试) |
| 性能调优 | Lambda Power Tuning比较不同配置的性能和成本 |
## Lambda Handler 模式
Lambda 函数接收三个核心参数:
1. **Handler** — 入口函数,事件触发时执行
2. **Event Object** — 触发事件的数据结构API Gateway 请求、S3 对象变更等)
3. **Context Object** — 运行时信息(超时设置、内存限制、日志句柄等)
## Invocation Patterns
- **同步调用Synchronous**:调用方等待响应,如 API Gateway → Lambda
- **异步调用Asynchronous**Lambda 自动处理重试(最多 2 次),如 S3 事件 → Lambda
- **事件源映射Event Source Mapping**Lambda 轮询流式服务Kinesis、DynamoDB Stream、SQS批量处理记录
## Permissions Model
Lambda 权限模型基于 IAM 的最小权限原则:
| 权限类型 | 作用对象 | 说明 |
|---------|---------|------|
| Execution Role | Lambda 函数 | 定义函数能调用哪些 AWS 资源和服务 |
| Resource-Based Policy | 其他 AWS 账号/服务 | 定义谁能/什么能触发该 Lambda 函数 |
## Lambda Layers
Lambda Layers 允许跨多个 Lambda 函数共享公共代码和依赖:
- 运行时环境(如 Python boto3 库)
- 自定义运行时
- 配置和脚本
Layers 避免了每个函数重复打包相同依赖,减少部署包大小和更新成本。
## Connections
- [[Serverless-Computing]] ← is_core_service_of ← [[AWS-Lambda]]
- [[AWS-Lambda]] ← triggered_by ← [[Amazon-EventBridge]]
- [[AWS-Lambda]] ← exposed_via ← [[Amazon-API-Gateway]]
- [[AWS-Lambda]] ← orchestrated_by ← [[AWS-Step-Functions]]
- [[AWS-Lambda]] ← monitored_by ← [[CloudWatch]]
- [[SAM-Serverless-Application-Model]] ← deploys ← [[AWS-Lambda]]
## Related Entities
- [[Amazon-API-Gateway]] — Lambda 的 API 暴露层
- [[AWS-Step-Functions]] — Lambda 的工作流编排层
- [[Amazon-EventBridge]] — Lambda 的事件驱动触发源
- [[CloudWatch]] — Lambda 的监控和日志层

View File

@@ -0,0 +1,56 @@
---
title: "AWS Step Functions"
type: entity
tags:
- AWS
- Serverless
- Workflow
- Orchestration
sources:
- public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee
last_updated: 2026-04-14
---
## Aliases
- Step Functions
- AWS Step Functions
- Amazon Step Functions
## Definition
AWS Step Functions 是 AWS 的无服务器工作流编排服务基于状态机State Machine协调多个 Lambda 函数和 AWS 服务的执行顺序和错误处理逻辑,使开发者无需编写复杂的编排代码即可构建可靠的多步骤业务流程。
## Core Properties
| 属性 | 值 |
|------|-----|
| 核心抽象 | 状态机Standard 和 Express 两种) |
| Standard 工作流 | 长时运行,最长 1 年,支持精确执行历史 |
| Express 工作流 | 高频场景,最长 5 分钟,支持极高吞吐量 |
| 状态类型 | Task、Choice、Wait、Pass、Parallel、Map、End、Throw |
| 错误处理 | 内置 Retry、Catch 和 Error 字段 |
| 可视化 | 自动生成工作流图形,直观展示执行路径 |
## Workflow Flavors
| 类型 | 适用场景 | 执行时长 | 计费模式 |
|------|---------|---------|---------|
| Standard | 长时业务流程、审批流、数据处理管道 | 最长 1 年 | 按状态转换计费 |
| Express | 高频事件处理、IoT 数据流水线、实时流处理 | 最长 5 分钟 | 按执行次数+GB/s计费 |
## State Types
Step Functions 提供丰富的状态类型构建复杂工作流:
- **Task**:执行单个原子工作单元(如调用 Lambda、DynamoDB 操作)
- **Choice**:条件分支,基于数据动态路由执行路径
- **Wait**:等待指定时间(用于轮询、重试间隔)
- **Pass**:直接传递输入到输出(数据转换)
- **Parallel**:并行执行多个分支,汇合结果
- **Map**:迭代处理数组中的每个元素
- **End/Try-Throw**:终止和错误处理
## Connections
- [[AWS-Step-Functions]] ← orchestrates ← [[AWS-Lambda]]
- [[AWS-Step-Functions]] ← is_a ← [[Serverless-Computing]]
- [[AWS-Step-Functions]] ← triggers ← [[Amazon-EventBridge]]

View File

@@ -0,0 +1,60 @@
---
title: "Amazon API Gateway"
type: entity
tags:
- AWS
- Serverless
- API
- Networking
sources:
- public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee
last_updated: 2026-04-14
---
## Aliases
- API Gateway
- Amazon API Gateway
- AWS API Gateway
## Definition
Amazon API Gateway 是 AWS 的全托管 API 管理服务,用于创建、发布、维护和监控安全的企业级 REST、HTTP 和 WebSocket API。API Gateway 作为 Lambda 函数和其他后端服务的统一入口,提供流量管理、授权和访问控制、监控等企业级能力。
## Core Properties
| 属性 | 值 |
|------|-----|
| API 类型 | REST API、HTTP API、WebSocket API |
| 部署选项 | Edge-Optimized、Regional、Private |
| 认证方式 | IAM 角色、Lambda Authorizer、Cognito、API Key |
| 协议 | HTTPSTLS 终止由 AWS 管理) |
| 限流 | 按账户/按 API/按客户多级限流 |
| 缓存 | 可选 API 缓存,提升响应速度 |
| 监控 | CloudWatch 集成,提供延迟、错误率等指标 |
## Deployment Options
| 选项 | 说明 | 适用场景 |
|------|------|---------|
| Edge-Optimized | 通过 CloudFront CDN 全球分发,低延迟 | 面向全球用户的公共 API |
| Regional | 部署在单一区域,自带高可用 | 面向同区域用户、VPC 内的 API |
| Private | 仅可通过 VPC 内部端点访问 | 企业内部 API、微服务间通信 |
## Typical Architecture
```
客户端 → API Gateway → Lambda Function → DynamoDB/SQS/etc.
```
API Gateway 负责:
1. TLS 终止(安全)
2. 请求验证(格式、参数)
3. 限流和配额管理
4. 授权和身份验证
5. 请求路由到后端 Lambda
6. 响应转换和格式统一
## Connections
- [[Amazon-API-Gateway]] ← exposes ← [[AWS-Lambda]]
- [[Amazon-API-Gateway]] ← provides ← [[Serverless-Computing]]
- [[Amazon-API-Gateway]] ← monitored_by ← [[CloudWatch]]

95
wiki/entities/Atlantis.md Normal file
View File

@@ -0,0 +1,95 @@
---
title: "Atlantis"
type: entity
tags:
- devops
- iac
- terraform
- gitops
- cicd
created: 2026-04-26
---
# Atlantis
## Definition
Atlantis 是一个开源的**Terraform CI/CD 工具**,通过与 GitHub/GitLab 深度集成,将 Terraform 的 plan 和 apply 操作转移到 Pull RequestPR评论层面实现基础设施即代码的协作式自动化部署。
## Core Model: PR-Driven IaC
Atlantis 的核心理念:**每个 Pull Request 都是一次 Terraform 操作**。
```
Developer Atlantis AWS Accounts
│ │ │
│ 1. Open PR │ │
│───────────────────────>│ │
│ │ 2. !atlantis plan │
│ │───────────────────────>│
│ │<───────────────────────│ 3. terraform plan
│ 4. Post plan result │ │
│<───────────────────────│ │
│ 5. Review & Approve │ │
│───────────────────────>│ │
│ │ 6. !atlantis apply │
│ │───────────────────────>│
│ │<───────────────────────│ 7. terraform apply
│ 8. Merge PR │ │
│───────────────────────>│ │
```
**来源**: [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]
## Key Features
| 特性 | 说明 |
|------|------|
| **PR 评论触发** | 无需独立 CI 账号,开发者在 PR 上评论即可 |
| **并行 plan/apply** | 多模块并发执行,提升部署效率 |
| **锁定机制** | 防止多 PR 同时操作同一模块产生冲突 |
| **跨账户访问** | 通过 IAM 角色实现多 AWS 账户部署 |
| **零额外基础设施** | 只需一台 EC2 共享账户实例 |
**来源**: [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]
## Comparison: Atlantis vs Jenkins
| 维度 | Atlantis | Jenkins |
|------|----------|---------|
| 触发方式 | PR 评论 | SCM 轮询/定时 |
| 初始化速度 | 快速(按需) | 慢Jenkins 预配置) |
| 代码克隆 | 单次 | 多次 |
| 测试执行 | 并行 | 顺序 |
| 架构复杂度 | 简单 | 复杂(持续叠加功能) |
| Terraform 专用 | ✅ 是 | ❌ 通用(需配置) |
| PR 协作 | ✅ 原生 | ❌ 无 |
**来源**: [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]
## Micro Focus Usage
Micro Focus 在 Labs Landing Zone 中使用 Atlantis 替代 Jenkins 进行 Terraform IaC 部署:
- 每个 Landing Zone 共享账户部署单台 EC2 实例
- GitHub Enterprise Webhook 接收 PR 事件
- 服务账号负责评论/合并/关闭 PR
- Atlantis 在 merge 前即应用变更
**局限性**: Atlantis 当前不支持 EKS 部署,需通过 Jenkins + Terragrunt 模块替代。
**来源**: [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]], [[ctp-topic-39-implementing-eks-in-the-aws-lab-landing-zone]]
## Related Entities
- [[Terraform]] — Atlantis 操作的核心 IaC 工具
- [[Gruntwork]] — Terragrunt 的开发者Atlantis 生态伙伴)
## Related Concepts
- [[GitOps]] — Atlantis 是 GitOps 在 Terraform 领域的实现工具
- [[CI/CD Pipeline]] — Atlantis 提供 CI/CD 能力
## Related Sources
- [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]
- [[ctp-topic-39-implementing-eks-in-the-aws-lab-landing-zone]]

View File

@@ -1,30 +1,32 @@
---
title: "Gruntwork"
type: entity
sources: [ctp-topic-17-active-directory-services-in-gruntwork-aws-lzs]
last_updated: 2026-04-14
tags: [AWS, IaC, DevOps, Terraform]
sources: [ctp-topic-9-ci-cd-with-gruntwork, ctp-topic-48-terraform-vs-terragrunt, learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording]
last_updated: 2026-05-05
---
# Gruntwork
## Overview
Gruntwork 是 Micro Focus Cloud Transformation Programme (CTP) 中采用的 AWS Landing Zones 基础设施框架提供方。Gruntwork Landing Zones 提供预配置的、基于最佳实践的 AWS 基础架构模板,帮助企业快速构建符合安全和合规要求的 AWS 多账户架构
Gruntwork 是一家专注于 AWS 基础设施即代码IaC的公司提供预构建、可定制的 Terraform 模块库,帮助团队快速构建生产级云基础设施
## Aliases
- Gruntwork AWS Landing Zones
- Gruntwork LZ
## Products
- **Gruntwork Landing Zone Architecture**:基于 Terraform/Terragrunt 的 AWS Landing Zone 参考架构,涵盖账户结构、网络、安全、运维等基础设施层
- **Gruntwork Infrastructure Live**:生产级 Terraform 模块库,支持多账户、多区域部署
- **Pipelines**Gruntwork 推荐的 CI/CD 流水线方案,集成 GitHub Actions/Jenkins
## Key Capabilities
- **多环境支持**:区分 R&D Labs 和 SASStaging/Production两种环境类型分别对应不同的 AD 域名架构
- **预制 AMI**SRE 团队维护内置域加入脚本的标准化机器镜像
- **IaC 集成**:与 Terraform/TerraGrunt 深度集成,支持 `user_data` 触发自动化域加入流程
- **AD 集成**:提供标准化的 Active Directory 服务集成方案,包括 DNS 管理和安全动态更新
## Key Modules
- **ECS 模块**Docker 容器部署模块CTP/SRE 团队在此基础上构建了自己的 ECS 模块(实现 Listener 集中管理)
- **EKS 模块**Kubernetes 集群部署模块
- **Landing Zone 模块**AWS 组织、账户、OU 架构
## Related Entities
- [[SRE Team]]:构建和维护 Gruntwork LZ 中预制 AMI 的团队
- [[Gruntwork AWS Landing Zones Overview]]Gruntwork LZ 的整体架构概述
- [[ctp-topic-17-active-directory-services-in-gruntwork-aws-lzs]]AD 服务集成的核心参考文档
## Gruntwork in CTP Context
- [[ctp-topic-9-ci-cd-with-gruntwork]]CTP Topic 9 深入 Gruntwork CI/CD 实践
- [[ctp-topic-48-terraform-vs-terragrunt]]Terraform 与 Terragrunt 对比Gruntwork 作为辅助工具推荐
- [[learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording]]CTP 团队在 Gruntwork 仓库基础上开发 ECS 模块
## References
- [[ctp-topic-17-active-directory-services-in-gruntwork-aws-lzs]]
- [[ctp-topic-14-octane-hub-on-aws-real-life-experience-moving-production-services-i]]
- [[ctp-topic-9-ci-cd-with-gruntwork]]
- [[ctp-topic-1-gruntwork-landing-zone-architecture]]
## Connections
- [[HashiCorp]] ← provider_of ← [[Terraform]] ← uses ← [[Gruntwork]]
- [[Atlantis]] ← alternative_to ← [[Gruntwork-Pipelines]]
- [[Gruntwork]] ← builds_on ← [[Infrastructure-as-Code]]

View File

@@ -0,0 +1,59 @@
---
title: "HashiCorp"
type: entity
tags:
- devops
- iac
- infrastructure
- tools
created: 2026-04-26
---
# HashiCorp
## Definition
HashiCorp 是全球领先的**云基础设施自动化**软件公司,总部位于旧金山,创立于 2012 年。HashiCorp 提供一套完整的基础设施生命周期管理工具,覆盖配置管理、机密管理、服务网格和网络自动化等领域。
## Core Products
| 产品 | 用途 | 类别 |
|------|------|------|
| **Terraform** | 云厂商无关的基础设施即代码 | IaC |
| **Vault** | 机密管理与加密即服务 | 安全 |
| **Nomad** | 容器和工作负载调度器 | 编排 |
| **Consul** | 服务网格与服务发现 | 网络 |
| **Packer** | 机器镜像构建自动化 | 镜像 |
| **Vagrant** | 开发环境管理 | 开发环境 |
## Terraform
HashiCorp 最知名的产品。Terraform 是用 Golang 编写的云无关 IaC 工具,通过声明式 HCLHashiCorp Configuration Language管理跨多云和混合云环境的基础设施资源。
**关键特性:**
- 云厂商无关AWS/Azure/GCP/On-prem
- `terraform plan` 预览变更
- 状态文件管理实际资源与期望状态的绑定
- 丰富的 Provider 生态系统和 Module 市场
**来源**: [[ctp-topic-48-terraform-vs-terragrunt]]
## Business Model
- **开源**:所有产品的开源版本
- **Enterprise**企业级功能SSO、RBAC、审计日志、Sentinel 策略)
- **HCPHashiCorp Cloud Platform**SaaS 托管版本
## Related Entities
- [[Terraform]] — HashiCorp 出品的核心 IaC 产品
- [[Terragrunt]] — 第三方 Terraform 封装工具(贯彻 DRY 原则)
## Related Concepts
- [[Infrastructure-as-Code]] — HashiCorp 产品的核心方法论
- [[Multi-Cloud Strategy]] — Terraform 云无关定位的战略价值
## Related Sources
- [[ctp-topic-48-terraform-vs-terragrunt]]

View File

@@ -0,0 +1,86 @@
---
title: "SAM Serverless Application Model"
type: entity
tags:
- AWS
- Serverless
- IaC
- CloudFormation
sources:
- public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee
last_updated: 2026-04-14
---
## Aliases
- SAM
- AWS SAM
- Serverless Application Model
## Definition
AWS SAMServerless Application Model是 AWS 官方的开源 IaC 工具,基于 AWS CloudFormation 构建专门简化无服务器应用Lambda、API Gateway、Step Functions 等的定义、部署和管理。SAM 提供简化的 YAML 语法,降低 CloudFormation 模板的复杂度,同时支持本地开发和测试。
## Core Properties
| 属性 | 值 |
|------|-----|
| 基础 | AWS CloudFormation |
| 配置格式 | YAML简化语法 |
| CLI | AWS SAM CLI支持本地调用和测试 |
| 本地测试 | SAM Local — 本地启动 API Gateway + Lambda |
| 部署 | `sam deploy``sam build``sam package` |
| 应用发布 | AWS Serverless Application Repository应用市场 |
## SAM vs CloudFormation
| 特性 | SAM | CloudFormation |
|------|-----|----------------|
| 语法 | 简化 YAML | JSON/YAML |
| 资源类型 | 仅 Serverless 资源 | 全部 AWS 资源 |
| 本地测试 | SAM Local | 不支持 |
| 打包上传 | `sam package` | `aws cloudformation package` |
| 模板继承 | `!Sub``!Ref` | 原生支持 |
## Typical SAM Template
```yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
Handler: app.handler
Runtime: python3.12
Events:
ApiEvent:
Type: Api
Properties:
Path: /hello
Method: get
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
DefinitionBody:
# OpenAPI spec
```
## SAM CLI 常用命令
| 命令 | 作用 |
|------|------|
| `sam init` | 初始化新 SAM 项目 |
| `sam build` | 构建应用处理依赖、Layer |
| `sam local invoke` | 本地调用 Lambda 函数 |
| `sam local start-api` | 本地启动完整 APIAPI Gateway + Lambda |
| `sam deploy` | 交互式部署到 AWS |
| `sam package` | 打包模板和代码到 S3 |
| `sam validate` | 验证模板语法 |
## Connections
- [[SAM-Serverless-Application-Model]] ← builds_on ← [[CloudFormation]]
- [[SAM-Serverless-Application-Model]] ← deploys ← [[AWS-Lambda]]
- [[SAM-Serverless-Application-Model]] ← deploys ← [[Amazon-API-Gateway]]
- [[SAM-Serverless-Application-Model]] ← deploys ← [[AWS-Step-Functions]]
- [[SAM-Serverless-Application-Model]] ← is_tool_of ← [[Serverless-Computing]]

View File

@@ -102,6 +102,36 @@ Agentic AI 在 Terraform 工作流中扮演审查者角色:
> acl = "private" # Block public access
> ```
## State File Management
Terraform 通过**状态文件 (state file)** 将声明式配置中定义的**期望状态**与云环境的**实际资源状态**进行绑定。关键特性:
- **状态锁定**:防止并发执行导致状态不一致
- **远程状态**:企业级场景需将状态文件存储在 S3+ DynamoDB 锁)等远程后端,支持团队协作
- **差异对比**`terraform plan` 预览实际变更内容再执行,是 Terraform 的核心优势
**来源**: [[ctp-topic-48-terraform-vs-terragrunt]]
## Terragrunt Wrapper
Terragrunt 是 Terraform 的轻量封装,继承所有 Terraform 命令HCL 语法完全兼容)。两者关系:
- `terragrunt plan` = `terraform plan`
- Terragrunt 通过 `remote_state``include` 块实现跨环境配置的 DRY 管理
**来源**: [[ctp-topic-48-terraform-vs-terragrunt]]
## Ecosystem Tools
| 工具 | 类型 | 用途 |
|------|------|------|
| [[Terragrunt]] | 封装 | 多环境 DRY 配置 |
| [[Atlantis]] | CI/CD | Git PR 驱动的 plan/apply |
| Terraform Enterprise | 平台 | 企业 CI + workspaces |
| [[Gruntwork]] | 模块库 | 预建可复用 IaC 模块 |
| Terratest | 测试 | IaC 集成测试Golang |
| tfsec | 安全 | Terraform 静态安全分析 |
**来源**: [[ctp-topic-48-terraform-vs-terragrunt]], [[ctp-topic-56-automated-infrastructure-testing]]
## Related Concepts
- [[Infrastructure-as-Code]] — Terraform 是 IaC 的实现工具

100
wiki/entities/Terragrunt.md Normal file
View File

@@ -0,0 +1,100 @@
---
title: "Terragrunt"
type: entity
tags:
- devops
- iac
- terraform
- automation
created: 2026-04-26
---
# Terragrunt
## Definition
Terragrunt 是由 Gruntwork 开发的**Terraform 轻量封装工具**,核心目标是贯彻 DRYDon't Repeat Yourself原则简化多环境、多账户 Terraform 配置的管理。
## Core Value
Terragrunt 对 Terraform 的核心改进在于**减少重复配置**
| 问题 | Terraform 方案 | Terragrunt 方案 |
|------|---------------|----------------|
| provider 块重复 | 每个环境独立声明 | `terragrunt.hcl` 统一管理 |
| remote_state 块重复 | 多处硬编码 | 模板化复用 |
| 模块引用方式 | 固定分支引用 | 版本锁定引用 |
| 多环境同步 | 手动复制配置 | `include` 块继承 |
**来源**: [[ctp-topic-48-terraform-vs-terragrunt]]
## Compatibility
Terragrunt **完全兼容** Terraform 的所有命令和 HCL 语法:
- `terragrunt plan` → 底层调用 `terraform plan`
- `terragrunt apply` → 底层调用 `terraform apply`
- 所有 Terraform HCL 块和属性完全兼容
这意味着 Terragrunt **不是** Terraform 的替代品,而是增强层。
**来源**: [[ctp-topic-48-terraform-vs-terragrunt]]
## Key Features
### DRY Remote State
通过 `remote_state` 块集中管理状态文件位置:
```hcl
remote_state {
backend = "s3"
config = {
bucket = "my-terraform-state"
key = "${path_relative_to_include()}/terraform.tfstate"
region = "eu-west-1"
encrypt = true
}
}
```
### Provider Management
跨环境统一 provider 配置,避免在每个模块中重复声明。
### Include & Inheritance
通过 `include` 块实现配置的继承与覆盖:
```hcl
include {
path = find_in_parent_folders("root.hcl")
}
```
## Use Case: Micro Focus Labs Landing Zone
Micro Focus Labs Landing Zone 使用 Terragrunt 管理多账户配置,所有资源通过 Terraform/Terragrunt 管理Jenkins 流水线扫描 GitHub 仓库变更触发 plan/apply。
**来源**: [[ctp-topic-3-deploy-and-maintain-infrastructure]], [[ctp-topic-25-labs-landing-zone-overview-itom-teams]]
## Ecosystem Position
```
Terraform Ecosystem
├── Terraform (HashiCorp) — 核心 IaC 引擎
├── Terragrunt (Gruntwork) — DRY 封装层 ←
├── Terraform Enterprise (HashiCorp) — 企业 CI 平台
└── Gruntwork Library (Gruntwork) — 预建模块库
```
## Related Entities
- [[Terraform]] — Terragrunt 包装的核心引擎
- [[HashiCorp]] — Terraform 创立公司
- [[Gruntwork]] — Terragrunt 开发公司
## Related Concepts
- [[Infrastructure-as-Code]] — Terragrunt 的应用领域
- [[DRY Principle]] — Terragrunt 的设计哲学
## Related Sources
- [[ctp-topic-48-terraform-vs-terragrunt]]
- [[ctp-topic-3-deploy-and-maintain-infrastructure]]
- [[ctp-topic-15-working-with-renovatebot]]Renovate Bot 扫描 Terragrunt 配置)

View File

@@ -4,6 +4,14 @@
- [Overview](overview.md) — living synthesis
## Sources
- [2026-04-24] [CTP Topic 16 Cross-account Terraform modules](sources/ctp-topic-16-cross-account-terraform-modules.md)
- [2026-04-24] [Learning Sessions ECS Deployment using IAC - 20230808](sources/learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording.md)
- [2026-04-24] [CTP Topic 48 Terraform vs Terragrunt](sources/ctp-topic-48-terraform-vs-terragrunt.md)
- [2026-04-24] [Public Cloud Learning Sessions (OpenText) - AI Use Cases - 20241126 160106](sources/public-cloud-learning-sessions-opentext-ai-use-cases-20241126-160106-meeting-rec.md)
- [2026-04-24] [Public Cloud Learning Sessions (OpenText) - Event Driven Architecture Part 2](sources/public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091.md)
- [2026-04-24] [Public Cloud Learning Sessions (OpenText) - Generative AI & Prompt Engineering - 20241112](sources/public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111.md)
- [2026-04-24] [Public Cloud Learning Sessions (OpenText) - Event Driven Architecture Part 1](sources/public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091.md)
- [2026-04-24] [Public Cloud Learning Sessions - Serverless Computing - 20240903](sources/public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee.md)
- [2026-04-24] [Public Cloud Learning Sessions - Introduction to AI/ML with AWS](sources/public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin.md)
- [2026-04-24] [Cloud Learning Master Index](sources/cloud-learning-master-index.md)
- [2026-04-24] [CTP Topic 27 AWS Instance Scheduler](sources/ctp-topic-27-aws-instance-scheduler.md)
@@ -406,14 +414,6 @@
- [2026-04-20] [ctp-topic-12-using-ses-smtp-service-terraform-module](sources/ctp-topic-12-using-ses-smtp-service-terraform-module.md) — (expected: wiki/sources/ctp-topic-12-using-ses-smtp-service-terraform-module.md — source missing)
- [2026-04-20] [learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform](sources/learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform.md) — (expected: wiki/sources/learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform.md — source missing)
- [2026-04-20] [learning-sessions-cloud-transformation-programme-20230808-183322-meeting-recordi](sources/learning-sessions-cloud-transformation-programme-20230808-183322-meeting-recordi.md) — (expected: wiki/sources/learning-sessions-cloud-transformation-programme-20230808-183322-meeting-recordi.md — source missing)
- [2026-04-20] [ctp-topic-16-cross-account-terraform-modules](sources/ctp-topic-16-cross-account-terraform-modules.md) — (expected: wiki/sources/ctp-topic-16-cross-account-terraform-modules.md — source missing)
- [2026-04-20] [learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording](sources/learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording.md) — (expected: wiki/sources/learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording.md — source missing)
- [2026-04-19] [ctp-topic-48-terraform-vs-terragrunt](sources/ctp-topic-48-terraform-vs-terragrunt.md) — (expected: wiki/sources/ctp-topic-48-terraform-vs-terragrunt.md — source missing)
- [2026-04-19] [public-cloud-learning-sessions-opentext-ai-use-cases-20241126-160106-meeting-rec](sources/public-cloud-learning-sessions-opentext-ai-use-cases-20241126-160106-meeting-rec.md) — (expected: wiki/sources/public-cloud-learning-sessions-opentext-ai-use-cases-20241126-160106-meeting-rec.md — source missing)
- [2026-04-19] [public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091](sources/public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091.md) — (expected: wiki/sources/public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091.md — source missing)
- [2026-04-19] [public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111](sources/public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111.md) — (expected: wiki/sources/public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111.md — source missing)
- [2026-04-19] [public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091](sources/public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091.md) — (expected: wiki/sources/public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091.md — source missing)
- [2026-04-19] [public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee](sources/public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee.md) — (expected: wiki/sources/public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee.md — source missing)
- [Your-AI-Isn-t-Stupid---It-Just-Needs-a-Better-Harness--Lychee-Technology-Engineering-Blog](sources/Your-AI-Isn-t-Stupid---It-Just-Needs-a-Better-Harness--Lychee-Technology-Engineering-Blog.md) — (expected: wiki/sources/Your-AI-Isn-t-Stupid---It-Just-Needs-a-Better-Harness--Lychee-Technology-Engineering-Blog.md — source missing)
- [Expose-hermes-agent-as-an-OpenAI-compatible-API-for-any-frontend](sources/Expose-hermes-agent-as-an-OpenAI-compatible-API-for-any-frontend.md) — (expected: wiki/sources/Expose-hermes-agent-as-an-OpenAI-compatible-API-for-any-frontend.md — source missing)
- [zk-steward](sources/zk-steward.md) — (expected: wiki/sources/zk-steward.md — source missing)
@@ -543,6 +543,7 @@
- [Alertmanager](entities/Alertmanager.md)
- [Alex-Ewerlof](entities/Alex-Ewerlof.md)
- [Alex-Finn](entities/Alex-Finn.md)
- [Amazon-API-Gateway](entities/Amazon-API-Gateway.md)
- [Amazon-Aurora](entities/Amazon-Aurora.md)
- [Amazon-CloudWatch-Logs](entities/Amazon-CloudWatch-Logs.md)
- [Amazon-DocumentDB](entities/Amazon-DocumentDB.md)
@@ -559,10 +560,13 @@
- [Apache-Superset](entities/Apache-Superset.md)
- [Asana](entities/Asana.md)
- [Ashish](entities/Ashish.md)
- [Atlantis](entities/Atlantis.md)
- [AWS](entities/AWS.md)
- [AWS-CloudFormation-StackSets](entities/AWS-CloudFormation-StackSets.md)
- [AWS-Lambda](entities/AWS-Lambda.md)
- [AWS-OpenSearch](entities/AWS-OpenSearch.md)
- [AWS-Organizations](entities/AWS-Organizations.md)
- [AWS-Step-Functions](entities/AWS-Step-Functions.md)
- [Axton](entities/Axton.md)
- [Azure](entities/Azure.md)
- [baoyu](entities/baoyu.md)
@@ -628,6 +632,7 @@
- [GoogleCloud](entities/GoogleCloud.md)
- [Grafana](entities/Grafana.md)
- [Gruntwork](entities/Gruntwork.md)
- [HashiCorp](entities/HashiCorp.md)
- [Heather-Norris](entities/Heather-Norris.md)
- [hello-world](entities/hello-world.md)
- [HemantSawant](entities/HemantSawant.md)
@@ -713,6 +718,7 @@
- [rsync](entities/rsync.md)
- [Rufus](entities/Rufus.md)
- [RustDesk](entities/RustDesk.md)
- [SAM-Serverless-Application-Model](entities/SAM-Serverless-Application-Model.md)
- [SankarGopov](entities/SankarGopov.md)
- [shenwei](entities/shenwei.md)
- [Simon-Hoiberg](entities/Simon-Hoiberg.md)
@@ -730,6 +736,7 @@
- [Synology-NAS-DS718](entities/Synology-NAS-DS718.md)
- [Telnyx](entities/Telnyx.md)
- [Terraform](entities/Terraform.md)
- [Terragrunt](entities/Terragrunt.md)
- [Tiago-Forte](entities/Tiago-Forte.md)
- [tini](entities/tini.md)
- [Todoist](entities/Todoist.md)
@@ -821,6 +828,7 @@
- [Business-Knowledge-Base](concepts/Business-Knowledge-Base.md)
- [caffeinate](concepts/caffeinate.md)
- [Call-Worthy-Threshold](concepts/Call-Worthy-Threshold.md)
- [Canary-Deployment](concepts/Canary-Deployment.md)
- [Canary-Release](concepts/Canary-Release.md)
- [Canvas](concepts/Canvas.md)
- [CAPA](concepts/CAPA.md)
@@ -877,6 +885,7 @@
- [Credit-Efficient-Processing](concepts/Credit-Efficient-Processing.md)
- [Cron定时任务](concepts/Cron定时任务.md)
- [Cross-Account-Monitoring](concepts/Cross-Account-Monitoring.md)
- [Cross-account-Terraform-Modules](concepts/Cross-account-Terraform-Modules.md)
- [Cumulative-Memory](concepts/Cumulative-Memory.md)
- [Custom-Instructions](concepts/Custom-Instructions.md)
- [Daily-Digest](concepts/Daily-Digest.md)
@@ -904,6 +913,7 @@
- [Docker警告处理](concepts/Docker警告处理.md)
- [DORA-Metrics](concepts/DORA-Metrics.md)
- [DRaaS](concepts/DRaaS.md)
- [DRY-Principle](concepts/DRY-Principle.md)
- [DRY原则](concepts/DRY原则.md)
- [DuckDB](concepts/DuckDB.md)
- [Dynamic-Dashboard](concepts/Dynamic-Dashboard.md)
@@ -923,6 +933,7 @@
- [Error-Budget](concepts/Error-Budget.md)
- [Error-Surface-vs-Root-Cause](concepts/Error-Surface-vs-Root-Cause.md)
- [Event-Correlation](concepts/Event-Correlation.md)
- [Event-Driven-Architecture](concepts/Event-Driven-Architecture.md)
- [EventSourcing](concepts/EventSourcing.md)
- [Expert-User-Assumption](concepts/Expert-User-Assumption.md)
- [Exporter](concepts/Exporter.md)

View File

@@ -1,3 +1,70 @@
## [2026-05-05] ingest | CTP Topic 16 Cross-account Terraform modules
- Source file: Cloud & DevOps/Public-Cloud-Learning-Sessions/03_Terraform/ctp-topic-16-cross-account-terraform-modules.md
- Status: ✅ 成功摄入
- Summary: Fibos 主讲,多账号 AWS 环境中跨账号 Terraform 模块的中心化部署方案——基于 Shared Account共享账号作为中转站Jenkins + ECS Deploy Runner + Assume Role 三联动。核心机制Jenkins 检测 `cross-account.json` 标记文件触发 ECS Deploy Runner通过 Assume Role 访问目标账号的 TF state bucket accessor 和 cross-account ECS deploy runner role。三大目标安全性无 Workload 账号间直接信任、自动化Jenkins 自动识别模块类型)、可复用性(模块代码不硬编码特定账号角色)。
- Concepts created: [[Cross-account-Terraform-Modules]]
- Entities created: noneGruntwork 已存在)
- Source page: wiki/sources/ctp-topic-16-cross-account-terraform-modules.md
- Notes: index.md 已替换占位符条目overview.md 已新增独立段落(置于 ECS Deployment 和 Topic 21 之间Entity Jenkins/Fibos 提及次数不足建页阈值,以 wikilink 形式记录于 Source page无实质性内容冲突演进关系记录于 Contradictions 节
## [2026-05-05] ingest | Learning Sessions ECS Deployment using IAC - 20230808
- Source file: Cloud & DevOps/Public-Cloud-Learning-Sessions/03_Terraform/learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording.md
- Status: ✅ 成功摄入
- Summary: JP 和 Raja M 主讲CTP/SRE 团队通过 Terraform IaC 实现 ECS 容器化应用自动化部署——基于 Gruntwork 仓库构建 ECS 模块,支持 Docker 容器/EC2 部署核心功能自动扩缩容、自动故障恢复、金丝雀部署Listener 集中管理方式前置条件VPC/ELB 安全组/EFS 卷挂载;集成 CloudWatch/Splunk/Grafana/Prometheus。ECS 作为 AWS 原生技术与 AWS 服务深度集成。
- Concepts created: [[Canary-Deployment]], [[Infrastructure-as-Code]]
- Entities created: [[Gruntwork]]
- Source page: wiki/sources/learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording.md
- Notes: index.md 已替换占位符条目overview.md 已新增独立段落(置于 Terraform 工具选型后ECS 与 EKS 选型冲突记录于 Contradictions 节JP 和 Raja M 各出现 1 次,不足独立 Entity 建页阈值,以 wikilink 形式记录于 Source page无其他内容冲突
- Conflicts: 与 [[ctp-topic-64-scaling-out-with-amazon-eks]] 在容器编排选型上的差异——ECS 强调 AWS 原生集成EKS 强调可移植性,两者适用于不同场景但可互补
## [2026-05-05] ingest | CTP Topic 48 Terraform vs Terragrunt
- Source file: Cloud & DevOps/Public-Cloud-Learning-Sessions/03_Terraform/ctp-topic-48-terraform-vs-terragrunt.md
- Status: ✅ 成功摄入
- Summary: BobAWS Solutions Architect对比 Terraform 与 Terragrunt——TerraformHashiCorp 出品)是云厂商无关的 Golang 应用通过状态文件绑定期望状态与实际环境Terragrunt 是轻量封装,贯彻 DRY 原则,管理 provider 和 remote_state 块减少跨环境重复声明。两者命令和语法高度一致Terragrunt 通过减少硬编码优化大规模企业部署。辅助工具Terraform Enterprise、Gruntwork、Atlantis、tfsec、Terratest
- Concepts created: [[DRY Principle]], [[State-File-Management]]
- Entities created: [[HashiCorp]], [[Terragrunt]], [[Atlantis]]
- Entities updated: [[Terraform]], [[Gruntwork]]
- Concepts updated: [[Infrastructure-as-Code]]
- Source page: wiki/sources/ctp-topic-48-terraform-vs-terragrunt.md
- Notes: 视频由 Gemini 摘要,原文状态为 "summarized (Gemini 摘要)";来源 NAS 路径为 `/volume2/work/Public Cloud Learning Sessions/CTP _ Topic 48_ Terraform vs Terragrunt.mp4`
## [2026-05-05] ingest | Public Cloud Learning Sessions (OpenText) - AI Use Cases - 20241126 160106
- Source file: Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-ai-use-cases-20241126-160106-meeting-rec.md
- Status: ✅ 成功摄入
- Summary: AWS AI 专家 Stephen Frank 分享 Gen2 AI 发展驱动力(数据爆发+算力提升)、企业级 AI 应用场景(客户体验/洞察提取/流程自动化/内容生成、AWS 三层产品战略基础设施→Bedrock→AI 应用、数据差异化策略RAG/Fine-tuning/持续预训练、Amazon Q 企业知识问答、负责任 AI 原则
- Concepts linked: [[RAG]], [[Fine-Tuning]], [[Continued-Pre-Training]], [[Responsible-AI]]
- Entities linked: [[AWS]], [[Amazon-Bedrock]], [[Amazon-SageMaker]], [[Amazon-Q]], [[Stephen-Frank]]
- Source page: wiki/sources/public-cloud-learning-sessions-opentext-ai-use-cases-20241126-160106-meeting-rec.md
- Notes: index.md 已替换占位符条目(日期修正为 2026-04-14overview.md 已新增独立段落Serverless & AI 专题置于提示工程后RAG/Fine-Tuning/Responsible-AI/Stephen-Frank/Amazon-Q/Amazon-SageMaker 在 wiki 中出现频次不足独立建页阈值,以 wikilink 形式记录于 Source page无内容冲突
- Conflicts: 无
## [2026-05-05] ingest | Public Cloud Learning Sessions (OpenText) - Event Driven Architecture Part 2 - 20240917
- Source file: Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091.md
- Status: ✅ 成功摄入
- Summary: EDA 进阶实践——三组件(事件生产者/消费者/代理、事件路由器EventBridge/SNS与事件存储SQS/Kinesis、编排与编排模式Choreography vs Orchestration、幂等性、事件排序、去中心化团队所有权、Fan-out 模式、竞争消费者模式、死信队列、EventBridge 最佳实践
- Concepts updated: [[Event-Driven-Architecture]](补充 Part 2 内容EDA 三组件、编排模式对比、生产级最佳实践:幂等性/事件排序/团队独立性、扩展 Event PatternsFan-Out/Competing Consumer/DLQ
- Entities existing (no new): [[AWS]], [[Amazon-EventBridge]], [[Amazon-SQS]], [[Amazon-SNS]], [[AWS-Lambda]], [[AWS-Step-Functions]]
- Source page: wiki/sources/public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091.md
- Notes: index.md 已替换占位符条目(日期修正为 2026-05-05overview.md 已添加 Part 2 独立段落(新增于 Serverless 段落和 Part 1 之间),同时更新 Part 1 引用指向 Part 2Event-Driven-Architecture 概念页已更新 sources + last_updated新增 EDA 三组件/编排模式/生产级最佳实践内容,扩展 Event PatternsKinesis-Data-Streams 出现 1 次,不足独立建 Entity 阈值,以 wikilink 形式记录于 Concept 页
- Conflicts: 与 [[ctp-topic-64-scaling-out-with-amazon-eks]] 在扩展方式上的差异——EDA 通过事件驱动异步扩展消费者按需处理EKS 通过容器编排横向扩展Pod 副本数调整),两者适用于不同场景但可互补使用
- Source file: Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091.md
- Status: ✅ 成功摄入
- Summary: EDA 入门——AWS 解决方案架构师 Dr. Anil Giri 介绍 EventBridge/SQS/SNS 事件驱动架构与 Enterprise Integration Patterns会议因 Teams 屏幕共享故障仅完成开场介绍,完整演示参见 Part 2
- Concepts linked: [[Event-Driven-Architecture]], [[Enterprise-Integration-Patterns]], [[Amazon-EventBridge]], [[Amazon-SQS]], [[Amazon-SNS]]
- Entities linked: [[Dr.-Anil-Giri]], [[AWS]], [[OpenText]], [[Micro-Focus]]
- Source page: wiki/sources/public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091.md
- Notes: index.md 已替换占位符条目(日期修正为 2026-04-19overview.md 已补充Serverless & AI 专题段落新增置于无服务器计算后Dr. Anil Giri/AWS/OpenText/Micro Focus 在 wiki 中出现频次不足独立建 Entity 页阈值,以 wikilink 形式记录于 Source pageEventBridge/SQS/SNS/Enterprise-Integration-Patterns 概念频次不足独立建 Concept 页阈值;已建立与 Part 2public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091、无服务器计算public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee的 Connections 关系;冲突记录与 ctp-topic-64-scaling-out-with-amazon-eks 的扩展方式差异已记录于 Contradictions 节
- Conflicts: 与 [[ctp-topic-64-scaling-out-with-amazon-eks]] 在扩展方式上的差异——EDA 通过事件驱动异步扩展EKS 通过容器编排横向扩展,两者适用于不同场景但可互补使用
## [2026-05-05] ingest | Public Cloud Learning Sessions - Serverless Computing - 20240903
- Status: ✅ 成功摄入
- Summary: AWS 无服务器计算深度解析——Lambda 事件驱动模型(同步/异步/事件源映射、Step Functions 状态机编排Standard/Express、API Gateway边缘优化/区域/私有、SAM 本地开发和部署Serverless 业务价值(快速上市/按需付费/自动扩展/内置安全AWS 与客户共担运维责任
- Entities created: [[AWS-Lambda]], [[AWS-Step-Functions]], [[Amazon-API-Gateway]], [[SAM-Serverless-Application-Model]]
- Concepts linked: [[Serverless-Computing]], [[Event-Driven-Architecture]]
- Source page: wiki/sources/public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee.md
- Notes: index.md 已更新(替换占位符条目,日期修正为 2026-04-14overview.md 已补充Cloud Transformation & DevOps 章节新增独立段落,置于 AI/ML 入门与 CTP Topic 20 之间Entity 页均按字母顺序插入 index.md Entities 节无内容冲突Serverless-Computing 概念页已存在,内容一致)
- Conflicts: 无
## [2026-05-05] ingest | Public Cloud Learning Sessions - Introduction to AI/ML with AWS
- Source file: Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin.md
- Status: ✅ 成功摄入
@@ -2512,4 +2579,19 @@
- overview.md 更新:新增条目于 Cloud Transformation & DevOps 章节 FinOps 知识链路
- RightSizing/Cloud Cost Optimization 已通过 wikilink 嵌入 Source page
- Key Entities: PCG (Platform Control Group) 已在 Wiki 中存在ctp-topic-13无需新建 Entity 页面
- 冲突检测未发现内容冲突Contradictions 暂置空占位
- 冲突检测未发现内容冲突Contradictions 暂置空占位
## [2026-05-06] ingest | Public Cloud Learning Sessions (OpenText) - Generative AI & Prompt Engineering - 20241112
- Source file: Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111.md
- Status: ✅ 成功摄入
- Summary: AWS 生成式 AI 服务与提示工程实践,由 OpenText 技术客户经理 Shikad Holtzman以色列主讲——生成式 AI 四大价值路径、企业数据差异化核心洞见、Amazon Bedrock 全托管基础模型服务RAG/微调/Agents/Guardrails、Amazon Q 助手(企业版/开发者版、AWS 专用芯片Trainium/Inferentia、提示工程四组件指令/上下文/用户输入/输出指示器和基础技巧One-shot/Few-shot、Chain of Thoughts
- Concepts linked: [[RAG]], [[Prompt-Engineering]], [[Chain-of-Thought]], [[One-Shot-Prompting]], [[Few-Shot-Prompting]], [[Responsible-AI]], [[Guardrails-for-Amazon-Bedrock]]
- Entities linked: [[Shikad-Holtzman]], [[Amazon-Bedrock]], [[Amazon-SageMaker]], [[Amazon-Q]], [[AWS-Trainium]], [[AWS-Inferentia]], [[AWS]]
- Source page: wiki/sources/public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111.md
- Notes:
- index.md 已更新:将原 expected placeholder 更新为正式条目2026-04-19补充中文摘要
- overview.md 已更新:在 Cloud Transformation & DevOps 章节的 AI/ML 入门条目后新增独立段落,与 AI/ML 入门共同构成生成式 AI 知识链路
- Key ConceptsRAG/Prompt-Engineering/Chain-of-Thought/Few-Shot-Prompting 频次不足独立建 Concept 页阈值,以 wikilink 形式记录于 Source page
- Key EntitiesShikad Holtzman 仅出现 1 次,以 wikilink 形式记录于 Source pageAmazon Bedrock/Q/SageMaker 在同系列其他来源中提及频次不足独立建 Entity 页阈值
- 同系列来源关联:已建立与 AI/ML 入门public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin和无服务器计算public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee的 Connections 关系
- 冲突检测:与 ctp-topic-64-scaling-out-with-amazon-eks 在扩展方式上的差异已记录于 Source page ContradictionsEDA 事件驱动 vs EKS 容器编排,适用于不同场景可互补)

View File

@@ -53,7 +53,13 @@ Cloud Transformation Programme (CTP) materials cover AWS landing zones, EKS, Ter
**[[ctp-topic-15-working-with-renovatebot]]**CTP Topic 15Paul Hopkins 主讲 Renovate Bot 自动化依赖项更新——解决"依赖地狱"问题,实时扫描 Docker 镜像/Terraform 模块/Terragrunt 配置/pre-commit 钩子等版本标签,自动发起 Pull Request通过 Dependency Dashboard 提供全局依赖状态视图;集成 Jenkins 流水线,使用 Podman 容器化运行并配置 Rate Limiting 避免 PR 风暴;提升基础设施安全性(及时修复漏洞)和配置一致性。属 [[GitOps]] 和 [[CI/CD Pipeline]] 的依赖治理层,与 [[ctp-topic-9-ci-cd-with-gruntwork]]Gruntwork CI/CD和 [[ctp-topic-33-an-introduction-to-gitops]]GitOps 入门)共同构成完整的 IaC 知识链路。
**[[ctp-topic-56-automated-infrastructure-testing]]**CTP Topic 56Mark Francis 主讲自动化基础设施测试——将软件测试原则应用于 Terraform IaC 代码,通过 TerraTestGolang 框架)实现 apply → test → destroy 自动化验证循环。核心主张集成测试超越语法检查验证实际部署行为是否符合预期倡导测试驱动开发TDD应用于 IaC 领域,先写测试再实现功能;提议将测试编写作为基础设施开发的首要步骤,移除手动验证,追求自动化验证套件和更高的部署信心。核心价值观:"让机器做重复的事,把人脑留给复杂的人类问题"。属 [[GitOps]] 和 [[CI/CD Pipeline]] 的质量保障层,与 [[ctp-topic-33-an-introduction-to-gitops]]GitOps 概念)和 [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]Atlantis 工具)共同构成完整的 IaC 质量保障链路
**[[ctp-topic-56-automated-infrastructure-testing]]**CTP Topic 56Mark Francis 主讲自动化基础设施测试——将软件测试原则应用于 Terraform IaC 代码,通过 TerraTestGolang 框架)实现 apply → test → destroy 自动化验证循环。核心主张集成测试超越语法检查验证实际部署行为是否符合预期倡导测试驱动开发TDD应用于 IaC 领域,先写测试再实现功能;提议将测试编写作为基础设施开发的首要步骤,移除手动验证,追求自动化验证套件和更高的部署信心。核心价值观:"让机器做重复的事,把人脑留给复杂的人类问题"。属 [[GitOps]] 和 [[CI/CD Pipeline]] 的质量保障层,与 [[ctp-topic-33-an-introduction-to-gitops]]GitOps 概念)和 [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]Atlantis 工具)共同构成 IaC 知识体系
**[[ctp-topic-48-terraform-vs-terragrunt]]**CTP Topic 48BobAWS Solutions Architect对比 Terraform 与 Terragrunt——TerraformHashiCorp 出品)是云厂商无关的 Golang 应用通过状态文件将期望状态与实际环境绑定企业级使用须将状态文件存储在安全可访问位置Terragrunt 是 Terraform 的轻量封装,贯彻 DRY 原则,通过管理 provider 和 remote_state 块减少跨环境的重复声明。两者命令和语法高度一致(`terraform plan` = `terragrunt plan`Terragrunt 通过减少硬编码来优化大规模企业部署。辅助工具Terraform EnterpriseCI 平台 + workspaces、Gruntwork预建可定制模块、AtlantisGit 集成、tfsec静态安全分析、TerratestIaC 测试自动化)。属 [[Infrastructure As Code]] 工具选型层,与 [[ctp-topic-3-deploy-and-maintain-infrastructure]]Terragrunt HCL和 [[ctp-topic-56-automated-infrastructure-testing]]Terratest共同构成 Terraform 生态知识链路。
**本条新增Learning Sessions ECS Deployment using IAC**2023-08-08JP 和 Raja M 主讲CTP/SRE 团队通过 Terraform IaC 实现 ECS 容器化应用自动化部署——基于 Gruntwork 仓库构建的 ECS 模块,将 Docker 容器作为逻辑单元,支持 EC2 实例部署;核心功能:自动扩缩容、自动故障恢复、金丝雀部署;通过 Listener 方式集中管理(避免各产品团队重复下载 Gruntwork 代码);前置条件包括 VPC、ELB 安全组和 EFS 卷挂载;集成 CloudWatch/Splunk/Grafana/Prometheus。ECS 作为 AWS 原生技术与 AWS 服务深度集成,适合追求简单性和紧密集成的场景;属 [[Infrastructure-as-Code]] 在 ECS 场景的实践,与 [[ctp-topic-70-eks-deployment-using-iac]]EKS IaC 部署)构成容器编排双路径,与 [[ctp-topic-9-ci-cd-with-gruntwork]]Gruntwork CI/CD共享 Gruntwork 基础设施基础。与 [[ctp-topic-67-cloud-native-observability-using-opentelemetry]] 在可观测性集成方面关联ECS 模块集成 CloudWatch/Grafana
**[[ctp-topic-16-cross-account-terraform-modules]]**CTP Topic 16Fibos 主讲,多账号 AWS 环境中跨账号 Terraform 模块的中心化部署方案——解决原有 Gruntwork 流水线主要针对单账号设计、账号间直接互访存在安全风险Blast Radius的问题。核心架构基于 **Shared Account共享账号** 作为中转站Jenkins 托管于 Shared Account检测到模块目录中 `cross-account.json` 标记文件后触发 **ECS Deploy Runner**ECS 上的 Docker 容器);该 Runner 通过 Assume Role 访问目标账号的两个角色——`TF state bucket accessor`(读取状态文件)和 `cross-account ECS deploy runner role`(执行资源部署);角色切换逻辑在根目录 `terragrunt.hcl` 中全局配置。实现三大目标:**安全性**(无 Workload 账号间直接信任)、**自动化**Jenkins 自动识别模块类型)、**可复用性**(模块代码不硬编码特定账号角色)。属 [[Infrastructure-as-Code]] 在多账号场景的进阶实践,与 [[ctp-topic-9-ci-cd-with-gruntwork]](单账号流水线)构成演进关系,与 [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]Atlantis 跨账号角色)共享 Assume Role 机制但执行载体不同ECS 容器 vs EC2与 [[ECS Deploy Runner]](实体)共同构成跨账号部署完整链路。
**[[ctp-topic-21-supply-chain-security-in-micro-focus]]**CTP Topic 21
@@ -185,7 +191,17 @@ Key concepts: [[Process]], [[Value]], [[Value-Stream]], [[Value-Adding]], [[Wast
**[[public-cloud-learning-sessions-best-practices-for-ec2-cost-optimization-in-aws-2]]**Public Cloud Learning SessionsMike Dukes 和 Steele Taylor 主讲AWS EC2 成本优化最佳实践深度解析——核心主题覆盖计算效率、Nitro 系统、Graviton 使用、EC2 Spot 竞价实例和容器化成本部署。AWS Nitro 系统通过将网络、存储和安全组件外部化来提升效率Graviton 处理器基于 ARM64 架构,提供高达 40% 更好的性价比,功耗比同等 x86 实例减少高达 60%EC2 Spot 实例利用 AWS 闲置容量提供高达 90% 的按需价格折扣;购买选项包括 On-Demand、Savings Plans 和 Spot Instances。Spot Invaders 游戏作为容错混沌工程的实践案例,展示了在 EKS 上使用 Spot 实例构建弹性应用的最佳实践。Graviton 适用于大多数工作负载Web 服务、容器、HPC 批处理、大数据、CI/CD但排除有状态服务如数据库Spot 和 Graviton 可组合使用以最大化成本节省。属 [[FinOps云财务管理]] 技术实践层,与 [[public-cloud-learning-sessions-reducing-cloud-costs-20250318-170100-meeting-reco]](成本优化技术)和 [[ctp-topic-13-cloud-finops-policies]](政策框架)共同构成完整的 EC2 成本优化知识链路。
**[[public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin]]**Public Cloud Learning SessionsAWS 高级解决方案架构师 Suraav Paul 主讲AWS AI/ML 与生成式 AI 入门——AI 复制需要人类智能的任务,通过机器学习使用数据创建决策模型;分类 AI 识别模式,预测 AI 预判趋势,生成式 AI 利用基础模型Foundation Models创造内容。Amazon 在 ML 领域深耕 20 年AWS 在四大领域帮助客户应用 AI提升客户体验、实现更优决策、改善运营、创造新产品。Amazon Bedrock 是全托管生成式 AI 服务,提供 Titan 等多种基础模型支持微调、持续预训练、RAG 和 Bedrock Agents 等数据定制技术Guardrails for Bedrock 提供负责任 AI 安全护栏。ML Ops 将机器学习与运维融合,涵盖数据流水线(数据收集/集成/准备)、训练流水线(特征工程/模型训练/超参调优)和推理流水线(部署/监控)。属 Cloud Transformation Programme 的 Serverless & AI 专题入门,与 [[public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111]]Prompt Engineering和 [[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]](无服务器计算)共同构成 Serverless & AI 知识链路。
**[[public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin]]**Public Cloud Learning SessionsAWS 高级解决方案架构师 Suraav Paul 主讲AWS AI/ML 与生成式 AI 入门——AI 复制需要人类智能的任务,通过机器学习使用数据创建决策模型;分类 AI 识别模式,预测 AI 预判趋势,生成式 AI 利用基础模型Foundation Models创造内容。Amazon 在 ML 领域深耕 20 年AWS 在四大领域帮助客户应用 AI提升客户体验、实现更优决策、改善运营、创造新产品。Amazon Bedrock 是全托管生成式 AI 服务,提供 Titan 等多种基础模型支持微调、持续预训练、RAG 和 Bedrock Agents 等数据定制技术Guardrails for Bedrock 提供负责任 AI 安全护栏。ML Ops 将机器学习与运维融合,涵盖数据流水线(数据收集/集成/准备)、训练流水线(特征工程/模型训练/超参调优)和推理流水线(部署/监控)。属 Cloud Transformation Programme 的 Serverless & AI 专题入门,与 [[public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111]]Generative AI & Prompt EngineeringOpenText 技术客户经理 Shikad Holtzman 主讲)和 [[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]](无服务器计算)共同构成 Serverless & AI 知识链路。
**[[public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111]]**Public Cloud Learning SessionsOpenText 技术客户经理 Shikad Holtzman 主讲AWS 生成式 AI 服务与提示工程实践——Shikad Holtzman 阐述生成式 AI 四大价值路径(新体验/员工生产力/洞察提取/创造力激发),涵盖客服聊天机器人、代码生成摘要、文档处理和图像生成等行业场景;核心洞见:**企业数据是差异化关键**,通过 Amazon Bedrock 连接自有数据(无需重训练)即可构建专属生成式 AI 应用,且 Bedrock 保证用户数据与提示词绝不与模型提供商共享。Amazon Bedrock 提供来自 Anthropic/Meta/Amazon Titan 的多种基础模型(含多模态),内置 RAG 知识库、微调、Agents 和 Guardrails for Bedrock 自定义有害内容过滤Amazon Q 分企业版(多数据源搜索/摘要)和开发者版(代码生成/单元测试/代码迁移AWS 专用训练芯片 Trainium 和推理芯片 Inferentia 支撑底层算力。提示工程Prompt Engineering是创建、设计和优化提示词引导 LLM 响应的迭代过程,提示由指令、上下文、用户输入和输出指示器四部分组成;基础技巧包括 One-shot/Few-shot通过示例引导和 Chain of Thoughts逐步推理解决复杂任务。属 Cloud Transformation Programme 的 Serverless & AI 专题,与 [[public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin]]AI/ML 入门)共同构成生成式 AI 知识链路。
**[[public-cloud-learning-sessions-opentext-ai-use-cases-20241126-160106-meeting-rec]]**Public Cloud Learning SessionsAWS AI 专家 Stephen Frank 主讲AWS Gen2 AI 发展驱动力与企业在生产中的 AI 应用场景——Stephen Frank 阐述 AI 演进历程(模仿人类行为 → 机器学习 → 深度学习 → Gen2 大语言模型Gen2 AI 崛起背后的两大驱动力2000 年代以来数据爆发式增长和更大算力的可获得性。Amazon 在核心产品和服务中应用 AI/ML 已 25 年,将经验应用于新客户产品。通用 AI 应用场景:创造新客户体验、从数据中推断核心洞察、流程自动化、生成新内容;企业软件场景:优化内部流程、启用新功能、创造新产品。**数据是差异化关键**——生成式 AI 应用通过 RAG / Fine-tuning / 持续预训练与企业现有业务数据集成。AWS 三层产品战略:基础设施层(基础模型训练/推理)→ Amazon Bedrock旗舰 API 访问,承诺不与第三方共享用户数据,符合 GDPR→ 即用型 AI 应用Amazon Q 等。Amazon Bedrock 保证用户数据与提示词不与第三方模型提供商共享Amazon Q 通过自然语言连接多种企业数据源(知识摘要/内容创建/洞察提取。AI 实施关键:培育实验文化、灵活选择模型、重视安全治理与合规;负责任 AI 原则公平性Fairness、可解释性Explainability、透明度Transparency最佳实践优先考虑人、评估风险、迭代全生命周期。属 Cloud Transformation Programme 的 Serverless & AI 专题,与 [[public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin]]AI/ML 入门)和 [[public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111]](提示工程)共同构成完整的 AI 知识链路。
**[[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]]**Public Cloud Learning SessionsOpenTextAWS 无服务器计算深度解析——现代企业面临快速创新、安全合规、事件响应和盈利增长的多重压力Serverless 计算通过将运维任务转移给云厂商使开发团队专注业务代码。AWS Lambda 是核心服务开发者只需编写业务逻辑AWS 负责负载均衡、自动扩展和安全函数由事件状态变化触发支持同步、异步和事件源映射三种调用模式Lambda 权限模型分离执行角色(决定函数能调用哪些资源)和资源策略(决定谁能触发函数),版本、别名和 Layers 支持代码管理和复用ARM64 架构提供更优性价比。Step Functions 基于状态机编排多个 Lambda 函数和 AWS 服务,提供 Standard长时和 Express高频两种工作流类型API Gateway 提供边缘优化、区域和私有三种部署选项管理 API 生命周期SAMServerless Application Model基于 CloudFormation 构建,支持本地开发和测试。属 Cloud Transformation Programme 的 Serverless & AI 专题,与 [[public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin]]AI/ML 入门)共同构成 Serverless & AI 知识链路,与 [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091]](事件驱动架构 Part 1和 [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]](事件驱动架构 Part 2共享事件驱动执行模型。
**[[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]]**Public Cloud Learning SessionsAWS 解决方案架构师 Dr. Anil Giri 主讲事件驱动架构EDA进阶实践——详解 EDA 三组件(事件生产者/消费者/代理、事件路由器EventBridge/SNS与事件存储SQS/Kinesis、编排与编排模式Choreography vs Orchestration、幂等性Idempotency、事件排序SQS FIFO/Kinesis 保证顺序)、团队独立性(去中心化所有权 vs 集中式所有权、Fan-out 模式SNS 主题/EventBridge 规则、竞争消费者模式SQS、死信队列DLQ和 EventBridge 最佳实践(每个订阅者单条规则、避免默认事件总线、失败事件处理)。核心洞见:**"Everything fails every time"**——任何系统任何时刻都可能故障,因此幂等性和 DLQ 是 EDA 生产级落地的必要保障。属 Cloud Transformation Programme 的 Serverless & AI 专题进阶篇,与 [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091]]Part 1构成完整 EDA 知识体系,与 [[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]](无服务器计算)共享 Lambda 事件驱动执行模型。
**[[public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091]]**Public Cloud Learning SessionsAWS 解决方案架构师 Dr. Anil Giri 主讲事件驱动架构EDA入门与概述——核心学习目标掌握企业级集成模式Enterprise Integration Patterns通过 Amazon EventBridge、SQS 和 SNS 探索事件驱动架构以解决现实世界中的业务挑战。会议原定演示具体 EDA 架构组件,但因 Teams 屏幕共享故障,仅完成开场介绍(⚠️ 完整演示内容参见 [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]])。属 Cloud Transformation Programme 的 Serverless & AI 专题,与 [[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]](无服务器计算)共享事件驱动执行模型,共同构成 Serverless & AI 知识链路。
**[[ctp-topic-20-program-demand-process-flow-and-poc-onboarding]]**CTP Topic 20云转型计划的程序需求流程与 POC 入职流程——Sergio 和 Damian 主讲。核心内容①需求来源——主要由业务案例如数据中心关闭、高层管理人员战略优先级及产品路线图驱动②Gate Process——Gate 0 评估准入、Gate 1 负责 Design Authority 审批、Gate 3 作为启动迁移的最终准入③POC 目的——不仅验证架构和技术可行性,还包括让团队熟悉基于 Gruntwork 的新一代 Landing Zone④新环境特点——强调 IaCTerraform/Terragrunt自动化部署严禁手动构建⑤PCG 团队——平台控制组,负责提供云环境支持、安全策略制定及协助产品组进行 POC⑥成功标准——POC 成功标准必须在启动前明确定义。属 CTP 治理知识体系入口,与 [[ctp-topic-65]](价值量化)、[[ctp-topic-57]](需求管理)、[[ctp-topic-30]](变更管理)共同构成完整的治理框架链条。

View File

@@ -0,0 +1,55 @@
---
title: "CTP Topic 16 Cross-account Terraform modules"
type: source
tags: [Terraform, Cross-Account, Modules, CTP, IaC, DevOps, AWS-Landing-Zone]
date: 2026-04-14
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/03_Terraform/ctp-topic-16-cross-account-terraform-modules]]
## Summary用中文描述
- 核心主题:**跨账号 Terraform 模块的中心化部署方案**,解决多账号 AWS 环境中一个模块内跨账号创建资源的安全与自动化问题
- 问题域:原有的 Gruntwork 流水线针对单账号设计,在多账号场景下存在安全风险(一账号被攻破可能波及全局)
- 方法/机制:基于 **Shared Account共享账号** 的中心化部署架构Jenkins + ECS Deploy Runner + Assume Role 三者联动
- 结论/价值实现安全性账号间无直接信任关系、自动化Jenkins 自动识别跨账号模块)、可复用性(模块代码不硬编码特定账号角色)
## Key Claims用中文描述
- **Shared Account 作为中转站**Jenkins 托管在 Shared Account当检测到 `cross-account.json` 标记文件时触发 ECS Deploy Runner
- **Assume Role 双角色机制**ECS Deploy Runner 通过 Assume Role 访问目标账号的两个角色——`TF state bucket accessor`(读取状态文件)和 `cross-account ECS deploy runner role`(执行资源部署)
- **Blast Radius 控制**:避免 Workload 账号之间直接互访,权限控制在受严格审计的 Shared Account
- **Terragrunt HCL 全局配置**:通过根目录 `terragrunt.hcl` 定义远程状态存储和角色切换逻辑,支持本地开发与 Jenkins 自动部署的差异化角色处理
## Key Quotes
> "Cross-account Terraform Modules 指在一个模块内通过配置多个 Provider实现在多个 AWS 账号中同时创建或管理资源的功能" — Fibos核心概念定义
> "Shared Account 是整个 Landing Zone 的核心管理账号,托管 Jenkins、镜像仓库等公共服务并作为跨账号部署的信任源" — Fibos架构定位
> "ECS Deploy Runner 运行在 ECS 上的 Docker 容器,负责执行 Terraform plan 和 apply 命令,是流水线中的实际执行单元" — FibosEDR 定义
## Key Concepts
- [[Cross-account Terraform Modules]]:在一个 Terraform 模块中通过配置多个 Provider实现在多个 AWS 账号中同时创建或管理资源的功能
- [[Shared Account]]Landing Zone 核心管理账号,托管 Jenkins 及公共服务,作为跨账号部署的信任源
- [[ECS Deploy Runner]]:运行在 ECS 上的 Docker 容器,负责执行 Terraform plan/apply是流水线的实际执行单元
- [[TF State Bucket Accessor]]:专门定义的 IAM 角色,仅允许部署工具访问目标账号 S3 桶中的 Terraform 状态文件
- [[Cross-account ECS Deploy Runner Role]]:部署在目标账号中的角色,允许 Shared Account 的执行器通过 Assume Role 获取资源创建权限
- [[cross-account.json]]:约定俗成的标记文件,放置于模块目录中,用于告知 Jenkins 该模块需要调用跨账号部署逻辑
- [[Root Terragrunt HCL]]:全局 Terragrunt 配置文件,定义远程状态存储和角色切换逻辑
## Key Entities
- **Fibos**:主讲人,分享了团队基于 Shared Account 的跨账号 Terraform 部署方案
- **Gruntwork**:参考架构来源,原有 Gruntwork 流水线主要针对单账号设计
- **Jenkins**CI/CD 引擎,托管在 Shared Account负责检测模块类型并触发部署流程
- **AWS Landing Zone**多账号架构框架Shared Account + Workload Account 的分层设计
## Connections
- [[ctp-topic-9-ci-cd-with-gruntwork]] ← foundation ← [[ctp-topic-16-cross-account-terraform-modules]]
- [[ECS Deploy Runner]] ← depends_on ← [[Shared Account]]
- [[Cross-account Terraform Modules]] ← uses ← [[ECS Deploy Runner]]
- [[ECS Deploy Runner]] ← assumes ← [[Cross-account ECS Deploy Runner Role]]
- [[ECS Deploy Runner]] ← reads_state ← [[TF State Bucket Accessor]]
- [[Root Terragrunt HCL]] ← configures ← [[Cross-account Terraform Modules]]
- [[ctp-topic-48-terraform-vs-terragrunt]] ← related ← [[Root Terragrunt HCL]]
- [[AWS-Landing-Zone]] ← enables ← [[Shared Account]]
## Contradictions
- 与 [[ctp-topic-9-ci-cd-with-gruntwork]](单账号 Gruntwork 流水线):原有 Gruntwork 流水线主要针对单账号设计,不处理跨账号场景;本方案通过 Shared Account 中心化架构扩展支持多账号,同时保留 Gruntwork 模块复用优势。两者为演进关系而非冲突。
- 与 [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]Atlantis 替代 JenkinsAtlantis 在 merge 前应用变更,每个 Landing Zone 部署单台 EC2 实例;本方案的 ECS Deploy Runner 运行在容器中更适合跨账号大规模部署。Atlantis 的跨账号访问通过各账户 IAM 角色实现,与本方案 Assume Role 机制类似,但执行载体不同。

View File

@@ -0,0 +1,55 @@
---
title: "CTP Topic 48 Terraform vs Terragrunt"
type: source
tags:
- Terraform
- Terragrunt
- IaC
- DevOps
- CTP
date: 2026-04-14
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/03_Terraform/ctp-topic-48-terraform-vs-terragrunt.md]]
## Summary用中文描述
- 核心主题Terraform 与 Terragrunt 的对比选型,涵盖企业级 IaC 实践
- 问题域:多环境配置管理、基础设施代码复用、状态文件管理
- 方法/机制Terraform 作为核心 IaC 工具云厂商无关Terragrunt 作为 Terraform 的 DRY 封装层,处理跨环境变量和远程状态的重复声明
- 结论/价值Terraform 与 Terragrunt 命令和语法高度一致,但 Terragrunt 通过减少硬编码、提升可复用性来优化大规模企业部署;两者可互补使用
## Key Claims用中文描述
- TerraformHashiCorp 出品)通过状态文件将期望状态与现有环境绑定,企业级使用须将状态文件存储在安全可访问的位置
- Terragrunt 是 Terraform 的轻量封装,贯彻 DRY 原则,通过管理 provider 和 remote_state 块减少跨环境的重复声明
- Terraform Enterprise 提供带 workspace 的 CI 平台Gruntwork 提供预建可定制模块Atlantis 实现 Git 驱动的自动化部署
- tfsec 用于静态代码安全分析Terratest 用于基础设施测试自动化
## Key Quotes
> "Terraform ties the desired state to the existing environment using a state file. For enterprise-scale use, storing this file in a safe, accessible location is crucial." — Bob, AWS Solutions Architect
> "Terragrunt offers a way to use information in a repeatable way without hard coding values." — Bob
> "All Terraform commands work with Terragrunt; a Terraform plan becomes a Terragrunt plan." — Bob
## Key Concepts
- [[Infrastructure As Code]]:通过代码定义和版本控制基础设施资源的实践
- [[DRY Principle]]Don't Repeat Yourself — 避免重复配置,通过抽象层复用
- [[State File Management]]Terraform 用状态文件绑定期望状态与实际环境
- [[IaC Testing]]:用 Terratest 等工具对基础设施代码进行自动化测试
## Key Entities
- [[HashiCorp]]Terraform 创立公司,提供多云基础设施编排工具
- [[Gruntwork]]:提供预建可定制的 Terraform 模块和 Terraform 原生 AWS Landing Zone
- [[Atlantis]]:将 Terraform 与 GitHub 集成的开源 CI/CD 工具
- [[Terraform]]:云厂商无关的基础设施即代码工具
- [[Terragrunt]]Terraform 的 DRY 封装层,管理多环境配置
## Connections
- [[Terraform]] ← uses ← [[State File Management]]
- [[Terragrunt]] ← wraps ← [[Terraform]]
- [[Terraform]] ← provided_by ← [[HashiCorp]]
- [[Gruntwork]] ← provides_modules_for ← [[Terraform]]
- [[Atlantis]] ← integrates_with ← [[Terraform]]
- [[Terraform]] ← related_concept ← [[Infrastructure As Code]]
## Contradictions
- 暂无发现与其他 Wiki 页面的直接冲突

View File

@@ -0,0 +1,52 @@
---
title: "Learning Sessions ECS Deployment using IAC - 20230808"
type: source
tags: [AWS, ECS, IaC, Terraform, CTP]
date: 2023-08-08
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/03_Terraform/learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording.md]]
## Summary用中文描述
- 核心主题:通过 IaCTerraform实现 ECSElastic Container Service容器化应用的自动化部署由 JP 和 Raja M 主讲
- 问题域:企业在云端部署容器化应用时面临的不可预测性、敏捷性需求,以及 ECS 与 EKS/Kubernetes 的选型权衡
- 方法/机制CTP/SRE 团队基于 Gruntwork 仓库构建的 Terraform ECS 模块,支持 Docker 容器创建、自动扩缩容、自动故障恢复和金丝雀部署;通过 Listener 方式集中管理 ECS配置文件支持 YAML/JSON集成 CloudWatch、Splunk、Grafana、Prometheus
- 结论/价值ECS 作为 AWS 原生技术,与 AWS 服务深度集成,适合追求简单性和 AWS 紧密集成的场景Terraform IaC 模块化封装降低了部署复杂度
## Key Claims用中文描述
- JP 指出行业面临不可预测性和敏捷性挑战,企业必须在这些挑战中生存,而这一切由代码驱动("Businesses have to thrive in the middle of all these challenges and it is forged by code."
- 动态扩缩容对于不可预测的负载模式至关重要,技术必须持续演进以应对
- ECS (Elastic Container Services) 是 AWS 专有技术,与 AWS 服务深度集成,相比 EKS 或原生 Kubernetes 有其独特优势和挑战
- CTP/SRE 团队在 Gruntwork 仓库基础上构建了 ECS 模块,将 Docker 容器作为逻辑单元创建,支持 EC2 实例或目标部署
- ECS 模块实现了 Listener 方式集中管理,因为许多产品团队从 Gruntwork 下载代码后本地使用
- 使用模块的前置条件包括VPC、ELB 安全组、EFS 卷挂载
## Key Quotes
> "Businesses have to thrive in the middle of all these challenges and it is forged by code." — JP阐述企业如何在云转型挑战中通过代码驱动适应
> "We have implemented the listener approach because we have seen many of the products are downloading the quotes from the gruntwork and using locally." — Raja M解释为何 CTP 团队实现 Listener 集中管理方式
## Key Concepts
- [[Infrastructure-as-Code]]Terraform IaC 驱动 ECS 部署的核心方法论
- [[ECS-Module-Deployment]]CTP/SRE 团队基于 Gruntwork 构建的 ECS 自动化部署模块
- [[Listener-Approach]]ECS 集中管理方式,避免各产品团队重复下载使用 Gruntwork 代码
- [[Canary-Deployment]]ECS 模块支持的金丝雀部署策略
## Key Entities
- [[AWS]]Amazon Web Services提供 ECS 容器服务及配套生态CloudWatch、VPC、ELB、EFS
- [[Gruntwork]]IaC 基础设施代码库CTP 的 ECS 模块基于 Gruntwork 仓库构建
- [[CTP]]Cloud Transformation Programme云转型计划每周定期举办 Learning Sessions 学习会议
- [[JP]]:演讲者之一,讲解 ECS 的业务和技术背景
- [[Raja-M]]:演讲者之一,详细介绍 CTP 和 SRE 团队开发的 ECS 模块
## Connections
- [[ctp-topic-70-eks-deployment-using-iac]] ← extends ← [[Infrastructure-as-Code]](同一 IaC 主题EKS 与 ECS 两条路径)
- [[ctp-topic-9-ci-cd-with-gruntwork]] ← builds_on ← [[Gruntwork]]Gruntwork CI/CD 实践是 ECS 模块的基础)
- [[ctp-topic-33-an-introduction-to-gitops]] ← related_to ← [[Infrastructure-as-Code]]GitOps 与 IaC 协同)
## Contradictions
- 与 [[ctp-topic-64-scaling-out-with-amazon-eks]] 在容器编排选型上的差异:
- 冲突点ECS 与 EKS 哪个更适合企业容器化部署
- 当前观点ECS 作为 AWS 原生技术与 AWS 服务深度集成,适合追求简单性和紧密集成的场景
- 对方观点EKS 提供更强的可移植性和 Kubernetes 生态系统支持,适合需要多云或混合云策略的场景
-两者并非互斥ECS 和 EKS 可根据具体场景互补使用

View File

@@ -0,0 +1,54 @@
---
title: "Public Cloud Learning Sessions (OpenText) - AI Use Cases - 20241126 160106"
type: source
tags:
- AI
- Use-Cases
- OpenText
- AWS
- Generative-AI
date: 2024-11-26
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-ai-use-cases-20241126-160106-meeting-rec.md]]
## Summary用中文描述
- 核心主题AWS AI 专家 Stephen Frank 分享 Gen2 AI生成式 AI的发展驱动力、企业级应用场景及 AWS 三层产品战略
- 问题域:企业软件公司如何利用生成式 AI 实现差异化竞争AI 数据策略选择RAG / Fine-tuning / Continued Pre-training
- 方法/机制AWS 三层产品架构(基础设施 → Amazon Bedrock → AI 应用Amazon Q 企业知识问答;数据与 AI 模型集成的三种方法
- 结论/价值数据是差异化关键RAG 可在无需重训练的情况下连接自有业务数据;实施 AI 需要培育实验文化、灵活选择模型、重视安全治理与合规
## Key Claims用中文描述
- 自 2000 年代以来数据量爆发式增长,加上算力提升,驱动了 Gen2 AI 的崛起
- Amazon 在核心产品和服务中应用 AI/ML 已达 25 年
- 生成式 AI 应用的差异化关键在于数据——通过 RAG/Fine-tuning/持续预训练与现有业务数据集成
- AWS 三层产品战略:基础设施层(基础模型训练/推理)→ Amazon Bedrock旗舰 API 访问)→ 即用型 AI 应用
- Amazon Bedrock 确保用户数据与提示词不与第三方模型提供商共享,符合 GDPR 合规要求
- 负责任 AI 的核心原则公平性Fairness、可解释性Explainability、透明度Transparency
## Key Quotes
> "Data is key to differentiation, as generative AI applications integrate with existing business data to control outcomes." — Stephen Frank, AWS AI Specialist
> "When implementing your services, we do have to look at this more holistically." — Stephen Frank, AWS AI Specialist
## Key Concepts
- [[RAG]]:将生成式 AI 应用与企业现有业务数据集成,无需重训练即可控制输出结果
- [[Fine-Tuning]]:通过领域数据微调基础模型,提升特定任务表现
- [[Continued-Pre-Training]]:持续预训练,在基础模型上继续训练以扩展知识
- [[Responsible-AI]]:公平性、可解释性、透明度的 AI 实施原则
## Key Entities
- [[AWS]]:亚马逊云科技,提供三层 AI 产品战略
- [[Amazon-Bedrock]]AWS 旗舰生成式 AI 服务,提供 API 访问多种基础模型Anthropic/Titan 等),保证数据不与第三方共享
- [[Amazon-SageMaker]]AWS 全托管机器学习平台,面向数据科学家和平台工程师
- [[Amazon-Q]]AWS 预构建 AI 系统,支持知识摘要、内容创建和洞察提取,自然语言连接多种数据源
- [[Stephen-Frank]]AWS AI 专家,主讲本次会议
## Connections
- [[public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin]] ← extends ← [[public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111]]
- [[Amazon-Bedrock]] ← is part of ← [[AWS]] AI 三层产品战略
- [[Amazon-Q]] ← is part of ← [[AWS]] AI 三层产品战略
- [[RAG]] ← depends_on ← [[Fine-Tuning]]
## Contradictions
- 无明显内容冲突。本来源与 [[public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin]] 和 [[public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111]] 共同构成 Serverless & AI 知识链路,内容互补而非冲突。

View File

@@ -0,0 +1,51 @@
---
title: "Public Cloud Learning Sessions (OpenText) - Event Driven Architecture Part 1"
type: source
tags:
- EDA
- Event-Driven
- AWS
- Architecture
- OpenText
date: 2024-09-17
last_updated: 2026-05-05
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091]]
## Summary用中文描述
- 核心主题事件驱动架构Event-Driven ArchitectureEDA入门与概述
- 问题域:企业级云架构中的异步通信与松耦合集成设计
- 方法/机制:主讲人 Dr. Anil GiriAWS 解决方案架构师)介绍通过 Amazon EventBridge、SQS 和 SNS 探索事件驱动架构;会议录音包含开场介绍与主持人协调过程(演示过程中遭遇 Teams 屏幕共享技术故障)
- 结论/价值帮助参与者掌握企业级集成模式Enterprise Integration Patterns学习实用的云计算技能为解决现实世界业务挑战打下基础
## Key Claims用中文描述
- Amazon EventBridge、SQS 和 SNS 是实现事件驱动架构的核心 AWS 服务
- 事件驱动架构能够帮助企业实现松耦合、可扩展的系统集成
- 企业级集成模式Enterprise Integration Patterns是构建可靠分布式系统的理论基础
## Key Quotes
> "探索企业级集成模式,掌握实用的云计算技能,通过使用 Amazon EventBridge、SQS 和 SNS 探索事件驱动架构,以解决现实世界中的业务挑战。" — Dr. Anil GiriAWS 解决方案架构师,开场学习目标介绍
> "Give me a second. I'm trying to log in. Just give me a second." — 会议期间 Teams 屏幕共享故障场景
## Key Concepts
- [[Event-Driven-Architecture]]:一种软件架构范式,其中组件通过事件的产生、消费和响应进行通信,强调松耦合
- [[Enterprise-Integration-Patterns]]:企业集成模式,是构建可靠分布式系统时常见问题的可复用解决方案集合
- [[Amazon-EventBridge]]AWS 无服务器事件总线服务,用于连接应用程序与来自各种来源的事件
- [[Amazon-SQS]]AWS 简单队列服务,提供完全托管的消息队列服务
- [[Amazon-SNS]]AWS 简单通知服务,提供发布/订阅式的消息通知服务
## Key Entities
- [[Dr.-Anil-Giri]]AWS 解决方案架构师Event Driven Architecture 系列主讲人
- [[AWS]]Amazon Web Services云服务提供商EventBridge/SQS/SNS 的托管方
- [[OpenText]]会议主办方Public Cloud Learning Sessions 系列活动的组织者
- [[Micro-Focus]]:原公司名称,现已被 OpenText 收购,学习会话的参与群体来源
## Connections
- [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]] ← part_of ← [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091]]Part 1 与 Part 2 为同一系列Part 2 包含具体演示内容)
- [[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]] ← related_to ← [[Event-Driven-Architecture]]Serverless 与 EDA 高度相关Serverless 计算天然适合事件驱动场景)
## Contradictions
- 与 [[ctp-topic-64-scaling-out-with-amazon-eks]] 在扩展方式上的差异——EDA 通过事件驱动异步扩展EKS 通过容器编排横向扩展,两者适用于不同场景但可互补使用

View File

@@ -0,0 +1,62 @@
---
title: "Public Cloud Learning Sessions (OpenText) - Event Driven Architecture Part 2"
type: source
tags:
- EDA
- Event-Driven
- Architecture
- OpenText
date: 2024-09-17
last_updated: 2026-05-05
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]]
## Summary用中文描述
- 核心主题事件驱动架构EDA进阶实践——最佳实践、团队独立性、常见消息模式
- 问题域:如何在企业云环境中设计、落地和治理事件驱动架构
- 方法/机制Dr. Anil GiriAWS 解决方案架构师)详解 EDA 三组件(事件生产者/消费者/代理、事件路由器EventBridge/SNS与事件存储SQS/Kinesis、编排与编排模式Choreography vs Orchestration、幂等性、事件排序、团队去中心化所有权
- 结论/价值:帮助团队掌握 EDA 生产级最佳实践,在保证弹性和可扩展性的同时实现团队独立自治
## Key Claims用中文描述
- 事件代理分两类事件路由器EventBridge/SNS按规则过滤路由和事件存储SQS/Kinesis由消费者自己过滤
- EventBridge 比 SNS 功能更丰富,支持跨 AWS 服务的事件触发和工作流编排
- 幂等性Idempotency是处理 EDA 消息重复的关键机制AWS Lambda 异步调用会自动重试
- SQS FIFO 和 Kinesis Data Streams 可保证事件顺序;标准 SQS 和 EventBridge 支持乱序处理
- 团队独立性应采用去中心化所有权云卓越中心Cloud CoE提供基础设防团队自主消费事件
- Fan-out 模式通过 SNS 主题或 EventBridge 规则将事件分发到不同团队
## Key Quotes
> "Event is nothing but it's like a change in the state or an update." — Dr. Anil GiriEDA 定义
> "Everything fails every time means like whatever you have designed and whatever workload you is running it may fail any time." — 容错设计哲学
## Key Concepts
- [[Event-Driven-Architecture]]:一种软件架构范式,通过事件的生产、消费和响应实现松耦合通信
- [[Choreography]]:编排模式的一种,各微服务自主通信,无需中央协调者
- [[Orchestration]]:编排模式的一种,通过中央协调者(如 AWS Step Functions控制工作流步骤
- [[Idempotency]]:幂等性——同一操作执行一次或多次产生相同结果的特性
- [[Fan-Out-Pattern]]:一对多消息分发模式,通过 SNS 主题或 EventBridge 规则将事件广播给多个消费者
- [[Competing-Consumer-Pattern]]竞争消费者模式同一时间只有一个消费者可处理消息SQS 实现)
- [[Dead-Letter-Queue-DLQ]]:死信队列,用于处理失败事件,防止消息丢失
## Key Entities
- [[AWS]]Amazon Web ServicesEventBridge/SQS/SNS/Lambda/Kinesis/AWS Step Functions 的托管方
- [[Amazon-EventBridge]]AWS 事件路由器支持规则过滤、跨服务触发、Schema 注册
- [[Amazon-SQS]]AWS 消息队列服务,分标准队列(乱序/高效)和 FIFO 队列(有序/Exactly-Once
- [[Amazon-SNS]]AWS 发布/订阅通知服务,实现 Fan-out 分发
- [[AWS-Lambda]]AWS 无服务器函数EDA 的核心事件消费者,异步调用自动重试
- [[AWS-Step-Functions]]AWS 状态机编排服务,实现 Orchestration 模式
- [[Kinesis-Data-Streams]]AWS 流数据服务,支持事件持久化和有序处理
- [[Dr.-Anil-Giri]]AWS 解决方案架构师Event Driven Architecture 系列主讲人
- [[OpenText]]会议主办方Public Cloud Learning Sessions 系列活动的组织者
## Connections
- [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091]] ← part_of ← [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]]Part 1 与 Part 2 为同一系列Part 2 补充具体演示内容)
- [[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]] ← related_to ← [[Event-Driven-Architecture]]Serverless 天然适合事件驱动Lambda 是 EDA 的核心执行单元)
- [[Event-Driven-Architecture]] ← depends_on ← [[Amazon-EventBridge]]EventBridge 是 AWS EDA 的核心事件总线)
- [[Event-Driven-Architecture]] ← uses ← [[Idempotency]](幂等性是 EDA 生产级落地的必要保障)
## Contradictions
- 与 [[ctp-topic-64-scaling-out-with-amazon-eks]] 在扩展方式上的差异——EDA 通过事件驱动异步扩展消费者按需处理EKS 通过容器编排横向扩展Pod 副本数调整),两者适用于不同场景但可互补使用

View File

@@ -0,0 +1,66 @@
---
title: "Public Cloud Learning Sessions (OpenText) - Generative AI & Prompt Engineering - 20241112"
type: source
tags:
- Generative-AI
- Prompt-Engineering
- OpenText
- AWS
date: 2024-11-12
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111.md]]
## Summary用中文描述
- 核心主题AWS 生成式 AI 服务与提示工程基础,由 OpenText 技术客户经理 Shikad Holtzman 主讲
- 问题域:企业如何在 AWS 上构建有业务价值的生成式 AI 应用
- 方法/机制Amazon Bedrock 全托管基础模型服务、RAG检索增强生成、微调、持续预训练、Amazon Q 助手、提示工程技巧
- 结论/价值:企业数据是差异化关键,通过 Bedrock 连接自有数据,无需重训练即可构建专属生成式 AI 应用;提示工程通过清晰指令、上下文、示例和链式思维可显著提升 LLM 输出质量
## Key Claims用中文描述
- Shikad Holtzman以色列技术客户经理通过 AWS 生成式 AI 堆栈三层架构(基础设施/服务/应用)介绍了创新机会与行业通用场景
- 生成式 AI 通过创造新体验、提升员工生产力、提取洞察、激发创造力四大路径为企业创造价值;应用场景涵盖客服聊天机器人、代码生成摘要、文档处理和图像生成
- 企业数据是生成式 AI 应用从通用走向专属、产生实际业务价值的关键差异化因素
- RAG检索增强生成是成本最低、最快速的定制化方法连接多数据源无需重训练模型微调通过标注示例重训练模型持续预训练用无标签数据适配特定领域
- Amazon Bedrock 是全托管服务,提供来自 Anthropic、Meta、AmazonTitan的多种基础模型含多模态和图像模型并内置 RAG 知识库、微调、Agents 和 Responsible AI 能力,且用户数据和提示不会与模型提供商共享
- Amazon Bedrock Guardrails 允许用户根据自身策略过滤有害内容
- Amazon Q 分为企业版(连接多数据源进行搜索/摘要/洞察提取,维持现有权限)和开发者版(专注代码生成、单元测试和代码迁移)
- 提示工程是创建、设计和优化提示词以引导 LLM 响应的过程,需清晰、准确、具体,遵循迭代测试优化;提示包含指令、上下文、用户输入和输出指示器四部分
- 少样本提示One-shot/Few-shot通过提供示例帮助模型理解任务模式链式思维Chain of Thoughts通过逐步推理引导模型解决复杂任务
## Key Quotes
> "Your data is your differentiator and it is what makes the difference between generic application to a specific application that can actually bring business to your value." — Shikad Holtzman强调企业数据是生成式 AI 差异化的核心
> "None of your data nor not the prompts, not the data that you are using for customizing the model is being shared with the model providers." — 强调 Amazon Bedrock 的数据隔离承诺
## Key Concepts
- [[RAG]]:检索增强生成,通过连接外部数据源,无需重训练即可让基础模型回答特定领域问题,是成本最低的定制化路径
- [[Prompt-Engineering]]:提示工程,通过设计清晰指令、上下文、示例和输出指示器引导 LLM 生成准确相关响应的技术和迭代过程
- [[Chain-of-Thought]]:链式思维,一种提示工程技巧,通过让模型展示逐步推理过程来提升复杂任务表现
- [[One-Shot-Prompting]]:单样本提示,一种提示技巧,通过提供一个示例帮助模型理解任务格式和期望
- [[Few-Shot-Prompting]]少样本提示通过提供多个示例通常2-5个让模型从示例中学习模式和规则
- [[Responsible-AI]]:负责任 AIAmazon Bedrock 内置的能力,包括内容过滤和道德准则实施
- [[Guardrails-for-Amazon-Bedrock]]Bedrock 护栏,允许用户配置自定义策略过滤有害内容的基础安全功能
## Key Entities
- [[Shikad-Holtzman]]OpenText 技术客户经理(驻以色列),本次学习会议讲师,专注于 AWS 生成式 AI 应用与创新机会分享
- [[Amazon-Bedrock]]AWS 全托管基础模型服务提供多提供商模型Anthropic/Amazon Titan/Meta内置 RAG、微调、Agents 和 Responsible AI 能力
- [[Amazon-SageMaker]]AWS 托管服务覆盖基础模型构建、训练和部署全生命周期SageMaker JumpStart 提供公开可用基础模型和第三方模型访问
- [[Amazon-Q]]AWS AI 助手,分企业版(多数据源连接、搜索摘要)和开发者版(代码生成、单元测试、代码迁移)
- [[AWS-Trainium]]AWS 专用训练芯片,用于基础模型训练
- [[AWS-Inferentia]]AWS 专用推理芯片,用于模型推理部署
- [[AWS]]Amazon Web ServicesOpenText Cloud 转型计划的云服务提供商
## Connections
- [[Amazon-Bedrock]] ← extends ← [[Foundation-Models]]
- [[RAG]] ← part_of ← [[Amazon-Bedrock]]
- [[Amazon-Q]] ← part_of ← [[AWS-Generative-AI-Stack]]
- [[Prompt-Engineering]] ← uses ← [[Chain-of-Thought]]
- [[Prompt-Engineering]] ← uses ← [[Few-Shot-Prompting]]
- [[Amazon-SageMaker]] ← part_of ← [[AWS-Generative-AI-Stack]]
- [[public-cloud-learning-sessions-introduction-to-artificial-intelligence-ai-machin]] ← related ← [[public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111]](同属 AWS AI/ML 入门系列)
- [[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]] ← related ← [[public-cloud-learning-sessions-opentext-generative-ai-prompt-engineering-2024111]](同属 OpenText Serverless & AI 专题)
## Contradictions
- 与 [[ctp-topic-64-scaling-out-with-amazon-eks]] 在扩展方式上的差异EDA 通过事件驱动异步扩展EKS 通过容器编排横向扩展,两者适用于不同场景但可互补使用

View File

@@ -0,0 +1,62 @@
---
title: "Public Cloud Learning Sessions - Serverless Computing - 20240903"
type: source
tags:
- Serverless
- AWS
- Lambda
- Step-Functions
- API-Gateway
- OpenText
date: 2026-04-14
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee.md]]
## Summary用中文描述
- 核心主题AWS 无服务器计算Serverless Computing聚焦 AWS Lambda、Step Functions 和 API Gateway
- 问题域:企业如何在云环境中简化应用管理、降低运维负担、加快上市时间
- 方法/机制Lambda 事件驱动函数 → Step Functions 工作流编排 → API Gateway API 管理AWS 与客户共担运维责任AWS 管基础设施,客户管代码)
- 结论/价值Serverless 模式通过"按需付费、自动扩展、内置安全"实现更快的市场响应和更低的 TCO
## Key Claims用中文描述
- AWS Lambda 将运维任务(负载均衡、自动扩展、安全)转移给云厂商,使开发团队专注业务逻辑
- Lambda 函数支持同步、异步、事件源映射三种触发模式,可精细控制执行行为
- Lambda 权限模型分为执行角色(决定函数能做什么)和资源策略(决定谁能触发函数)
- Step Functions 提供 Standard 和 Express 两种工作流类型,分别适用于长时任务和高频场景
- SAMServerless Application Model基于 CloudFormation 构建,支持本地开发和测试 Lambda 函数
- Lambda Layers 允许跨函数共享公共代码提高复用率ARM64 架构提供更优性价比
## Key Quotes
> "Whenever you see that you have written code and you want that this code is final, you can publish as a new version." — Lambda 版本发布的核心理念
## Key Concepts
- [[Serverless-Computing]]:将运维任务(负载均衡、自动扩展、安全补丁)转移给云厂商,使开发团队专注业务代码,无需管理服务器
- [[Event-Driven-Architecture]]Lambda 函数由事件触发——状态的任何变化即为事件,是 Serverless 的核心执行模型
- [[Lambda-Permissions-Model]]执行角色Execution Role决定函数能调用哪些 AWS 资源资源策略Resource-Based Policy决定谁能触发该函数两者分离实现最小权限原则
- [[Step-Functions]]:无服务器工作流编排服务,基于状态机协调多个 AWS 服务,支持 Standard长时和 Express高频两种工作流类型
- [[API-Gateway]]:托管式 API 创建、发布和安全服务提供边缘优化Edge-Optimized、区域Regional和私有Private三种部署选项
- [[SAM-Serverless-Application-Model]]:基于 CloudFormation 的无服务器应用开发工具,支持本地测试和部署 Lambda 函数
## Key Entities
- [[AWS Lambda]]AWS 无服务器计算核心服务开发者只需提供业务逻辑AWS 负责其余所有运维工作
- [[AWS Step Functions]]AWS 无服务器工作流编排服务,用于协调多个 Lambda 函数和 AWS 服务的执行顺序
- [[Amazon API Gateway]]AWS 托管式 API 管理服务,用于创建、发布和维护安全的企业级 API
- [[Amazon EventBridge]]AWS 事件总线服务,用于在应用程序之间路由事件(属于 AWS Serverless 服务组合)
- [[AWS Fargate]]AWS 无服务器容器计算服务(与 Lambda 互补,提供容器层的 Serverless 选项)
- [[Amazon Q]]AWS AI 助手,可用于调试 Lambda 函数CloudWatch 集成)
- [[CloudWatch]]AWS 监控服务Lambda 将指标(请求数、错误数、延迟、节流)上报至此
- [[Serverless-Application-Model-SAM]]AWS 官方开源工具,基于 CloudFormation 简化无服务器应用的本地开发和部署
## Connections
- [[AWS-Lambda]] ← is_a ← [[Serverless-Computing]]
- [[AWS-Step-Functions]] ← orchestrates ← [[AWS-Lambda]]
- [[Amazon-API-Gateway]] ← exposes ← [[AWS-Lambda]]
- [[Amazon-EventBridge]] ← triggers ← [[AWS-Lambda]]
- [[SAM-Serverless-Application-Model]] ← builds_on ← [[CloudFormation]]
- [[CloudWatch]] ← monitors ← [[AWS-Lambda]]
- [[Serverless-Computing]] ← extends ← [[Cloud-Transformation-Programme]]
## Contradictions
- 无已知冲突