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 自助门户核心架构图
下图展示了自助门户的模块组成与用户访问关系:
3.5 模块协作流程
以下流程图展示了一次典型的功能开关发布操作中,四个核心模块如何协同工作:
最佳实践: 建议在自助门户中为生产环境开启“强制审批”策略,所有开关变更必须经过至少一位发布经理审批后方可生效,同时审计日志自动记录审批意见与时间戳。