Unleash 使用指南:让功能发布变得轻松自如

天天

发布于234天前
龙猫也是猫
如果你经常为新功能上线而提心吊胆,或者想让产品迭代更灵活,那这篇文章绝对值得一读。

## 什么是 Unleash?

简单来说,Unleash 就是一个**功能开关管理平台**。想象一下,你家里的电灯开关,打开就亮,关闭就灭。Unleash 就是给你的代码功能装上这样的开关——你可以随时控制某个功能对哪些用户开放,而不需要重新发布代码。

比如你开发了一个新的支付功能,但不确定稳定性如何。用 Unleash,你可以先只对 10% 的用户开放,观察没问题后再逐步放开到 50%、100%。要是出问题了?一键关闭,立马回滚,不用熬夜改代码重新发布。

官方提供了 15+ 个 SDK,涵盖 Java、Node.js、Python、Go、.NET、React、Android、iOS 等主流技术栈。基本上你用什么语言,它都能支持。


https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.liu.unleash


应用启动后,用以下账号登录:
- 用户名:`admin`
- 密码:`unleash4all`

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/fd3cb7ea-9f57-4bb6-9c06-7974fddf7398.png "image.png")


## 实战教程:创建你的第一个功能开关

### 步骤 1:创建功能标记

登录后台后:
1. 点击 "Create feature flag"
2. 输入一个好记的名字,比如 `new-payment-feature`
3. 选择项目(默认的 default 项目就行)
4. 点击创建

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/7176a94c-535b-4483-88c4-4e2b394bb5af.png "image.png")


![image.png](https://dl.playground.lazycat.cloud/guidelines/496/92214cf7-780a-434e-854b-cc359644bac5.png "image.png")
 在右侧可以看到 API 的用法
 
![image.png](https://dl.playground.lazycat.cloud/guidelines/496/558959f0-ca7a-410f-9df3-fc09453f88a6.png "image.png")

### 步骤 2:配置激活策略

这是 Unleash 的精髓所在!你可以设置各种条件来控制功能开放:

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/ec88fa7a-23ae-46ac-8d51-a116b531aa43.png "image.png")

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/f1536912-54f0-4d57-9e15-107f734632fe.png "image.png")
#### 灰度发布(最常用)
```
策略类型:Gradual Rollout
百分比:20%
```
这样只有 20% 的用户能看到新功能。

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/20c8671c-8c21-4b36-acb6-511b131b7db4.png "image.png")
#### 定向发布
```
策略类型:UserWithId
用户 ID:user123, user456
```
只对特定用户开放,特别适合内测。

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/c0846d73-ee8b-4037-8956-fa3fbae07169.png "image.png")
#### 按条件发布
比如只对使用 Chrome 浏览器的用户开放:
```
添加约束条件:
- 字段:browser
- 操作符:IN
- 值:chrome
```

### 步骤 3:在代码中使用

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/3c2fa261-4d4b-44ed-89c7-149637ad5559.png "image.png")


![image.png](https://dl.playground.lazycat.cloud/guidelines/496/2a65503f-887b-4d97-a270-1feb6df3314e.png "image.png")

它会自动给出使用代码示例

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/e9b01d25-fc3d-4e8d-8179-99ff10ac4f00.png "image.png")

在本地运行后可以看到链接成功

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/8cfb4f2c-e262-4ec8-9def-ad0e1aedd82d.png "image.png")

就这么简单!
在 playground 可以检测你的配置是否正确

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/e7561824-e9d9-466c-952a-efcf19cd6e4e.png "image.png")

## 进阶玩法

### A/B 测试
Unleash 支持功能变体(Variants),可以用来做 A/B 测试:

```javascript
const variant = unleash.getVariant('checkout-flow');
if (variant.name === 'version-a') {
    // 显示 A 版本结账流程
} else if (variant.name === 'version-b') {
    // 显示 B 版本结账流程
}
```

你可以给不同变体设置权重,比如 A 版本 50%,B 版本 50%,然后看哪个版本转化率更高。

### 多环境管理
Unleash 支持多环境配置,同一个功能在不同环境可以有不同的开关状态:
- 开发环境:全开
- 测试环境:开放给测试人员
- 生产环境:灰度 10%

### Kill Switch(紧急开关)
出问题了?一键关闭功能,瞬间止损:
1. 进入功能详情页
2. 点击环境旁边的开关
3. 关闭,完事!

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/a4ee6302-b396-4250-8a5d-3eccf7d2161e.png "image.png")
不用改代码,不用重新部署,用户立即看不到有问题的功能。


## 总结

如果你还在用传统的方式发布功能——写代码、测试、上线、祈祷不出问题,建议试试 Unleash。相信我,用过之后你会感叹:原来功能发布可以这么简单!

记住核心理念:**部署 ≠ 发布**。代码可以随时部署,但功能要在合适的时候才发布给合适的用户。

祝大家都能愉快地管理功能发布,再也不用半夜紧急回滚了!

---

**相关资源:**
- [Unleash GitHub](https://github.com/Unleash/unleash)
- [官方文档](https://docs.getunleash.io/)
- [在线 Demo](https://www.getunleash.io/interactive-demo)
- [Slack 社区](https://slack.unleash.run)

评论

0

暂无评论

说点什么呢~
收藏
0
0
0