企业出海多云管理平台(CMP)建设实战:统一纳管、自助服务目录与跨云编排(2026 最新版)

📅 · 企业出海多云架构实战 - ChengziCloud

一句话结论

Meta Description: 出海企业多云管理平台(CMP)建设完整指南:统一资源纳管与标签规范、自助服务目录(Catalog Item + 审批流)、跨云编排四条技术路线选型(云厂商自带 / Crossplane / Backstage / Terragrunt+Atlantis)、与 La…

本文要点
  • 前言:工具都买了,为什么业务团队还要等两周才能拿到一台服务器
  • CMP 到底是什么:五个能力域与三层架构
  • 四条技术路线选型
  • 统一资源纳管:让"我们有什么"变成一张表
  • 自助服务目录:CMP 真正的价值出口
  • 跨云编排:Crossplane 把 K8s 变成多云控制平面
  • 平台自身的多租户与权限模型
  • 把 FinOps 内建进申请流程

Meta Description: 出海企业多云管理平台(CMP)建设完整指南:统一资源纳管与标签规范、自助服务目录(Catalog Item + 审批流)、跨云编排四条技术路线选型(云厂商自带 / Crossplane / Backstage / Terragrunt+Atlantis)、与 Landing Zone、IaC、FinOps、CSPM 的边界划分、Crossplane 的 Provider 与 XRD/Composition 实操、平台多租户权限矩阵、成本门禁内建、三厂商能力对比、新加坡价格参考表、90 天路线图与 8 条 FAQ。

关键词: 多云管理平台、CMP、云管平台、自助服务目录、Crossplane、跨云编排、统一资源纳管、云治理中心、Service Catalog


前言:工具都买了,为什么业务团队还要等两周才能拿到一台服务器

先给结论:出海企业多云管理的最大瓶颈,不是缺工具,而是缺"平台"。 IaC 有 Terragrunt + Atlantis、成本有 FinOps 看板、安全有 CSPM、监控有 Thanos + Grafana,但这四套能力各自挂在不同的仓库、不同的控制台、不同的审批流里——业务团队要一套预发环境的数据库,仍然要走"群里 @ 运维 → 运维写 Terraform → 提 PR → 审批 → apply → 回消息"这条纯人工链路。工具是齐的,入口是散的。

在出海场景里,这个缺口表现为三个反复出现的症状:

第一,有工具,没入口。 平台能力只有两三个人会用,需求方拿不到自助入口,所有请求都压成"人肉工单"。云支出涨了三倍,交付时长一点没变。

第二,有资产,没清单。 被合规审计或老板问"我们三朵云一共有多少台机器、多少 TB 存储、分布在几个地域",没人能在 10 分钟内答上来。没有清单,成本优化和合规检查都无从下手。

第三,有成本数据,没成本责任。 账单能看,但没人对某条业务线的花钱负责——因为资源创建时没有绑定归属,事后补标签必然补不齐。

本文要给的就是"平台"这一层:把已有能力装进一个 申请 → 审批 → 编排 → 交付 → 计量 → 回收 的自助服务闭环。为了不让你把它和本站已有的四篇文章混读,先划清边界:

既有主题它解决的问题与本文的关系
Landing Zone 账号治理账号树、OU、管控策略、网络基线CMP 的治理底座,本文不重复
Terragrunt + AtlantisIaC 的规模化与 PR 审批CMP 的编排执行引擎,本文复用
企业 FinOps 预算与分账预算循环、单位成本、ChargebackCMP 的成本域,本文只讲如何内建进申请流程
多云可观测与告警治理指标 / 日志 / 链路的统一收敛CMP 的看板数据源
多云统一身份认证(IAM SSO)统一身份与最小权限CMP 的登录与 RBAC 来源
多云 CSPM 态势管理配置面风险检测与自动修复CMP 的安全门禁输入

本文只讲一件事:这些能力怎么被串成一条流水线。


一、CMP 到底是什么:五个能力域与三层架构

