3. 自助门户概述

自助门户是 Feature Flag 发布工程体系中面向开发、测试、运维及产品人员的统一操作界面。它将底层开关配置、环境管理、权限控制与审计追溯能力封装为可视化功能模块,使团队无需直接操作后端 API 或配置文件即可完成日常发布与实验管理。

3.1 自助门户的定义

自助门户(Self-Service Portal)是一个基于 Web 的集中化控制台,提供对 Feature Flag 全生命周期的可视化操作能力。其核心设计理念是“配置即服务”——用户通过表单、开关、下拉菜单等交互组件完成功能开关的创建、发布、回滚与关闭,而无需理解底层存储、分发或 SDK 集成细节。

关键特征: 零命令行操作、多环境隔离、实时生效、操作可追溯。

3.2 目标用户

自助门户面向三类主要用户群体,每类用户的操作权限与关注点不同:

用户角色 核心职责 常用操作
开发工程师 功能开发、开关编码、灰度验证 创建开关、设置变量、绑定环境、查看生效状态
测试/QA 工程师 功能验证、回归测试、A/B 实验 切换开关状态、配置用户分群、查看审计日志
发布经理 / SRE 发布审批、环境管控、故障应急 审批开关变更、管理环境权限、执行全量/灰度发布
提示: 自助门户通常还支持“只读用户”(如项目经理、业务分析师),用于查看开关状态与发布进度,但不具备修改权限。

3.3 核心功能模块

自助门户由四个核心功能模块构成,它们共同支撑起 Feature Flag 的配置、运行、安全与审计闭环。

3.3.1 开关管理

开关管理是门户的核心模块,提供对 Feature Flag 的增、删、改、查及状态切换能力。每个开关包含以下关键属性:

  • 开关标识(Key): 全局唯一的字符串,SDK 通过该 Key 拉取开关状态。
  • 开关名称与描述: 用于团队内部识别与文档说明。
  • 开关类型: 布尔开关、百分比开关、多变量开关、实验开关等。
  • 默认值: 当 SDK 无法连接服务端时的降级行为。
  • 生效环境: 开关在哪些环境中可用(开发、测试、预发布、生产)。

3.3.2 环境管理

环境管理模块负责定义和维护不同的部署环境,并控制开关在每个环境中的独立配置。环境是隔离开关状态的基本单位,同一开关在不同环境可以拥有完全不同的值或规则。

  • 环境创建与删除: 支持自定义环境名称(如 dev、staging、prod)。
  • 环境克隆: 从已有环境复制开关配置,快速搭建新环境。
  • 环境锁定: 禁止非授权用户修改生产环境开关状态。

3.3.3 权限管理

权限管理模块确保只有授权用户才能执行敏感操作。通常采用基于角色的访问控制(RBAC)模型:

角色 开关管理 环境管理 审计查看 审批权限
管理员 完全控制 完全控制 可查看 有
开发者 创建/修改 仅非生产 可查看 无
只读用户 只读 只读 可查看 无

3.3.4 审计日志

审计日志模块记录所有对开关、环境、权限的变更操作,形成不可篡改的操作轨迹。每条日志至少包含:

  • 操作时间: 精确到毫秒的时间戳。
  • 操作人: 执行操作的用户账号。
  • 操作类型: 创建、修改、删除、启用、禁用、审批等。
  • 变更详情: 变更前后的值对比(如开关状态从 false 变为 true)。
  • 来源 IP 与 User-Agent: 用于安全溯源。
注意: 审计日志是发布合规与故障排查的关键依据,建议至少保留 90 天以上,并支持导出为 CSV 或 JSON 格式。

3.4 自助门户核心架构图

下图展示了自助门户的模块组成与用户访问关系:

自助门户核心架构图 自助门户核心功能模块架构 用户(开发/测试/发布经理) 自助门户 Web 控制台 开关管理 创建/修改/删除/切换 环境管理 环境隔离/克隆/锁定 权限管理 RBAC / 审批 / 角色 审计日志 操作记录 / 溯源 数据存储层(数据库 / 缓存 / 消息队列) 客户端 SDK(移动端 / 服务端 / Web)

3.5 模块协作流程

以下流程图展示了一次典型的功能开关发布操作中,四个核心模块如何协同工作:

自助门户模块协作流程 功能开关发布协作流程 1. 开发创建开关 2. 配置环境变量 3. 提交发布审批 4. 审批通过 / 拒绝 拒绝:返回修改 开发修改开关配置 通过:执行发布 审计日志记录完成
最佳实践: 建议在自助门户中为生产环境开启“强制审批”策略,所有开关变更必须经过至少一位发布经理审批后方可生效,同时审计日志自动记录审批意见与时间戳。