从 33 份许可证到 1,850 家客户:Sidekiq
迈克·佩勒姆免费开放处理 Ruby 后台任务的 Sidekiq,再靠 Pro 与 Enterprise 的商业许可和订阅收入,把开发者工具做成一个人长期运营的生意。
打造后台任务处理工具
2012 年,迈克·佩勒姆(Mike Perham)发布了处理 Ruby 应用程序后台任务的 Sidekiq。基础版免费分发,同时向需要其他使用条件的企业出售 50 美元一份的商业许可证。第一批许可证卖出 33 份,总计 1,650 美元。要把一个投入数百小时开发的工具持续维护下去,就需要一件客户有更明确理由付费的产品。
Sidekiq 负责的是 Web 服务界面背后那些反复执行的工作。把发送订单通知邮件、与外部服务同步数据这类工作单独处理,用户就不必守在屏幕前等它完成。开发团队也得到一个共同的基础:把任务放进队列、失败后重试、查看处理状态。
佩勒姆是那种在多家公司亲手做过这类系统的开发者。2008 年,他在 FiveRuns 做过任务队列,之后也不断更换存储方式和执行结构,开发过多个后台处理工具。Sidekiq 里装着的,是这段经历积累下来的经验,以及减少既有工具不便之处的设计。
核心选择是让单个进程内用多个线程处理任务的结构。重点在于减轻那种想提高并发量就不断追加进程的做法带来的资源负担。在引入方面,他重视与 Rails 的紧密集成,以及让原有 Resque 用户容易迁移过来的兼容性。
他任职的电商公司 The Clymb 在真实服务里使用了这款早期产品。2012 年 10 月,佩勒姆表示公司把 Sidekiq 投入生产环境已有六个月,它比此前的 Delayed Job 配置运行得更快、更稳定。在自家运营的服务里得到的经验,成了改进产品和设计付费功能的基础。
Sidekiq Pro 开始带来收入
2012 年 10 月推出的 Sidekiq Pro 定价为每家公司 500 美元。其中包含把多个任务合并成一批并追踪进度的批处理功能、任务批次结束时发送的通知,以及收集运行指标的功能。开发者可以搭出“处理完数百张图片再执行下一步”这样的流程。这是在基础处理工具之上,把企业自己实现和维护起来很麻烦的功能作为付费扩展加了上去。
Pro 在推出后第一年卖出了约 140 份,收入达到 7 万美元。按 2013 年 10 月前后的销售速度折算成全年约为 10 万美元,把副业变成正职的可能性开始显现。在同一篇回顾里,佩勒姆记录了过去一年发布了 34 次 Sidekiq。有了收入,继续投入时间改进功能和修复错误也就有了明确的理由。
早期的销售,靠的是他在 Ruby 开发者之间积累起来的信任。佩勒姆从 2007 年起运营技术博客,在 RubyConf 和 RailsConf 与开发者见面、回答问题。用过产品的开发者向同事推荐,或者在新入职的公司再次引入,这样的情形不断出现。他把在两三家不同公司都买过 Pro 的开发者,列为增长中的重要案例。
Pro 推出后约 18 个月里,月收入上升到了 1 万美元的水平。副业收入超过本职工作的工资之后,佩勒姆着手准备独立,并于 2014 年 7 月离开 The Clymb。同月,他成立 Contributed Systems,把 Sidekiq 的开发和客户支持作为全职工作。产品真正能承担生活开支之后,他才改变了工作方式。
订阅制与 Enterprise
付费版朝着更深入支持企业工作流程的方向发展。2015 年 2 月,Pro 2.0 修改了结构,让批次里可以再嵌套批次,从而管理分多个阶段衔接的任务。把定时任务移入队列途中可能丢失任务的那个环节,也通过新的调度器做了改进。客户买到的价值里,又加上了复杂任务的控制和运行稳定性。
销售方式也配合持续维护改成了订阅。佩勒姆在 2016 年的采访中,把用一次性付款提供终身支持列为最大的失误。因为 Ruby 和 Rails 一旦变化,产品也得跟着修改;用户增加,支持工作也会持续产生。当时他已经在按产品会在应用程序里使用多年的性质,改卖年度订阅。
2015 年 8 月,面向更大企业的 Sidekiq Enterprise 发布。新增了限制外部 API 请求量以免请求过于集中的功能、按既定日程执行任务的功能,以及抑制重复登记任务的功能等。这些功能瞄准的,是吞吐量变大、连接多个系统时产生的运维问题。愿意接受比 Pro 更高价格的客户群和使用目的变得清晰起来。
Enterprise 的购买流程也按企业的要求做了调整。Pro 继续保留信用卡支付,Enterprise 则开通了走报价单、采购订单和发票的交易方式。发布时还提供合同条件谈判,以及由佩勒姆亲自主持的一小时引入咨询。相当于给开发者想用的产品,加上企业实际能够采购的流程。
价格标准按运营规模区分。当时 Pro 为每年 950 美元,不限制任务执行规模;Enterprise 则按生产环境使用的任务线程数上调价格。给小型公司提供简单的固定价格,同时向大规模使用的公司收取与其规模相称的费用。
包含 Enterprise 发布的 2015 年,收入增至前一年的 2.6 倍,平均客单价翻了一倍。佩勒姆说,他最初的目标是卖出 2,000 份 500 美元的产品、总共赚到 100 万美元。经营过程中他判断,拿下 500 家愿意支付 2,000 美元的客户更现实。这是在企业级细分产品上,用较高的效用和合适的价格化解客户数量上限的经验。
划定一个人运营的范围
第二个产品上,同样的做法没能带来足够的收入。2014 年底推出的进程监控工具 Inspeqtor 及其付费版,使用和销售都没达到预期。佩勒姆在 2015 年整理这项业务的回顾里表示,既有产品会保持可用,但不再追加新功能。他停止把开发时间继续分配给销售反应疲软的产品。
2017 年 10 月公开的 Faktory,拓展了他熟悉的后台任务处理领域。他把在 Sidekiq 里积累的设计拆成任务服务器和执行程序,让其他编程语言也能用上这套方式。发布时提供了 Ruby 和 Go 用的执行工具,让用多种语言构成的系统也能按同一套方式交换任务。
把规模控制在一个人能运营的范围内,也受了产品交付方式的影响。Sidekiq 在客户自己的服务器上运行,所以佩勒姆为了销售而运营的设施,只需聚焦在付费软件的发布和访问权限管理上。2016 年公开的部署配置使用每月 5 美元的服务器实例和 Apache,为防故障还跑了两台。处理客户实际任务的服务器,和销售软件的服务器,职责是分开的。
付款之后的重复性工作,是在销量增长之后才自动化的。头两年,他收到销售通知后手动添加客户的访问权限。后来改成从 Stripe 接收付款通知、创建账户、用邮件发送安装说明,订阅结束时再移除下载权限。客户从购买到安装的过程中,不再需要创始人每次都介入。
必须由人完成的客户支持工作仍然留着。佩勒姆说,休假时他也会带上笔记本电脑,早上花大约一小时回邮件,再安排剩下的时间。他认为增加员工会带来管理事务和运营成本上升,于是把业务设计在自己能高效完成、或者能自动化的范围里。
十周年之后的持续开发
2022 年 1 月,在为纪念 Sidekiq 开发十周年而公开的数据里,Contributed Systems 的客户数量是 1,850 家。公司累计总收入为 1,350 万美元,员工只有佩勒姆一个人。他表示,支持 Sidekiq 和 Faktory 用户占去了大部分工作时间。靠商业扩展带来的收入长期维护产品的结构,这时已经成型。
产品的改进在那之后也没有停下。2025 年 3 月公开的 Sidekiq 8.0 加入了分析运行中任务性能的功能和改版后的管理界面,把耗时任务拆成小单位的功能也做了打磨。除了 Redis,还正式支持 Valkey 和 DragonflyDB,客户可选的存储也更多了。在最初的处理效率之上,他又为了让已经引入产品的企业用起来顺手而继续改进。
规模做大之后,他把接受企业个别需求的范围也重新做了界定。2026 年的商业版 FAQ 写明,不再单独协商合同条件,安全与合规文件的撰写只面向达到一定规模以上的 Enterprise 客户提供。早期 Enterprise 拓宽了企业采购的门,后来的运营条件则限制了反复谈判和文件工作的范围。这种标准化,是客户增多时控制非开发工作量的机制。
Sidekiq 的生意,是从接手企业原本要自己实现和维护的任务处理功能中成长起来的。客户有理由把省下的开发时间、故障应对负担和持续改进的成本一起算进去,而佩勒姆则获得了长期维护这些功能的收入。他把免费工具的普及、企业功能的销售、按使用规模定价和有限的运营范围结合起来,让开发者工具成了自己长期的生计。