云管理平台(Cloud Management Platform,CMP)的定义可以压缩成一句话:面向资源消费方是一个统一门户,面向资源生产方是一个统一编排层。 它不替代 IaC,而是把 IaC 包装成"商品化的服务目录项",让不会写 Terraform 的人也能安全地拿到资源。

1.1 五个能力域

能力域回答的问题关键产物
统一资源纳管我们有什么跨云资产清单 / CMDB
自助服务目录怎么快速拿到Catalog Item + 表单 + 审批流
跨云编排怎么自动交付Blueprint / Composition / Module
成本与计量谁花了多少标签驱动的分账 + 单位成本
治理与合规合不合规、能不能收策略门禁 + 到期回收

关键判断:五域缺一不可,但落地顺序不能颠倒。 先纳管(没有清单,一切都无从计量)→ 再目录(这是价值出口)→ 再编排(把人工操作固化成模块)→ 最后把成本与合规内建进门禁。

1.2 三层架构(mermaid)


graph TD
    A[门户层 Portal] --> A1[服务目录 / 工单 / 审批 / 我的资源]
    A --> A2[成本看板 / 配额视图 / 合规评分]
    A1 --> B[编排层 Orchestration]
    B --> B1[IaC 引擎 Terragrunt / Atlantis]
    B --> B2[K8s 原生控制平面 Crossplane]
    B --> B3[审批与策略门禁 Policy]
    B1 --> C[驱动层 Drivers]
    B2 --> C
    B3 --> C
    C --> C1[阿里云 OpenAPI / ROS / 资源目录]
    C --> C2[AWS API / CloudFormation / Organizations]
    C --> C3[腾讯云 API / TIC / 企业组织]

1.3 全景架构图(ASCII):一条请求的完整旅程


┌──────────────────────── 门户层 ───────────────────────────┐
│ 业务研发在服务目录点"申请一套预发环境(2核4G×2 + 数据库 + 桶)" │
│   表单: 业务线 / 环境 / 地域 / 规格 / 预算上限 / 到期时间      │
└───────────────────────────┬───────────────────────────────┘
                            ▼
┌──────────────────────── 审批与门禁层 ──────────────────────┐
│ 1. 身份: SSO 登录 → RBAC 判断该用户能否申请这类资源          │
│ 2. 配额: 该业务线的季度配额是否还够用                        │
│ 3. 策略: CSPM 基线是否满足(禁 0.0.0.0/0 / 强制加密)        │
│ 4. 审批: 预算超阈值 → 业务负责人 + 财务双签                   │
└───────────────────────────┬───────────────────────────────┘
                            ▼
┌──────────────────────── 编排层 ───────────────────────────┐
│ Terraform Module / Crossplane Composition 自动渲染          │
│ 自动注入: 标签(业务线/环境/成本中心/到期日) + 默认安全组 + 加密 │
└───────────────────────────┬───────────────────────────────┘
                            ▼
┌──────────────────────── 驱动层 · 三朵云 ──────────────────┐
│ 阿里云 ROS / OpenAPI  │  AWS CloudFormation / API  │  腾讯云 TIC  │
└───────────────────────────┬───────────────────────────────┘
                            ▼
┌──────────────────────── 回写与运营 ───────────────────────┐
│ 清单回写 → 成本挂上成本中心 → 到期日前 7 天提醒 → 超期回收    │
└──────────────────────────────────────────────────────────┘

二、四条技术路线选型

在动手之前必须先选路线,因为四条路的运维成本差一个量级。

