Backstage制品签名插件跨环境迁移开发 - 第1节

1.1 什么是 IDP(内部开发者平台)

内部开发者平台(Internal Developer Platform, IDP)是构建在基础设施之上的“开发者自助服务层”,它屏蔽了底层云原生基础设施的复杂性,为开发团队提供标准化的应用交付路径。IDP 的核心目标是提升开发者体验(Developer Experience, DX),同时确保组织级的安全与合规策略得以贯彻。

IDP 关键特征:
  • 黄金路径(Golden Path):预定义的、经过安全审查的应用创建与部署流程。
  • 自助服务:开发者无需等待运维团队,即可通过平台门户自主完成环境申请、部署、配置等操作。
  • 标准化:统一的技术栈、部署模式和安全基线,减少“雪花”系统。
  • 可观测性:内置日志、监控、告警能力,让开发者对生产环境状态一目了然。

在云原生时代,IDP 通常以“平台工程”团队构建,以 Backstage 这样的开发者门户为前端界面,以 Kubernetes、CI/CD 流水线、制品仓库等为后端能力。

1.2 制品签名链路概述

制品签名是软件供应链安全的核心环节。从代码提交到生产部署,每个制品(容器镜像、Helm Chart、JAR 包等)都应经过数字签名,以确保其完整性、来源可信且未被篡改。完整的制品签名链路包含以下阶段:

阶段 动作 工具/标准示例 安全目标
构建签名 CI 流水线在构建完成后,使用私钥对制品摘要进行签名 Cosign, Sigstore, GnuPG 证明制品来源(构建系统身份)
存储验证 制品仓库(如 Harbor, ECR)验证签名并存储签名元数据 Notation, OCI 签名规范 确保存储的制品未被替换
部署策略 部署引擎在拉取制品前,验证签名是否匹配可信公钥 Kyverno, OPA Gatekeeper, Ratify 阻止未签名或签名无效的制品上线
审计追溯 平台记录签名验证结果,形成不可篡改的审计日志 Rekor (透明日志), 区块链存证 满足合规审计要求
常见痛点:许多组织在构建和部署阶段分别实施了签名与验证,但缺乏一个统一的、对开发者透明的可视化链路。开发者无法直观地看到“我的制品是否已签名?”、“签名是否通过策略验证?”。这正是 Backstage 插件需要填补的空白。
制品签名链路全景 ① 构建签名 ② 存储验证 ③ 部署策略 ④ 审计追溯 🔑 核心原则:私钥签名、公钥验证。签名元数据(如 DSSE 信封)与制品一同存储或关联。 🛡️ 目标:确保从构建到部署的整个路径中,制品内容未被篡改且来源可信。 Cosign / Sigstore Notation / OCI Kyverno / Ratify Rekor / 区块链

1.3 Backstage 插件生态介绍

Backstage 是一个由 Spotify 开源、CNCF 孵化的开发者门户平台。其核心架构基于插件化设计,所有功能都以插件的形式提供。插件生态是 Backstage 的生命力所在。

插件分类

  • 核心插件:由 Backstage 社区维护,提供基础能力,如 Catalog(服务目录)、TechDocs(技术文档)、Scaffolder(软件模板)。
  • 集成插件:对接外部工具,如 Kubernetes 插件、GitHub Actions 插件、Datadog 插件、Sentry 插件。
  • 自定义插件:由组织内部开发,用于满足特定业务需求,例如本课程要实现的“制品签名链路可视化”插件。

插件架构模式

层次 职责 技术栈
前端(Frontend) UI 组件、页面路由、用户交互 React, Material UI, React Router
后端(Backend) API 服务、数据聚合、与外部系统通信 Node.js, Express, TypeScript
通用(Common) 类型定义、API 接口契约、共享工具函数 TypeScript 类型、Zod 校验
移植适配要点:本课程的核心任务是将一个已有的、可能绑定特定基础设施(如某家云厂商的签名服务)的制品签名链路能力,以 Backstage 插件的形式进行抽象和移植,使其能够适配不同组织的 IDP 环境。
Backstage 插件在 IDP 中的位置 内部开发者平台 (IDP) Backstage 门户 插件容器 统一 UI 框架 权限与通知 制品签名插件 (本课程目标) 其他插件 K8s / 模板 / 文档 后端能力 Cosign / Notation 签名 Kyverno / OPA 策略 Rekor 透明日志 制品仓库 API

1.4 本课程目标与前置知识

课程目标

完成本课程后,你将能够:

  1. 理解制品签名链路的核心概念与主流工具(Cosign, Notation, Kyverno)。
  2. 掌握 Backstage 插件开发的标准流程(前端、后端、通用模块)。
  3. 实现一个完整的 Backstage 插件,用于可视化展示制品的签名状态、验证结果和审计追溯信息。
  4. 完成从特定基础设施到通用 IDP 的移植适配,使插件具备可配置性和可扩展性。

前置知识要求

领域 具体要求
TypeScript / Node.js 熟悉异步编程、类型系统、Express 框架基础
React 掌握函数组件、Hooks、Material UI 基本组件使用
容器与 Kubernetes 了解容器镜像、Pod、Deployment 等基本概念
CI/CD 基础 了解流水线阶段、制品构建与推送流程
Backstage 入门 了解 App 创建、插件安装、Catalog 实体概念(非必须,课程会引导)