跳到主要内容

核心概念

FeatureProbe 包含『功能粒度』的发布管理、灰度放量、降级预案、AB 实验等一系列管理操作。它可以让开发人员、运营人员、运维人员安全、高效的完成功能交付,同时精细控制变更风险FeatureProbe提供高性能的服务,所有主流语言的SDK,可以为各类技术栈的软件项目提供持续交付时代下的最先进的『功能管理』服务。

在这里我们介绍一些涉及到『功能管理』以及 FeatureProbe 的基本概念。

功能管理(特性管理,Feature Management)

功能管理是一套软件研发的方法论与实践,它提出以『功能』粒度去规划、开发、测试、发布以及获取用户反馈,以便业务、研发、测试、运维人员能够更加聚焦于独立『功能』的交付及其商业价值的评估。它是持续交付与 DevOps 活动的高级阶段。

功能管理实践需要相应的价值观、方法论、实践以及工具的支持。FeatureProbe 是功能管理方法论指导下诞生的,原生支持功能管理实践的工具平台。

开关(Toggle)

在功能管理中,我们将单个功能的管理实体称之为『开关』。按照字面简单理解,它管理这个独立『功能』是开放给用户,还是对用户关闭。在 FeatureProbe 平台上,它表现为一个开关配置,在代码或者 SDK 中,它表现为一个功能是否打开的判定结果。

实际中我们会扩展『开关』的概念,使得一个 FeatureProbe 开关(toggle)不仅可以携带『开』、『关』两个状态,而且可以携带更多的信息,例如一个数值,一个字符串,甚至是一段 json 文本。

开关属于某个项目,开关创建后,会在项目的所有环境中出现。

分组

分组是开关可能获取到的返回值的集合,对于一个只有最简单『开关』功能的 Toggle 来说,分组只有两个,分别是『开』『关』。我们允许 Toggle 含有多于两个的分组。

一个开关至少应该包含两个分组,但我们允许开关返回多种分组结果,以便功能向多个不同的人群投放不同的效果。当开关并非 bool 类型时,就可以配置多于两个的分组。

规则

规则包含一个人群的选择条件,可以通过与、或条件添加组合逻辑来划定一个规则内的人群,并且指定向这个人群返回哪个『分组』值。

项目(Project)

项目是开关的集合,可以基于项目维度统一指定项目内开关的通用管理规则,例如权限等。我们推荐按实际业务的服务(微服务)粒度来对应项目。

环境(Environment)

一个项目下支持多种环境,一般可能包括线上环境、测试环境、开发环境等。所有环境里都包含项目下的所有开关,但是开关在各个项目内的设置通常是不同的,例如同一个开关,在测试环境打开,但是在线上环境关闭。

人群组

人群组是可以在多个开关内共享的一些人群选取规则,可以跨 Toggle 规则间复用。

灰度发布

由于功能管理天然具有向指定人群打开特定功能的能力,所以灰度发布是功能管理天然具有的能力。但这种灰度发布跟传统所说的灰度有以下差别:

  • 『功能』粒度,而非版本粒度
  • 逻辑灰度,而非物理灰度(机器灰度、网关分流流量灰度)

二者灰度维度不同,在对稳定性要求比较高的场景下,二者同时使用也是合适的。