维度云厂商自带(Service Catalog / ROS / TIC)K8s 原生(Crossplane)自建门户(Backstage + IaC)纯 IaC 平台(Terragrunt + Atlantis)
定位单云内自助交付多云统一控制平面企业级开发者门户编排与审批引擎
多云能力弱(各管各云)强(Provider 覆盖 AWS / GCP / Azure / 阿里云 / 腾讯云)强(自己写)强
自助体验中弱(偏工程向)强(模板 + 表单 + 文档)弱(PR 驱动)
交付速度快快中(需自建)慢(每项都要写模块)
平台运维成本低中(K8s + Provider 升级)高(门户 + 插件 + 前端)中
适合团队单云为主、20 人以下已有 K8s 平台团队50 人以上平台工程团队已用 IaC 且追求轻量
费用多为免费(按资源付费)开源开源 + 人力开源 + 人力

三条选型结论:

  • 单云为主、团队小于 20 人:直接用云厂商自带(AWS Service Catalog / 阿里云 ROS / 腾讯云 TIC),不要自建平台。
  • 多云 + 已有 K8s 能力:用 Crossplane 做统一控制平面,门户可以先欠着——先用 GitOps 的 PR 当入口。
  • 多云 + 需要给非工程团队用:Backstage 做门户,后端接 IaC 引擎或 Crossplane。这是唯一能同时满足"自助体验"和"多云"的组合。

反模式提醒:不要为了 CMP 而搭 CMP。门户的价值来自目录项的数量与质量,如果只有 3 个目录项,搭门户的投入永远收不回来。


三、统一资源纳管:让"我们有什么"变成一张表

3.1 三个前提

第一,标签规范先行——标签不是装饰,它是平台与财务、安全、审计之间的接口(Tagging as API)。第二,清单可重建——清单必须由 API 采集定时生成,而不是人工维护。第三,唯一标识对齐——云的 ResourceId、CMDB 的资产 ID、成本账单里的 ResourceId 必须是同一个,否则分账永远对不上。

标签最小集四个键,缺一不可:

标签键取值示例用途
businesscheckout / payment分账第一维度
envprod / staging / dev权限与策略范围
cost-centerCC-1024财务对账
expire-at2026-12-31到期自动回收

3.2 三云清单采集命令(统一字段映射)


// 阿里云:拉取指定标签的 ECS 清单,输出统一四字段
aliyun ecs DescribeInstances --RegionId ap-southeast-1 \
  --Tag.1.Key business --Tag.1.Value checkout \
  --PageSize 100 | jq -r '.Instances.Instance[] | [.InstanceId,.InstanceName,.Status,.ZoneId] | @tsv'

// AWS:按标签过滤 EC2,输出同样四个字段
aws ec2 describe-instances --region ap-southeast-1 \
  --filters "Name=tag:business,Values=checkout" \
  --query 'Reservations[].Instances[].[InstanceId,State.Name,Placement.AvailabilityZone]' \
  --output text

// 腾讯云:同样口径
tccli cvm DescribeInstances --region ap-southeast-1 \
  --Filters '[{"Name":"tag:business","Values":["checkout"]}]' \
  --output json | jq -r '.InstanceSet[] | [.InstanceId,.InstanceName,.InstanceState,.Placement.Zone] | @tsv'

三条纪律:

  • 不要在平台上手写资产表。 清单必须由定时任务从 API 重建。人工维护的 CMDB 一定会腐烂,这是行业规律而不是执行力问题。
  • 标签缺失要当告警处理。 未打标签的资源 = 无法分账 = 预算黑洞。把"缺标签"从"提醒"升级成"告警",覆盖率才会动。
  • 纳管范围从"能花钱的资产"开始。 实例、数据库、对象存储、负载均衡、NAT 网关——先打通这五类,比纳管 50 种产品有用得多。

四、自助服务目录:CMP 真正的价值出口

4.1 一个目录项由五部分组成

组成部分说明例子
表单(Form)消费方填什么业务线、环境、地域、规格、到期日
默认值(Defaults)不让消费方做安全决策强制加密、默认私有、默认不开公网 IP
编排模板(Template)谁来落地Terraform module 或 Composition
审批策略(Approval)什么情况要批生产环境、预算超 $500/月
生命周期(Lifecycle)何时回收到期前 7 天提醒,超期自动停机

