37signals在2022年付给公云业者金额高达320万美元,相当于台币1亿元。在2023年中完成旗下产品相关AP的下云搬迁工作之后,下云效益开始浮现,到了2023年9月,37signals的云端帐单已经减少了100万美元,尤其在预付一年费用的预留执行个体契约到期后,帐单金额快速下滑。(图片来源/37signals)
早在2022年10月,开发框架Ruby on Rails之父David Heinemeier Hansson(简称DHH)突然发了一篇文章,立刻成了科技圈热烈讨论的话题。他宣布,37signals决定离开用了多年的AWS和Google Cloud公云,不再上云。
这家成立于1999年的公司,最有名的代表作是在2003年推出的专案管理工具Basecamp,十年后,也就是2013年时,成为当年全球最受欢迎的专案管理App,当时管理了多达8百万个专案。Ruby On Rails框架正是DHH当年打造第一版Basecamp所发展出来的技术框架,在2004年开源释出了,掀起了一波简洁开发的风潮。
Basecamp这项产品持续发展至今,2022年推出目前的第四版,全球超过10万家企业采用,注册用户超过了350万人,至今,Basecamp每个月的流量超过1,500万人次。Basecamp的用户分散在全世界,美国约只占了4成,其次像加拿大、印度、英国、菲律宾都有不少用户。主要用户来自行销和广告产业,其次才是科技产业。在2020年时,37signals切入了邮件服务领域,推出了Hey,上线才3周,就有30万人进行注册试用。
为何这么一家全球知名的SaaS服务决定下云?第一个原因就是费用太高!以推出2年多的企业级邮件服务Hey为例,目前有30万用户,但是,这个服务所用的AWS RDS资料库服务和ES搜寻服务,两个加起来的费用,一年高达60万美元(台币1,860万元)。甚至,在2022年时,37signals总共付给了2家公云的费用,高达320万美元,相当于台币1亿元,这对一家中小型软体公司而言,是非常庞大的成本负担。DHH认为,对一家25岁的中型的软体SaaS服务商而言,产品用户和用量稳定成长,无法享受到上云的好处,却得面临昂贵的成本。
上云两大好处,不再对37signals有用
他进一步解释,上云两大好处是,第一是应用程式功能单纯,而且流量不大(用户不多时)时,可以透过完全代管的云端服务,来降低复杂度,「对于新创,上云是很好的入门方式。」他强调,但对已经上云十多年、稳定成长的37signals而言,复杂度没有因上云简化太多,维运团队的人数更是逐年增加,2021年时约57人,是十年的2倍多,没有因为上云而缩减规模。第一个上云好处对37signals而言,已不再是一种红利。
另一个业界常提到的上云好处是,上云可以因应高度不规则的负载变化,例如有突然的爆量,或是高低落差很大的用量变化,因为无法事先知道所需要伺服器数量来准备,就很适合上云,这是许多企业想要上云的理由。
像37signals在2年前刚推出Hey邮件服务时,原本预期半年达到3万用户,却在短短3个礼拜就暴增了30万注册者。「这个爆量成长阶段,就很适合上云。」DHH事后回顾。但是,经过2年,Hey邮件服务的用户和用量的成长速度趋于稳定。
DHH认为,上云两大好处,都不适用于现在的37signals,为了因应可能的爆量情况得付出庞大的代价,他这样比喻,就像没有住在断层带,却要付出房价四分之一的地震保险费,这个代价一点都不成比例。
除了成本节省、无法享受上云好处之外,DHH认为,选择不上云还有更根本的动机,可以重新思考一家软体商该用什么样的网际网路来运作。
2022年上云费用大公开,320万美元用在哪里?
DHH这个下云的宣布,引起了网路上云支持者和反对者的大论战,许多人纷纷写信问他,到底他们怎么用AWS,为何可以节省这么多钱?为了更清楚说明上云成本的影响,这家公司也2023年1月中,公开了2022年的上云费用结构。
这家公司旗下有7款产品,Basecamp和Hey是目前主力产品,也是唯二对新顾客销售的产品。其他还有多款不再对外销售的旧产品,包括了Basecamp Classic、Basecamp 2、Highrise、Backpack、Campfire、Writeboard和Ta-da List。这些老旧产品至今仍有数万名用户,每年可以贡献上百万美元的收入,例如13年没有更新的Basecamp Classic年营收仍超过百万美元。所以,37signals承诺,这些产品会继续支援到网际网路结束那一天。
37signals在2022年付给公云业者金额,加起来高达320万美元,相当于台币1亿元。这个费用主要分为两个部分,一个是37signals旗下SaaS产品的AP上云费用,约230万美元,另一个部分是高达8PB用户资料的云端储存费用,约90万美元。从单一产品来看,30万名用户的Hey邮件服务,完全用各种云端服务打造而成,上云成本也非常高,光在2022年的上云费用高达1,066,150美元,相当于台币3,343万元
预估未来5年可省台币2亿元
公开下云计划的隔月,37signals就下单买了一批价值60万美元(台币约1,860万元)的Dell伺服器,来因应未来的成长需求。37signals不是所有的系统都部署在云端,原本就租用了资料中心代管服务商Deft在两座机房中共8个机柜,也由他们代管、维运机房内的实体伺服器,没有自己亲手管理实体伺服器。
以5年摊提年限来估算,新购实体伺服器每年摊提的成本约12万美元,再加上37signals每年付给Deft约72万美元,包括机柜等设备租金、频宽、电力。两者加起来的实体机房新增成本是一年84万美元。37signals旗下产品的AP上云费用约230万美元,将这些AP改由本地机房接手后,DHH预估,两者相比,一年可节省150万美元,5年共750万美元,扣除50万美元用来因应不可预期的备用预算之外,「下云后,未来5年可以省下700万美元(约台币2.1亿元)的上云费用!」他强调。
为了下云,37signals买了一批价值60万美元(台币约1,860万元)的Dell伺服器,共20台R7625伺服器,一台R7625伺服器内有两颗AMD EPYC 9454处理器,每个处理器有48个核心和96个执行绪,20台可以提供到近4千个vCPU,内建记忆体也达到7,680GB,还有384TB的第四代NVMe储存容量。(图片来源/37signals)
放弃K8s,自行打造全新Web应用部署工具
不过,下云之路,没有DHH想像中的容易。原本37signals想直接在本地端机房部署一套Kubernetes环境,取代原本所用的AWS EKS,可以保留多年累积的技术成果,只需要将原本的工具指向新的本地端环境。
但是,一套AP运作需要用的不只是K8s环境,还需要许多配套机制和服务,要改用实体伺服器建置Kubernete丛集来部署,这些配套机制同样需要针对本地端环境调整,这是一个高度复杂的任务。
再加上商用Kubernetes管理工具的费用要价不菲,后来,37signals干脆连Kubernetes都不用,自己开发了一套容器部署管理工具Kamal,可以直接在裸机上安装和管理相关的容器化应用。2023年2月,37signals开源释出了这套让他们成功下云的关键工具。
37signals在实体伺服器上采用的架构是开源软体的技术架构,使用KVM来提供虚拟机器,来分割实体伺服器的运算资源,再透过Docker执行容器化的应用,每一只对外服务的Web应用都是Rails应用。
37signals如何配置本地实体机房
到了2023年4月,37signals新采购的伺服器到货,直接寄到租用的代管机房,一座位于芝加哥,另一座位于维吉尼亚州的Ashburn,由长年合作的资料中心代管服务商负责安装。
在这两座资料中心中,都各有4个机柜,例如在芝加哥资料中心内的四个机柜上,仍有六、七十台实体伺服器,新伺服器建置完成后,也将淘汰了部分老旧主机。37signals总共采购了20台R7625伺服器,一台伺服器内建两颗AMD EPYC 9454处理器,每个处理器具有48个核心和96个执行绪,20台可以提供到近4千个vCPU,内建记忆体达到7,680GB,还有384TB的第四代NVMe储存容量。后来,37signals还采购了6台资料库专用的伺服器。最后,37signals顺利在2023年6月,完成了各项AP应用的下云搬迁工作,主力产品的应用系统都改在本地端机房中运作,只剩下S3储存上的8PB用户资料还没搬迁,这也将是他们在2024年最重的任务。
不过,为了支援全球用户,37signals美国两座资料中心上的应用,如同过去一样,会使用CDN 来加速对各国的交付速度,另外,37signals正在计划为Hey服务,在欧洲建立一个新的资料中心据点,正在进行测试,同样透过资料中心代理商来设定和管理。37signals采取远端工作模式,团队中的成员,没有任何一个人实际到过这些机房,亲手碰过伺服器,「拥有自己的硬体,不一定要自己打造机房,」DHH补充,机房实体安全、电力、网路、消防等设备,都可以交给专业的资料中心服务业者来处理。
在7项产品中,下云搬迁工程冲击最大的是Hey,尤其是技术架构必须调整。因为Hey是一款完全云原生的服务,所有功能和服务都由云端服务来提供。开发团队分阶段逐渐将不同技术架构的元件,转移到本地端环境,花了几个礼拜,依据不同资料库、快取伺服器、邮件服务器、App执行实例,一项一项各自独立转移。
另外,37signals产品所用相关软体较大的改变则是,将RDS资料库换成了Percona的MySQL 8,而搜寻服务openSearch也改用开源的ElasticSearch,其余所用软体原本就大多是开源技术或产品,因此,下云后没有增加什么软体授权的费用。
37signals在年中完成AP的搬迁之后,下云效益开始浮现,到了2023年9月,云端帐单已经减少了100万美元,尤其在预付一年费用的预留执行个体契约到期后,帐单金额快速下滑。
除了成本节省,下云还有五大价值
DHH认为,不上云,对37signals来说,不只是钱的问题,更可带来五大价值。第一是独立性,不用困在特定公云中,尤其可以摆脱公云业者操控的价格实验影响。其次是,可以真正对整个网际网路提供服务,而不是只在少数超大规模企业手上的网路中提供。
第三是价值是,这个做法意味著自己采取了更聪明的用钱方式。以37signals所用的关键服务,如大型资料库、大量NVMe储存、高速VM的租金,几个月后就等于购买设备的成本,自己买是比较聪明的作法。第四个价值是,下云经验可以成为SaaS公司的示范。「中型或更大规模的SaaS供应商应该有自已的基础设施,而不是租用。」DHH指出,37signals经验可成为这个论点的示范。
最后一项价值是「我们想要冒险!」DHH引用了打造出摩天大楼的美国建筑师丹尼尔‧伯恩罕的一句话,「别做小计划,这不会引起人们热血的魔力,甚至不可能实现,要做大计划,瞄准远大的希望和工作。」这个25岁的软体公司,仍有一股勇于挑战和创新的性格。