单租户时代:SaaS范式转移
作者:David Heinemeier Hansson,网名DHH,37 Signal 联创与CTO,Ruby on Rails 作者,下云倡导者、实践者、领跑者。反击科技巨头垄断的先锋。
译者:冯若航,网名 Vonng 。磐吉云数创始人与CEO。Pigsty 作者,PostgreSQL 专家/布道师。公众号《非法加冯》主理人,云计算泥石流,数据库老司机。
多租户是Web服务的复杂之源
Multi-tenancy is what’s hard about scaling web services[1]
现今的计算机速度已经快到令人咋舌的地步,几乎没什么组织能够让单台服务器上运行的 Web 信息系统不堪重负。现如今的 Web 服务所需的所有复杂性和精细化设计,其实都是为了解决一个问题 —— 多租户——即让单一系统同时满足数百万用户的需求。但是如果我们换个思路呢?
这样的理念,让 SQLite 在其经典嵌入式场景外重新引起关注。当然你不可能仅用一个 SQLite 实例来运行 HEY 或 Basecamp 并同时服务所有客户,更别说 Shopify 或者 GitHub 了 —— 我们可以用 MySQL 和 PostgreSQL 这些高效的数据库系统,它们就是为此而生的。但上述服务们的任何单一客户,都完全可以运行于单台服务器的 SQLite 上,那这又意味着什么呢?
我们正试图通过 ONCE[2] 项目来探索这个问题 —— 这是我们即将推出的一系列基于Web网页的系统 —— 你可以将其作为产品购买,而非作为服务租用。我们的想法是,您将自己部署并运行这个产品,无论是在云上的虚拟机还是你自己的硬件上 —— 而且只为您自己服务:没有多租户机制,数据不会相互混杂,扩容伸缩起来也简单得多。
我们还在对这个概念进行最后的润色与打磨,所以我这里就不展开 ONCE 到底是干嘛用的了,这都不是关键。关键是现如今绝大多数的基于网络的信息系统,都是在多租户的范式下以 SaaS 的形式提供服务的。这正是我们行业在过去二十年中一直在优化的模式,它确实管用。
说起 “管用” 时,我的意思是这种做法是“可行的”。因为规模一旦达到一定程度,事情就会棘手起来。云计算最初宣传说会让这件事变得容易 —— 但这从来没兑现过:没有哪个拥有数百万用户的重量级网络信息系统是“容易”运行的。大多数系统都需要专门的运维团队,不断地维护这些复杂的巨兽,而这些巨无霸通常都是围绕着核心的数据存储构建的。
而这正是为什么单租户、SQLite、以及将服务再次转变为产品,会是一种非常诱人的想法 —— 这样能够规避绝大部分的开发/运维复杂度。
但这并不算什么新鲜事,容我提醒各位,我们钟爱的行业有许许多多摇来摆去的潮流,而分布式的客户端与集中式的服务是其中最大的钟摆之一。
比起找一堆历史先例来贬低这个想法,倒不如欣然接受这样一个事实:进步往往需要回头审视先前的主意。
如果单租户成为解决规模问题的成功策略,那么我个人对接下来会发生的概念大精简感到极度兴奋 —— 让我们拭目以待,勇闯未来!
隔壁老冯评论
DHH 不仅在下云上引领潮流,更是在 SaaS 领域两面开火。但这两件事其实内在逻辑是一致的 —— 就是用第一性原理去重新审视技术领域的现状,挑战现有的理念,提出问题与解决方案并亲身践行。
无论是云(IaaS/PaaS)还是 SaaS ,关于这些昂贵的服务,一个值得思考的问题是 —— 究竟是什么原因迫使用户只能租赁软件服务,而不是直接拥有软件产品?在这种意义上,公有云和私有云的划分并不准确 —— 它们应该叫公租云与私属云。
抛开那些有强网络效应的服务不谈,并没有什么技术性的问题阻碍工具性/能力性的软件被用户直接拥有 —— 回想20年前的盒装买断软件,它们就是这样工作的。而现在,范式的钟摆又一次开始摆动了。
References
[1]
Multi-tenancy is what’s hard about scaling web services: https://world.hey.com/dhh/multi-tenancy-is-what-s-hard-about-scaling-web-services-dd1e0e81[2]
ONCE: https://once.com/
云商业模式篇
下云奥德赛篇
云厂商画像篇