rollout
2,905
Stars
211
Forks
59
Watchers
—
Open Issues
MIT
许可证
Ruby
语言
2010-07-18
创建时间
2026-10-29
最近更新
项目能做什么
基于 Redis 的 Feature Flags(特性开关)管理工具。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# rollout Fast feature flags. Upgrading from Rollout 2? Follow the [Rollout 3 upgrade guide](docs/upgrading-to-v3.md) before updating your dependencies. [](https://badge.fury.io/rb/rollout) [](https://github.com/fetlife/rollout/actions/workflows/test.yml) [](https://codeclimate.com/github/FetLife/rollout) [](https://codeclimate.com/github/FetLife/rollout/coverage) ## Install it ```bash gem install rollout -v '~> 3.1' gem install rollout-redis-adapter -v '~> 0.1' ``` ```ruby gem "rollout", "~> 3.1" gem "rollout-redis-adapter", "~> 0.1" ``` Active Record applications can use `rollout-active_record-adapter` instead of `rollout-redis-adapter`. See the [Active Record adapter README](rollout-active_record-adapter/README.md). To copy current feature state from Redis, see [Migrate from Redis](rollout-active_record-adapter/README.md#migrate-from-redis). ## How it works Initialize a rollout object. I assign it to a global var. ```ruby require "redis" require "rollout" require "rollout-redis-adapter" $redis = Redis.new $rollout = Rollout.new(adapter: Rollout::Adapters::Redis.new($redis)) ``` Update data specific to a feature: ```ruby $rollout.set_feature_data(:chat, description: 'foo', release_date: 'bar', whatever: 'baz') ``` Check whether a feature is active for a particular user: ```ruby $rollout.active?(:chat, User.first) # => true/false ``` Check whether a feature is active globally: ```ruby $rollout.active?(:chat) ``` You can activate features using a number of different mechanisms. ## Groups Rollout ships with one group by default: "all", which does exactly what it sounds like. You can activate the all group for the chat feature like this: ```ruby $rollout.activate_group(:chat, :all) ``` You might also want to define your own groups. We have one for our caretakers: ```ruby $rollout.define_group(:caretakers) do |user| user.caretaker? end ``` You can activate multiple groups per feature. Deactivate groups like this: ```ruby $rollout.deactivate_group(:chat, :all) ``` Groups need to be defined every time your app starts. The logic is not persisted anywhere. ## Specific Users You might want to let a specific user into a beta test or something. If that user isn't part of an existing group, you can let them in specifically: ```ruby $rollout.activate_user(:chat, @user) ``` Deactivate them like this: ```ruby $rollout.deactivate_user(:chat, @user) ``` ## User Percentages If you're rolling out a new feature, you might want to test the waters by slowly enabling it for a percentage of your users. ```ruby $rollout.activate_percentage(:chat, 20) ``` The algorithm for determining which users get let in is this: ```ruby Zlib.crc32(user.id.t阅读完整原文
项目深度分析 AI 生成
开箱即用的现代化 Rollout 管理控制台(SaaS / 自托管插件)
| 产品构想 | 基于 Rollout 的底层存储(Redis/ActiveRecord),构建一个独立且具备鉴权、审计日志、多环境支持的现代化 UI 控制面板,弥补原库缺乏原生企业级 UI 的不足。 |
| 核心功能 | 百分比可视化滑块调整、用户/组白名单管理、操作审计日志(谁在何时切换了开关)、多环境(Staging/Prod)同步。 |
| 目标用户 | 使用 Rollout 的工程团队、技术负责人及产品发布团队。 |
| 难度/周期 | 中等 · 1-2 个月 · 成本:低(基础 Web 框架开发与轻量测试服务器) |
| 收费模式 | 开源核心面板,企业版提供 SSO、多租户与 RBAC 权限控制;或按活跃席位收取订阅费。 |
| 竞争风险 | 市场上已有 LaunchDarkly 等成熟 SaaS,直接竞争压力大;自建轻量工具愿付费意愿需验证。 |
| 依据 | 已验证事实 |
自动故障降级与金丝雀监控联动扩展(Degrade / Metrics 集成)
| 产品构想 | 结合原项目提及的自动熔断思路(如结合 Sentry、Datadog),开发一个根据错误率或性能指标自动回滚/关闭 Feature Flag 的自动化监控与触发服务。 |
| 核心功能 | 告警 Webhook 接入、自动关停开关、异常恢复后自动恢复放量、灰度发布健康度面板。 |
| 目标用户 | 中大型高流量 Ruby 架构团队、SRE 工程师。 |
| 难度/周期 | 中等 · 1.5-3 个月 · 成本:低至中等(需维护各类监控平台的集成与测试环境) |
| 收费模式 | 按受保护的端点数或开关数量收取月度服务费;自托管企业授权许可(License key)。 |
| 竞争风险 | 依赖第三方监控服务稳定性;对高可用和实时性要求极高,存在误关核心功能的风险。 |
| 依据 | 数据支持的判断 |
从开源 Rollout 迁移至企业级 Feature Flag 的咨询与定制开发服务
| 产品构想 | 为长期依赖 Rollout 的老旧系统提供迁移咨询、多语言兼容 SDK 开发,以及针对海量用户的分桶算法优化方案。 |
| 核心功能 | 现有 Redis 数据平滑迁移方案、多语言(Go/Node.js)Rollout 兼容库、本地私有化高可用方案设计。 |
| 目标用户 | 正在从 Ruby 单体演进至微服务架构、或面临合规审计压力的技术团队。 |
| 难度/周期 | 低 · 持续/按项目交付 · 成本:极低(主要是个人工时投入) |
| 收费模式 | 按咨询人天或交付项目包收费。 |
| 竞争风险 | 项目制交付难以规模化,客户线索获取成本高。 |
| 依据 | AI推测 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
相似项目数据正在完善中,暂不展示(避免误导)
项目优势与风险
| 技术成熟度 | 创建于 2010-07-18,近 30 天仍在推送,发布过 23 个 Release |
| 社区活跃 | Star 2,905 / Fork 211 / Issue 0(数据支持,可自行核实) |
| 许可证 | MIT |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。