"默认值"这一项最容易被忽略,但它决定安全基线能不能落地。 把"是否加密""是否公网可达"交给消费方勾选,等于把安全责任下放给了最不了解安全的人。

4.2 请求流转(mermaid 时序)


sequenceDiagram
    participant U as 业务研发
    participant P as 门户 Portal
    participant G as 策略门禁
    participant O as 编排引擎
    participant C as 云 API
    participant M as CMDB / 成本看板
    U->>P: 提交申请(业务线 / 环境 / 规格 / 预算 / 到期日)
    P->>G: 校验 RBAC + 配额 + 安全基线
    G-->>P: 通过 / 需审批 / 拒绝并附原因
    P->>O: 渲染模板并注入标签
    O->>C: 调用三云 API 创建资源
    C-->>O: 返回 ResourceId
    O->>M: 回写资产清单与成本中心
    M-->>U: 交付完成通知(含访问方式)

4.3 目录即代码:把目录项写成仓库里的文件


// catalog/app-env-staging/item.yaml —— 目录项定义(示例,字段名按平台自行调整)
id: app-env-staging
name: "预发环境(标准版)"
owner: platform-team
template: modules/app-env
approval:
  required_when:
    - field: env
      equals: prod
    - field: monthly_budget_usd
      greater_than: 500
defaults:
  encryption: true
  public_ip: false
  expire_days: 90
fields:
  - key: business
    label: "业务线"
    type: enum
    options: [checkout, payment, search]
    required: true
  - key: env
    label: "环境"
    type: enum
    options: [dev, staging, prod]
    required: true
  - key: instance_type
    label: "规格"
    type: enum
    options: [2c4g, 4c8g]
    default: 2c4g

为什么"目录即代码"是关键决策:目录项一旦进入 Git,就自动获得了版本、评审、回滚和审计四项能力——而这恰好是 SOC 2 与等保三级"变更管理"控制项要看的东西。如果目录项是在管理界面上点出来的,这四项能力会全部丢失。

4.4 用 IaC 引擎做目录的落地路径

表单提交之后最省事的做法,不是让平台直接去调云 API,而是让平台生成一个 PR:


门户提交
  → 平台在 infra-live 仓库生成以 <request-id> 命名的分支与 PR
  → CI 自动跑 terragrunt plan,把计划与成本预估贴回 PR
  → 审批人在 PR 上 review 并 approve
  → Atlantis 执行 apply,把结果回写门户

这条路线的三个好处:审批留痕天然存在(PR 记录就是审计证据)、成本可以在 apply 之前看到、误操作可以用 revert 回滚。相比"平台自己调 API",它牺牲了一点响应速度,换来了完整的可追溯性——对出海企业面对合规审计时的价值,远大于那几秒。


五、跨云编排:Crossplane 把 K8s 变成多云控制平面

如果团队已经在跑 Kubernetes,Crossplane 是最短的路径。它的核心思路是:把云资源变成 K8s 的 CRD,于是"申请一个数据库"就变成了"提交一个 YAML"。Crossplane 本身是 CNCF 项目(当前主线版本 v2.x 系列),社区已为 AWS、GCP、Azure、阿里云、腾讯云等提供了 Provider。

5.1 四个核心概念

概念作用
Provider连向某朵云的驱动包(provider-aws / provider-gcp / provider-azure / provider-alibaba / provider-tencentcloud)
Managed Resource(MR)一类云资源(如 RDS 实例)在 K8s 中的表示
XRD + Composition把若干个 MR 打包成一个自定义 API(如 AppEnv)
Claim业务方提交的、带命名空间隔离的申请单

5.2 安装与驱动(命令形态)


// 安装 Crossplane(Helm)。主线版本迭代很快,版本请以官方最新 release 为准
helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update
helm install crossplane --namespace crossplane-system --create-namespace \
  crossplane-stable/crossplane

