Unleash是什么?
Unleash是一个强大的开源特性管理解决方案。它简化了您的开发工作流程,加速了软件交付,并使团队能够控制如何以及何时向最终用户推出新功能。使用Unleash,您可以按照自己的节奏将代码部署到生产环境中,实现更小、更易管理的发布。
Unleash中的特性标志让您可以使用真实的生产数据测试代码,降低对用户体验产生负面影响的风险。它还使您的团队能够同时处理多个功能,无需使用单独的功能分支。
Unleash是GitHub上最受欢迎的开源特性标志解决方案。它支持15个官方客户端和服务器SDK,以及超过15个社区SDK。您甚至可以创建自己的SDK。Unleash兼容任何语言和框架。
Unleash入门
1. 设置Unleash
要开始使用Unleash,您需要在机器上安装git
和docker
。
执行以下命令:
git clone git@github.com:Unleash/unleash.git
cd unleash
docker compose up -d
然后在浏览器中访问localhost:4242
并使用以下凭据登录:
- 用户名:
admin
- 密码:
unleash4all
如果您更愿意直接通过Node.js运行此仓库中的源代码,请查看贡献指南中的逐步说明,了解如何启动和运行项目。
2. 连接您的SDK
在我们的官方SDK列表中找到您喜欢的SDK并将其导入到您的项目中。按照特定SDK的设置指南进行操作。
如果您使用上一步中的docker compose文件,以下是您需要的配置详细信息:
- 对于前端SDK,使用:
- URL:
http://localhost:4242/api/frontend/
clientKey
:default:development.unleash-insecure-frontend-api-token
- URL:
- 对于服务器端SDK,使用:
- Unleash API URL:
http://localhost:4242/api/
- API令牌:
default:development.unleash-insecure-api-token
- Unleash API URL:
如果您使用不同的设置,您的配置详细信息很可能也会不同。
检查特性标志
在代码中检查特性标志的状态很简单!根据您使用的语言,语法可能会有所不同,但您只需要一个简单的函数调用来检查标志是否可用。以下是Java中的示例:
if (unleash.isEnabled("AwesomeFeature")) {
// 执行新的、炫酷的功能
} else {
// 执行旧的、平淡的操作
}
在服务上运行Unleash?
如果您不想在本地运行Unleash,我们还提供了Heroku和Digital Ocean的简单部署设置:
在任何地方配置和运行Unleash
上述部分向您展示了如何快速轻松地开始使用。当您准备好开始为自己的环境配置和定制Unleash时,请查看以下文档:自管理部署入门、Unleash配置选项或通过docker在本地运行Unleash。
在线演示
试用Unleash在线演示。
社区和帮助 — 分享就是关爱
我们知道学习新工具可能很困难且耗时。我们有一个不断成长的社区,喜欢提供帮助。如果您需要帮助,请不要犹豫,随时联系我们。
💬 如果你想就Unleash、功能开关或相关话题提出公开问题或进行讨论,欢迎在Slack上加入Unleash。
💻 如果你发现了bug或有改进Unleash的想法,请创建GitHub issue。
📚 欲了解更详细的描述、操作指南等信息,请访问文档。
📖 了解更多关于构建和扩展功能标志解决方案的原则。
为Unleash做贡献
Unleash是GitHub上最大的开源功能标志解决方案。构建Unleash是一项协作努力,我们非常感谢许多聪明和有才华的个人。与社区一起构建确保我们能为真实的人解决真实的问题。我们也很乐意得到你的帮助:请随时提出问题或提供拉取请求。
查看CONTRIBUTING.md文件了解贡献指南,以及Unleash开发者指南获取环境设置、运行测试和从源代码运行Unleash的提示。
贡献者
用户喜爱的功能
灵活性和适应性
- 轻松概览所有环境、应用程序和服务中的所有功能标志
- 使用内置的激活策略满足最常见的用例,或使用自定义激活策略支持任何需求
- 通过功能标志标签组织功能标志
- 金丝雀发布/渐进式推出
- 定向发布:向特定用户、IP或主机名发布功能
- 紧急开关
- A/B测试
- 2个环境
- 与流行工具的开箱即用集成(Slack、Microsoft Teams、Datadog)+ 使用webhooks与任何工具集成
- 管理技术债务的仪表板和过时标志
- API优先:所有操作都可以自动化。没有例外。
- 12个官方客户端SDK和十个社区贡献的客户端SDK
- 通过官方Docker镜像使用Docker运行,或作为纯Node.js应用程序运行
安全性和性能
- 设计时考虑隐私(GDPR和Schrems II)。最终用户数据永远不会离开你的应用程序。
- 审计日志
- 通过严格的仅HTTPS模式强制执行OWASP的安全标头
- 灵活的托管选项:本地或云端托管(任何云)
- 独立扩展Unleash代理,以支持任意数量的前端客户端,而不会使Unleash实例过载
寻找更多功能?
如果你正在寻找以下功能之一,请查看我们的Pro和Enterprise计划:
- 基于角色的访问控制(RBAC)
- 单点登录(SSO)
- 更多环境
- 功能标志项目支持
- 高级分段
- 额外的策略约束
- 更严格的安全性
- 更多托管选项(我们甚至可以为你托管!)
架构
在Unleash文档的系统概览部分阅读更多信息。
Unleash SDK
要将你的应用程序连接到Unleash,你需要使用适合你编程语言的客户端SDK。
官方服务器端SDK:
官方前端SDK:
前端SDK通过Unleash Proxy连接,以确保隐私、可扩展性和安全性。
- Android Proxy SDK
- Flutter Proxy SDK
- iOS Proxy SDK
- JavaScript Proxy SDK
- React Proxy SDK
- Svelte Proxy SDK
- Vue Proxy SDK
社区SDK:
如果官方SDK无法满足您的需求,还有许多社区开发的SDK,您可能会找到适合您喜欢的语言的实现(如Elixir、Dart、Clojure等)。
Unleash的用户
Unleash受到全球数千家公司的信赖。
自豪的开源用户:(如果您想在此添加您的标志,请给我们发消息)
迁移指南
Unleash在过去几年中发展显著,我们知道保持软件更新可能很困难。如果您正在使用当前的主要版本,升级应该不会有问题。如果您使用的是之前的主要版本,请查看Unleash迁移指南!
想了解更多关于Unleash的信息?
视频和播客
- Unleash YouTube频道
- 《功能开关 — 为什么以及如何添加到您的软件中》— freeCodeCamp(YouTube)
- 《使用Unleash的功能标志》— The Code Kitchen(播客)
- 《与Fredrik Oseberg讨论功能标志和Unleash》— Utviklerpodden(播客;挪威语)