Jelajahi Sumber

方案初稿

DevOps Team 2 bulan lalu
induk
melakukan
bea128b668
2 mengubah file dengan 530 tambahan dan 0 penghapusan
  1. 270 0
      Cloud-Native-Migration-Plan.md
  2. 260 0
      云原生迁移方案-基础设施篇.md

+ 270 - 0
Cloud-Native-Migration-Plan.md

@@ -0,0 +1,270 @@
+# 云原生迁移方案 - 基础设施篇(重构版)
+
+---
+
+## 1. 目标与结果
+- **业务连续性**:迁移期间零感知,RTO < 15 分钟,RPO = 0(有状态组件托管化)。
+- **弹性与韧性**:流量高峰 5 分钟内可横向扩 2 倍;灰度/回滚 < 5 分钟。
+- **可观测性**:QPS、订单成功率、p95 延时、错误率全链路可见;异常 5 分钟内告警。
+- **成本可控**:新增月度核心支出可控在 ¥500 内(不含业务流量费);按需扩缩避免常驻浪费。
+
+---
+
+## 2. 目标架构(流量路径)
+
+```mermaid
+graph TD
+    User((用户/客户端)) --> ALB[ALB 负载均衡]
+    ALB --> Gateway[MSE 云原生网关]
+    Gateway --> Nacos[Nacos / 配置]
+
+    subgraph "ACK 集群"
+        Nacos --> DubboConsumer[Dubbo 消费者]
+        DubboConsumer -- RPC (Dubbo/gRPC) --> DubboProvider[内部服务/大模块]
+        DubboProvider --> Istiod[ASM/Istio 控制面]
+        DubboProvider --> Cron[K8s CronJob]
+    end
+
+    DubboProvider --> Redis[(Redis)]
+    DubboProvider --> MySQL[(MySQL)]
+    DubboProvider --> RabbitMQ[(RabbitMQ)]
+    DubboProvider --> MongoDB[(MongoDB)]
+    DubboProvider --> Seata[Seata 分布式事务]
+```
+
+**访问关系说明**
+- 外部流量:ALB 终止 TLS,转发至 MSE 网关;网关基于 Nacos 实现服务路由与灰度。
+- 东西向流量:Dubbo 服务通过 ASM 提供的 Sidecar 统一做流量治理、熔断与可观测性注入。
+- 调度:业务定时任务迁移为 K8s CronJob,与应用镜像同生命周期、同发布节奏。
+- 数据层:所有状态型组件优先托管化,降运维面风险;Seata 负责分布式事务。
+
+---
+
+## 3. 日志与监控
+
+### 3.1 监控重心(业务优先)
+- 核心 KPI:QPS、订单成功率/失败率、p50/p95/p99 延时、错误率。
+- 系统健康:JVM/GC、线程池、连接池、水位、节点资源(CPU/Mem/FD)。
+
+### 3.2 采集与展现路径
+```mermaid
+flowchart LR
+    subgraph Pod
+        App[业务应用]
+        App -- Actuator/Exporter --> PromExp[Prom Exporter]
+        App -- Stdout JSON --> Vector
+    end
+    Vector --> Loki[(Loki)]
+    Vector --> Prom[(Prometheus)]
+    PromExp --> Prom
+    Prom --> Grafana
+    Loki --> Grafana
+```
+
+- **日志侧**:应用输出单行 JSON,Vector 解析+降噪,落 Loki;查询/告警用 LogQL。
+- **指标侧**:Actuator/Exporter 暴露 JVM/线程池/HTTP histogram,自定义业务指标写入 Prometheus;Grafana 汇总看板+告警。
+- **云监控对比**:
+  - 流量小、快速落地:ARMS/云监控开箱即用,少运维;
+  - 流量大、需定制度:自建 Loki+Prom 更低成本、可扩展,建议后期切换。
+
+---
+
+## 4. 弹性伸缩(HPA/AHPA)
+- **AHPA 原理**:基于历史数据做预测,结合自定义业务指标提前预热,避免原生 HPA 滞后。
+- **示例策略**:
+  - 触发条件:`order_success_rate < 95%` 或 `http_server_requests_p95 > 500ms`;
+  - 扩容动作:副本数在 2~10 间自动调节,步长 50%;
+  - 回落条件:指标连续 10 分钟恢复后缩容。
+
+(示例 YAML 片段,供落地时调整)
+```yaml
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+  name: order-service-hpa
+spec:
+  minReplicas: 2
+  maxReplicas: 10
+  metrics:
+    - type: Resource
+      resource:
+        name: cpu
+        target:
+          type: Utilization
+          averageUtilization: 60
+    - type: Pods
+      pods:
+        metric:
+          name: http_p95_latency_ms
+        target:
+          type: AverageValue
+          averageValue: 500m # 500ms
+```
+
+---
+
+## 5. 成本增量(估算)
+| 资源 | 预估单价/月 | 价值/能力 | 备注 |
+| --- | --- | --- | --- |
+| ALB (基础型) | ~¥50+流量 | 7 层转发、TLS 卸载 | 按流量计费为主 |
+| MSE 网关 | ~¥150 | 动态路由、灰度、限流 | 含网关能力 |
+| MSE/Nacos/Dubbo 注册 | ~¥100 | 托管注册/配置,减运维 | 可与网关套餐绑定 |
+| ASM (Istio) | ~¥0-300 | 东西向治理、可观测性注入 | 标准版起收 |
+| Redis/Mongo/RabbitMQ | 按需计费 | 高可用托管,免自运维 | 选按量计费起步 |
+| HPA/AHPA 隐形成本 | 弹性节点费用 | 用多少付多少,较常驻节省 ~30% | 需监控缩容时机 |
+| 备份与存储 | ~¥30-80 | 日志/快照存储 | 随容量浮动 |
+
+> 核心新增固定费控制在 ~¥500/月;大头来自业务流量与数据存储的按量计费。
+
+---
+
+## 6. 资源申请与迁移计划
+
+### 6.1 资源清单
+- 计算:现有 3 台 ECS 加入 **ACK-PRO**(托管费 ~¥35/月)。
+- 中间件:申请 **MSE**(含 Nacos/Dubbo/Gateway)、**Redis/Mongo/RabbitMQ** 托管版、**ASM** 基础/标准版。
+- 观测:部署 **Loki + Prometheus + Grafana**(可先用云监控,后期自建)。
+
+### 6.2 里程碑(示例 2 周)
+1. **D1-D2**:ACK、MSE、ASM 基础设施落地;网络/安全组/证书准备。
+2. **D3-D5**:日志与监控链路打通(Vector -> Loki/Prom,Actuator -> Prom)。
+3. **D6-D8**:非核心 Dubbo 服务与 CronJob 迁入;验证路由、配置、密钥。
+4. **D9-D10**:压测与 AHPA 策略验证;观察缩扩容曲线。
+5. **D11-D12**:灰度切流(ALB 权重/网关路由);回滚预案演练。
+
+### 6.3 风险与回滚
+- **配置漂移**:使用 GitOps/Helm 管控,禁止手改;发现异常可直接回滚 Chart 版本。
+- **流量突刺**:保留原机房降级开关;Prometheus 告警触发时可临时提升副本上限。
+- **数据一致性**:切换前对接 Seata/事务补偿;核心写流量先双写、比对再切换。
+
+---
+
+*本稿为重构版,聚焦“业务优先、弹性可控、成本透明”的最小落地路径,可按实际规模调整容量与价格。*# 云原生迁移方案 - 基础设施篇 (初稿)
+
+---
+
+## 一、 结果导向:最终状态架构
+
+### 1.1 最终目标架构图 (ASCII)
+
+```mermaid
+graph TD
+    User((用户/客户端)) --> ALB[阿里云 ALB 负载均衡]
+    
+    subgraph "阿里云 ACK 集群 (K8s)"
+        ALB --> Gateway[MSE 云原生网关]
+        Gateway --> Nacos[Nacos 注册中心/配置中心]
+        
+        subgraph "Service Mesh (Istio/ASM)"
+            Nacos --> DubboConsumer[Dubbo 服务消费者]
+            DubboConsumer -- RPC (gRPC/Dubbo) --> DubboProvider[DUBBO 内部服务/大模块]
+            DubboProvider --> IstioSidecar[Istiod 控制面]
+        end
+
+        subgraph "持久化与中间件 (云原生托管)"
+            DubboProvider --> Redis[(Redis)]
+            DubboProvider --> MySQL[(MySQL)]
+            DubboProvider --> RabbitMQ[(RabbitMQ)]
+            DubboProvider --> MongoDB[(MongoDB)]
+            DubboProvider --> Seata[Seata 分布式事务]
+        end
+        
+        subgraph "定时任务"
+            K8sCron[K8s CronJob]
+        end
+    end
+```
+
+### 1.2 业务访问关系说明
+- **外部访问**:流量经 **ALB** 卸载 SSL 证书后转发至集群内的 **MSE 云原生网关**。
+- **服务发现**:网关通过 **MSE Nacos** 发现 Service,实现南北向流量管理。
+- **内部通信**:大模块间通过 **Dubbo RPC** 通信,并由 **ASM (Service Mesh)** 实现东西向流量治理(灰度、熔断、链路追踪)。
+- **任务调度**:原生业务定时逻辑迁移至 **K8s CronJob**,确保与应用生命周期一致。
+
+---
+
+## 二、 日志与监控
+
+### 2.1 监控重心上移
+我们不再只关注宿主机负载,而是聚焦于业务健康度。
+- **关键性能指标 (KPI)**:QPS (吞吐)、ORDER (业务成功率/量)、DURATION (响应延时)。
+
+### 2.2 日志与监控架构图
+
+```mermaid
+flowchart LR
+    subgraph "应用 Pod"
+        App[业务应用] --> Stdout[Log Stdout]
+        App -- Actuator --> PromExp[Prometheus Exporter]
+    end
+
+    subgraph "采集层"
+        Stdout --> Vector[Vector Agent]
+    end
+
+    subgraph "数据中台"
+        Vector --> Loki[(Loki 日志库)]
+        Vector --> Prom[(Prometheus 时序库)]
+        PromExp --> Prom
+    end
+
+    subgraph "展示层"
+        Loki --> Grafana[Grafana Dashboard]
+        Prom --> Grafana
+    end
+```
+
+### 2.3 自建与云监控对比
+| 维度 | 自建监控 (Loki + Prom) | 阿里云云监控/ARMS | 结论 |
+| --- | --- | --- | --- |
+| **价格** | 低 (主要为存储成本) | 高 (按指标量计费) | 流量大时自建性价比极高 |
+| **配置** | 需要运维维护配置文件 | 开箱即用,全图形化 | 早期推荐 ARMS,后期转自建 |
+| **扩展性** | 插件丰富,自定义逻辑强 | 受限于平台功能 | 业务逻辑复杂推荐自建 |
+
+---
+
+## 三、 HPA 建设:自动伸缩演进
+
+### 3.1 阿里云 AHPA (Advanced HPA) 原理
+AHPA 基于预测算法和业务指标,解决了原生 HPA 扩容滞后的痛点。通过集成 **Prometheus 自定义指标**,可以在高峰期到来前自动完成 Pod 预热。
+
+### 3.2 实现示例
+假设针对“订单处理成功率”进行 HPA:
+1. **指标定义**:从 Prometheus 提取 `order_success_rate < 95%`。
+2. **扩容逻辑**:
+   - 当探测到处理速度低于阈值时,ACK 自动请求扩容 50% 的 Pod。
+   - 触发条件:`avg(order_duration) > 500ms`。
+3. **结果**:在高并发大促场景下,系统在 2 分钟内完成吞吐量翻倍。
+
+---
+
+## 四、 成本增量分析 (估算)
+
+| 资源名称 | 预估单价 | 获得的功能与价值 |
+| --- | --- | --- |
+| **ALB (基础型)** | 约 ¥50/月起 (含流量) | 替代传统 SLB,支持更复杂的转发规则 (Header/Cookie) |
+| **MSE 网关** | 约 ¥150/月 | 统一网关、限流降级、服务发现,节省自建 Nginx/Zuul 成本 |
+| **RabbitMQ/Redis/Mongo** | 云托管按需付费 | 极致稳定性,免去 DB 层运维痛苦 |
+| **ASM (基础版/标准版)** | 约 ¥0-300/月 | 获得全链路治理能力,无侵入式服务监控 |
+| **HPA 隐性成本** | 动态 ECS 扩容费 | **关键点**:用完即销毁,比常驻包年包月 ECS 节省约 30% 支出 |
+
+---
+
+## 五、 资源申请与迁移计划
+
+### 5.1 资源配置
+- **计算资源**:3 台现网现有 ECS 作为节点,加入 **ACK-PRO 托管版** 集群(满足高可用 SLA)。
+- **托管服务**:申请 **云原生 MSE**(配置 2 节点高可用型)。
+- **预估成本**:
+  - ACK-PRO 托管费:约 ¥35/月。
+  - ECS 节点:作为现网原有扩容,不产生额外“迁云”溢价费用。
+  - **总计可控**:初期核心纯新增支出 < ¥500/月。
+
+### 5.2 迁移时间线
+1. **Day 1-2**: 基础设施搭建(ACK + MSE + 基础网络设置)。
+2. **Day 3-5**: 日志/监控系统测试(Vector 采集路径打通)。
+3. **Day 6-10**: 分批迁移 CronJob 与 Dubbo 非核心模块。
+4. **Day 11**: 灰度切流测试(ALB 权重灰度)。
+
+---
+*注:本方案旨在利用托管服务降低运维压力,同时控制核心成本。*