// 安装 Provider:包地址以官方文档当日给出的为准,不要写死版本
kubectl apply -f - <<'EOF'
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-aws-rds
spec:
  package: xpkg.upbound.io/crossplane-contrib/provider-aws-rds
EOF

// 检查驱动健康状态
kubectl get providers
kubectl get providerrevisions

说明:Provider 的包地址(xpkg.upbound.io/...)与版本号会随项目迭代变化,务必从官方文档或仓库当日给出的地址复制,不要把版本写死在教程里长期复用——否则一段时间后必然失效。

5.3 组合一个自定义 API

第一步,声明一个自定义 API(业务方看到的就是它):


// 1) 声明自定义 API:XAppEnv(平台内部形态)
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
  name: xappenvs.platform.example.com
spec:
  group: platform.example.com
  names:
    kind: XAppEnv
    plural: xappenvs
  claimNames:
    kind: AppEnv
    plural: appenvs
  versions:
    - name: v1alpha1
      served: true
      referenceable: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                business: {type: string}
                env: {type: string}
                instanceClass: {type: string}

第二步,业务方提交的申请单(Claim)——这就是"服务目录项"的工程形态:


// 2) 业务方提交的申请单(Claim)
apiVersion: platform.example.com/v1alpha1
kind: AppEnv
metadata:
  name: checkout-staging
  namespace: team-checkout
spec:
  business: checkout
  env: staging
  instanceClass: 2c4g
  compositionRef:
    name: appenv-standard

关键收益:业务方不需要知道底层是托管数据库还是自建、不需要知道落在哪朵云,只需要填三个字段。平台团队改一次 Composition,之后所有交付都跟着变——这就是"平台化"和"写脚本"的本质区别。脚本解决一次性问题,平台解决一类问题。

5.4 五条工程纪律

  1. Provider 版本显式固定,升级前先在非生产集群验证(云 API 变更会导致资源无法收敛)。
  2. 凭证走 Secret 或角色联邦,绝不在 ProviderConfig 里明文写 AccessKey。
  3. 命名空间按业务线隔离,Claim 只能落在自己的命名空间内。
  4. 删除策略显式声明,对生产数据库使用 deletionPolicy: Orphan 防止误删。
  5. Composition 版本化,并在 CI 中做 schema 兼容性检查。

六、平台自身的多租户与权限模型

平台一上线就会成为新的"特权中枢",权限模型必须先设计好。

角色能做什么典型实现
平台管理员管理 Provider、Composition、目录项集群管理员 + 目录仓库 maintainer
云平台工程师处理审批、排障、成本优化全云只读 + 特定写权限
业务负责人审批本业务线申请、查看本线成本审批流 approver + 分账看板 scope
业务研发申请资源、查看自己的资源门户普通用户 + 命名空间内写

三条原则:

  • 平台自身的权限必须小于它管理的云权限。 平台是自动化中枢,不是特权中枢——平台挂掉不应该导致云资源被误删,平台账号被盗不应该等价于云账号被盗。
  • 申请动作本身必须审计。 谁在什么时间申请了什么、谁批的,这条记录是合规审计的第一手证据。
  • 审批人不能是申请人。 生产环境强制至少两人参与,禁止自批。

七、把 FinOps 内建进申请流程

事后账单分析能做优化,但做不到责任归属。CMP 能做、而账单分析做不到的三件事:

第一,申请即带成本责任。 表单里必填业务线与成本中心,标签在资源创建那一刻就带上,根本不存在"事后补标签"这一步。

第二,预算前置门禁。 月度预算超过阈值走双签;业务线季度配额用尽时,门户直接拒绝,而不是三个月后在财务会上追责。

第三,单位成本可观。 把"每月花多少"换成"每千次订单花多少云成本"——这个口径只有平台能算,因为它同时掌握资源归属和业务量数据。

需要说明的是:预留实例、节省计划、Spot、自动伸缩这些优化手段本身并不新鲜,CMP 的增量价值在于"可执行的分配"——把每条业务线的节约目标变成门户里的配额策略,而不是一句口号。


八、三厂商自带 CMP 能力对比

如果暂时不自建,先看清云厂商自带能力能覆盖到什么程度:

能力阿里云(资源编排 ROS + 云治理中心 + OOS)AWS(Service Catalog + Control Tower + Systems Manager)腾讯云(资源编排 TIC + 企业组织)
IaC / 编排ROS 模板(JSON/YAML)、Terraform ProviderCloudFormation / CDK / StackSetsTIC 资源编排
自助服务目录通过 ROS 组合 + 控制台授权近似实现Service Catalog(原生)通过 TIC 项目与权限近似实现
多账号治理资源目录 + 管控策略Organizations + Control Tower企业组织 + 权限策略
运维自动化OOS 运维编排Systems Manager Automation云函数 + 运维编排
成本与分账费用中心 + 财务单元Cost Explorer + Cost Categories费用中心 + 分账标签
多云支持仅阿里云仅 AWS仅腾讯云
上手门槛中(中文文档完善)中中

结论:三家的自带能力都属于"单云自助",能解决大约 70% 的问题;剩下 30%——跨云统一入口、跨云统一分账、跨云统一审批——才是自建 CMP 的理由。 如果业务只在单云运行,先不要自建。


九、新加坡区域参考价格

计费项阿里云国际版(新加坡)AWS(新加坡)腾讯云国际版(新加坡)
平台底座 K8s 节点(2核4G,按量)约 $0.045/小时/台约 $0.046/小时/台约 $0.043/小时/台
平台底座 K8s 节点(2核4G,包年)约 $27/月/台约 $28/月/台约 $26/月/台
对象存储(Terraform State / 清单快照)约 $0.023/GB/月约 $0.025/GB/月约 $0.024/GB/月
托管编排服务ROS 免费(按所创建资源计费)Service Catalog 免费(按资源计费)TIC 免费(按资源计费)
商业 CMP 许可约 $15–40/节点/月,或年订阅 $15k–60k(授权模式差异大)同左(跨云统一授权)同左
Spot / 抢占式折扣约 1–3 折约 1–3 折约 1–3 折

声明:本文价格数据采集于 2026 年 9 月,为公开官网参考区间与折算值;商业 CMP 的许可价格因授权模式(按节点 / 按资源 / 按用户)差异极大,表中区间仅供预算初筛。实际以各厂商官网实时报价与正式报价单为准。除特别标注外,金额单位均为美元(USD)。


十、90 天落地路线

阶段时间交付物验收标准
摸底第 1–3 周三云资产清单 + 标签规范能回答"有多少台机器、多少 TB";标签覆盖率 > 90%
目录第 4–7 周3 个高频目录项上线从申请到交付 < 30 分钟(非生产环境)
编排第 8–11 周目录项全部由 IaC 交付零人工点击;apply 全程留痕可回溯
治理内建第 12 周预算门禁 + 到期回收超期资源自动提醒;未打标签资源告警清零

验收口径提醒:评估 CMP 的成效不要用"上线了多少功能",要用两个可验证的指标——申请到交付的时长和人工介入次数。两个都降下来,平台才算真的在工作。


十一、总结

多云管理平台的落地可以归纳成五步:先纳管(资产清单 + 标签规范)→ 再目录(3 个高频目录项)→ 再编排(目录项全部由 IaC 交付)→ 成本与合规内建(申请即带归属、预算前置门禁)→ 用"交付时长"和"人工介入次数"两个指标持续度量。

记住三句话:

  • CMP 不是又一个工具,而是把已有工具串成一条流水线。 IaC、FinOps、CSPM、可观测都还在,只是被装进了同一个入口。
  • 目录项的数量与质量决定平台的生死。 只有 3 个目录项的平台不值得存在;有 30 个高质量目录项的平台会成为业务团队的默认入口。
  • 平台自身的权限必须小于它管理的云权限。 平台是自动化中枢,不是特权中枢。