+ 260 - 0
云原生迁移方案-基础设施篇.md

@@ -0,0 +1,260 @@
+# 云原生迁移方案(基础设施篇 · 初稿)
+
+> 基于当前源码与日志方案(见 Log.md)并结合业务架构撰写,面向 ACK-Pro + MSE + ASM(Istio)统一落地。
+
+---
+
+## 一. 结果导向(迁移后的目标)
+
+- 统一北向入口与服务治理:ALB → API Gateway → Nacos 服务发现 → Dubbo RPC → 内部服务(各大模块)
+- 数据与中间件云原生化:Redis / MySQL / RabbitMQ / MongoDB / Seata(AT/TCC)由云托管或托管版运维
+- 服务网格:引入 ASM(Istio),启用 `istiod` 控制面,Sidecar 注入实现 mTLS、灰度、熔断、可观测性
+- 自动弹性:基于 HPA/AHPA,按核心业务指标(QPS/订单/延迟)进行 Pod 自动扩缩容
+- 日志与监控一体化:应用统一输出 JSON,采集 Vector → 存储 Loki → 指标 Prometheus → 展示 Grafana
+
+### 业务访问关系(示意图)
+
+```mermaid
+flowchart LR
+  User[用户/客户端] --> ALB[ALB 负载均衡]
+  ALB --> GW[API Gateway]
+  subgraph Mesh[ASM/Istio Mesh]
+    GW -->|Nacos 注册/发现| Nacos[(Nacos/MSE)]
+    GW --> Dubbo[Dubbo RPC]
+    Dubbo --> SvcA[订单中心]
+    Dubbo --> SvcB[支付中心]
+    Dubbo --> SvcC[商户中心]
+    Dubbo --> SvcD[营销中心]
+    Dubbo --> SvcE[网关搜索]
+  end
+
+  subgraph Data[数据与中间件]
+    Redis[(Redis)]
+    MySQL[(MySQL)]
+    MQ[(RabbitMQ)]
+    Mongo[(MongoDB)]
+    Seata[(Seata)]
+  end
+
+  SvcA--读写-->MySQL
+  SvcA--缓存-->Redis
+  SvcA--消息-->MQ
+  SvcB--读写-->MySQL
+  SvcB--缓存-->Redis
+  SvcB--消息-->MQ
+  SvcC--读写-->Mongo
+  SvcC--缓存-->Redis
+  SvcA--事务协调-->Seata
+
+  subgraph Ops[运维调度]
+    Cron[K8s CronJob]
+    Istiod[istiod 控制面]
+  end
+  Cron --> SvcA
+  Cron --> SvcB
+  Istiod -.sidecar注入.-> SvcA
+  Istiod -.mTLS/路由.-> SvcB
+```
+
+- 内部服务(大模块)可映射至当前目录中的核心仓库:订单中心、支付中心、商户中心、营销中心、网关/搜索、统计报表等(参考 workspace 子目录)。
+
+---
+
+## 二. 日志与监控
+
+### 1) 业务导向与指标(监控重心上移)
+
+- 关键指标:
+  - QPS:按 `uri_group` 与服务维度
+  - ORDER:订单成功率/失败率/异常原因
+  - DURATION:请求延时分布 p50/p95/p99(毫秒)
+
+### 2) 日志与监控架构(Vector → Loki → Prometheus → Grafana)
+
+```mermaid
+flowchart LR
+  subgraph App[应用微服务]
+    Log[Logback Async JSON]
+    Act[Spring Actuator/Prometheus]
+  end
+  Log --> Vec[Vector Agent]
+  Vec --> Loki[Loki 日志]
+  Vec --> Prom[Prometheus 指标]
+  Prom --> Graf[Grafana 仪表盘/告警]
+  Act --> Prom
+
+  note[说明: 统一在 Filter/MDC 输出 JSON, Vector 解析为 Loki 标签与 Prom 指标]
+```
+
+- 应用层:零侵入输出单行 JSON(详见 Log.md),集中设置 MDC 字段:`traceId/uri/uri_group/event_class/duration/status`。
+- 采集层:Vector 做解析与标签抽取,低基数上标签,高基数留 JSON;导出 Prometheus 指标(QPS/订单/延迟)
+- 指标与展示:Prometheus 存储,Grafana 展示与告警;对接云监控或自建均可
+
+### 3) 云监控 vs 自建(价格与功能对比要点)
+
+- 自建(Loki/Prometheus/Grafana/Vector):
+  - 优点:可定制、可控成本、无供应商锁定;资源随集群即可
+  - 成本项:ECS/ACK 节点资源、持久化(OSS/S3)与运维人力
+- 云监控(阿里云 ARMS/云监控/日志服务):
+  - 优点:开箱即用、自动伸缩、SLA;与 ACK/ASM 深度集成
+  - 成本项:按数据量/实例规格计费;功能随套餐变化
+- 结论:生产建议“混合”——核心链路自建保障可控性,非核心场景可接云产品降低维护成本。
+
+> 现网 Log.md 已提供 Vector/Loki/Prometheus 的落地配置与性能对标:本方案延迟 <2s,CPU 8-15%,内存 80-100MB(对比全文)。
+
+---
+
+## 三. HPA/AHPA 建设
+
+### 1) 原理与功能
+
+- HPA(Horizontal Pod Autoscaler):依据资源指标(CPU/内存)或自定义/外部指标,在目标平均值上下自动扩缩容。
+- AHPA(ACK 增强 HPA):在 ACK 上支持基于 Prometheus 查询的复杂指标、预测性扩容、最小/最大副本、冷启动优化等。
+
+### 2) 示例:按业务 QPS 指标做自动扩缩容
+
+- 标准 HPA(CPU 指标示例):
+```yaml
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+  name: order-center-hpa
+  namespace: shop-recycle
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: order-center
+  minReplicas: 2
+  maxReplicas: 20
+  metrics:
+  - type: Resource
+    resource:
+      name: cpu
+      target:
+        type: Utilization
+        averageUtilization: 60
+```
+
+- 使用 Prometheus Adapter 的“外部指标”示例(按每 Pod QPS):
+```yaml
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+  name: order-center-hpa-qps
+  namespace: shop-recycle
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: order-center
+  minReplicas: 2
+  maxReplicas: 50
+  metrics:
+  - type: External
+    external:
+      metric:
+        name: shop_recycle_requests_per_pod
+        selector:
+          matchLabels:
+            app: order-center
+      target:
+        type: AverageValue
+        averageValue: "10"  # 目标每 Pod QPS
+```
+> 需接入 Prometheus Adapter 暴露自定义指标至 `external.metrics.k8s.io`。
+
+- AHPA(概念示例):在 ACK 中以 CRD 形式定义,允许直接引用 PromQL 表达式与更丰富的策略(请按实际 ACK/AHPA 文档配置 CRD 字段)。
+
+### 3) 实施建议
+
+- 指标分层:CPU 作为兜底,业务指标(QPS/订单失败率/延迟)作为主驱动
+- 保护与上限:设置 `minReplicas`/`maxReplicas`,并结合队列限流与缓存保护防止雪崩
+- 预热与冷却:`stabilizationWindowSeconds` 合理设置,避免抖动;订单高峰前手动加热
+
+---
+
+## 四. 成本增量(示例表格)
+
+> 说明:价格以 2026 年估算为例,需以阿里云当期定价为准;以下为模板占位,请用实际规格(带宽/实例数/存储量)替换。
+
+| 服务 | 计费方式(示例) | 估算月价(CNY) | 获得能力 | 备注 |
+| --- | --- | ---: | --- | --- |
+| ALB | 按带宽/实例数 | TBD | 北向入口、七层负载、WAF | 与网关联动 |
+| MSE(Nacos/Dubbo) | 实例规格/连接数 | TBD | 注册发现、治理、限流 | 托管免自运维 |
+| RabbitMQ(云) | 实例规格/存储 | TBD | 队列解耦、异步削峰 | 与订单/支付协作 |
+| Redis(云) | 内存容量/连接数 | TBD | 高速缓存、会话 | AOF/备份成本 |
+| MongoDB(云) | 存储容量/IOPS | TBD | 文档型存储 | 索引与备份 |
+| ASM(Istio) | 节点数/功能套餐 | TBD | mTLS、灰度流量、Observability | 提升治理能力 |
+| HPA/AHPA 隐形成本 | 节点资源/冷启动 | 0-小幅 | 额外副本/预热资源 | 需容量冗余 |
+| ACK-Pro 托管费 | 固定 | 35 | ACK 集群托管 | 用户提供数据 |
+
+> 建议:成本测算以 3 台 ECS(现网)+ ACK-Pro 托管起步,自建日志/指标存储,评估云代管与自建混合比例。
+
+---
+
+## 五. 资源申请与迁移计划
+
+### 资源
+
+- 计算:现网 3 台 ECS 作为 ACK-Pro 节点(不计额外费用),加入 VPC 同网段
+- 集群:ACK-Pro(托管费约 35 元/月,按用户提供)
+- 服务治理:云原生 MSE(Nacos/Dubbo);ASM(Istio 控制面 `istiod`)
+- 中间件:Redis/MongoDB/MySQL/RabbitMQ/Seata(优先托管版或运维托管)
+- 采集与监控:Vector/Loki/Prometheus/Grafana(可自建)
+
+### 迁移路线(低风险分阶段)
+
+1) 基线准备(Week 0-1)
+- 建 ACK-Pro 集群,接入 3 台 ECS;部署 Nacos/MSE 基础;开启 ASM 并完成 Sidecar 注入验证
+- 部署 Vector/Loki/Prometheus/Grafana(或云监控对接),同步应用 Logback JSON 输出(按 Log.md)
+
+2) 网关与服务治理(Week 2)
+- ALB → API Gateway 联通;服务注册至 Nacos/MSE,Dubbo RPC 通路验证
+- Mesh 试点:对订单中心与支付中心启用流量管理(灰度/熔断/重试),mTLS 验证
+
+3) 数据层迁移(Week 3)
+- Redis/MySQL/RabbitMQ/MongoDB 切换至托管版或托管运维,数据迁移与读写压测
+- 引入 Seata(AT/TCC)做关键事务一致性,联调与回滚演练
+
+4) 弹性与高峰(Week 4)
+- 接入 HPA(CPU 兜底)与业务指标 Adapter,配置 AHPA(如使用 ACK 增强)
+- 订单高峰前做预热与容量演练,设置 Grafana 告警门限
+
+5) 上线与稳定(Week 5)
+- Canary 10% → 50% → 全量,保留回滚脚本与双写(日志/指标)72h
+- 完成 SRE 运维手册与 Oncall 告警确认
+
+### 可选落地脚本/命令
+
+- 回滚(示例):
+```bash
+helm rollback vector -n logging
+kubectl rollout undo deployment/order-center -n shop-recycle
+```
+
+---
+
+## 附:参考与对齐
+
+- 现网日志方案详见 Log.md:零侵入 MDC、Vector/Loki/Prometheus 架构、CI 基数门禁与告警模板
+- 模块映射:workspace 下的 `shop-recycle-*` 目录代表内部服务(订单/支付/商户/营销/网关/统计等),迁移优先级按业务关键度排序
+- 安全与合规:ASM mTLS、WAF/ALB 规则、敏感日志红线与脱敏;数据库访问最小权限
+
+---
+
+## PDF 导出(可选)
+
+- 方案一(Node 无安装):
+```powershell
+# 在项目根目录执行
+npx md-to-pdf .\docs\云原生迁移方案-基础设施篇.md --config-file .md-to-pdf.json
+```
+- 方案二(Pandoc):
+```powershell
+winget install Pandoc.Pandoc
+# 若需 LaTeX:winget install MiKTeX.MiKTeX
+pandoc .\docs\云原生迁移方案-基础设施篇.md -o .\docs\云原生迁移方案-基础设施篇.pdf
+```
+
+> 如需我生成 md-to-pdf 的配置文件或直接导出 PDF,请告知,我可补充 `md-to-pdf.json` 或执行转换。