把这三条做到位,业务团队拿到一套预发环境的时长会从"两周"变成"30 分钟",而运维团队的工作会从"接需求"变成"维护目录"——这正是出海企业在多云规模化之后,唯一能继续增长的运维模式。

🚀 企业出海需要云架构咨询?通过 7.chengzicloud.cloud 联系我们,获取专属方案。我们提供多云管理平台(CMP)架构设计、服务目录与自助交付流程建设、Crossplane 与 Terraform 跨云编排落地、标签与分账体系规划、平台多租户与审批权限设计,以及 90 天落地路线的一站式咨询与实施服务。

相关阅读

本文由 7.chengzicloud.cloud 提供,点击访问首页了解更多

常见问题(FAQ)

1:我们已经在用 Terragrunt + Atlantis,还需要 CMP 吗?

需要的是"门户"那一层,而不是再上一个编排引擎。Terragrunt + Atlantis 解决的是"提交怎么变成资源",CMP 解决的是"谁来提交、以什么形式提交"。最小可行做法:先给 Atlantis 套一个表单入口(提交后生成 PR),等目录项超过 5 个再考虑 Backstage 这类门户。

2:Crossplane 和 Terraform 会冲突吗?

不冲突,但要划清边界。常见分工是:基础设施(网络、账号、集群、共享数据库)用 Terraform / Terragrunt 管,生命周期长、变更少;应用侧环境(按团队、按环境批量创建的资源)用 Crossplane 管,变更频繁且需要自助。两者都可以由 GitOps 统一驱动,但 State(或资源所有权)边界绝不能重叠——同一份资源被两个工具管,是最难排查的一类故障。

3:十人以下的小团队值得自建 CMP 吗?

不值得。自建 CMP 的隐性成本包括门户代码、插件升级、前端维护,以及平台自身的可用性责任。十人以下团队建议:单云用厂商自带目录,多云用"Git 仓库 + PR 模板 + Atlantis",把门户这件事留到专职平台团队出现之后再谈。

4:门户自己做还是买商业 CMP?

判断标准是"目录项的种类数"。少于 10 种,自建(Backstage + 少量插件)更划算;超过 30 种,且需要审批矩阵、财务对账、多租户 SLA,商业 CMP 的授权费通常低于自建的长期人力成本。中间地带建议从自建起步,但把目录项存成代码以保留替换能力——这样随时可以换引擎而不丢资产。

5:CMP 需要多少人力维护?

Crossplane 路线约 0.5 人(Provider 升级 + Composition 维护);Backstage 路线约 1 人(前端 + 插件 + 模板);商业 CMP 约 0.3 人(配置 + 供应商支持)。低估平台自身的运维量,是自建 CMP 最常见的翻车原因——平台一挂,所有业务团队的交付都会停。

6:多云状态下,资源命名和标签怎么统一?

命名统一靠"平台层自动注入",不靠人的自觉;标签统一靠"标签字典 + 缺标签告警"。做法是把标签写成 IaC 的必填变量,缺标签直接让 plan 失败。三朵云的标签字段名(Tag / Tags / labels)不同,在纳管层做一次字段映射即可。

7:CMP 和 CMDB 是什么关系?

CMP 产生 CMDB。手工维护的 CMDB 必然腐烂,正确顺序是"平台每次交付都回写清单",CMDB 退化为平台的一个衍生视图,而不是一个需要专人维护的系统。如果贵司的 CMDB 需要 3 个人全职维护,说明资源入口还没有收敛到平台。

8:这件事和等保三级 / SOC 2 有什么关系?

关系很直接:合规审计要看"变更管理"和"访问控制"两个控制域。CMP 带来的"目录即代码 + PR 审批 + 申请审计记录 + 角色矩阵"恰好就是这两个控制域的证据链。反过来说,如果所有资源都是人在控制台上点出来的,每次审计你都得靠聊天记录凑证据。