None

【上云2大红利失效,但一年上云费用近亿】知名SaaS公司为何要下云?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万美元,尤其在预付一年费用的预留执行个体契约到期後,帐单金额快速下滑。

高可用性是云端环境的一大特色,除了扩充性,让自家服务可用性更高,是常见的另一个上云的理由,37signals将原本部署在公云上的SaaS服务,搬迁到本地机房後,是不是会削弱了SaaS服的可用性,这是DHH宣布下云计画之後,许多人好奇问他的其中一个问题,尤其在2023年将AP全面下云之後,这些SaaS後来运作的情况如何?DHH在2024年初开始整理过往各界的好奇,他强调,下云之後,他们的每一项SaaS产品的正常运作时间,都超过了99.99%的水准,他们还是遇到不少问题,但总可以快速解决和排除,一整年下来,2023年总停机时间没有超过0.01%。

以他们在2012年到2015年销售的Basecamp版本,这是一个至今仍然持续维护的旧版专案管理服务,目前有数千名用户,每年带来数百万美元的收入。这个服务在2023年的停机时间是零。这项服务所用的技术也很常见,F5s、Linux、KVM、Docker、MySQL、Redis、Elastic Search,还有Ruby on Rais。DHH说,只要硬体有良好备援机制,可以使用成熟的Web应用技术架构,就不会有太大的当机问题。他强调,工程师不要过度追求复杂性,就像飞蛾扑火一般。

为了解答众人对於他们下云经验的疑惑,DHH也在2023年底,整理了下云常见问答,给各界参考。例如下云後会不会有庞大的人力成本?DHH指出,下云後团队组成没有改变,也是一样的人力,管理Hey和Basecamp或其他应用的人,只是换了管理环境,从公云业者的环境,改为他们自家机房。有些人甚至以爲,需要有一个世界级的团队,才能自行管理资料中心来提供媲美公云业者的服务水准,DHH指出,他们的的确有一个优秀的团队,但是当拥有数百万名用户和每月数十万美元帐单时,自行管理和维运实体机房的知识,有九成与使用云端环境需要的专业知识相同。

安全性的问题也很多人好奇?实际上,在云端和在地端的安全工作的本质没有太大差别,DHH补充,使用现代化容器技术来交付软体的优势是,不需要花大量时间手动修补AP的执行环境,AP大部分的内容都打包在Dockerfile中,只要重新部署到新版作业系统,在云端VM或地端VM都会一样。

除了成本节省,下云还有五大价值

回顾这段下云历程,DHH认为,不上云,对37signals来说,不只是钱的问题,更可带来五大价值。第一是独立性,不用困在特定公云中,尤其可以摆脱公云业者操控的价格实验影响。其次是,可以真正对整个网际网路提供服务,而不是只在少数超大规模企业手上的网路中提供。

第三是价值是,这个做法意味着自己采取了更聪明的用钱方式。以37signals所用的关键服务,如大型资料库、大量NVMe储存、高速VM的租金,几个月後就等於购买设备的成本,自己买是比较聪明的作法。第四个价值是,下云经验可以成为SaaS公司的示范。「中型或更大规模的SaaS供应商应该有自已的基础设施,而不是租用。」DHH指出,37signals经验可成为这个论点的示范。

最後一项价值是「我们想要冒险!」DHH引用了打造出摩天大楼的美国建筑师丹尼尔‧伯恩罕的一句话,「别做小计画,这不会引起人们热血的魔力,甚至不可能实现,要做大计画,瞄准远大的希望和工作。」这个25岁的软体公司,仍有一股勇於挑战和创新的性格。

37signals下云历程时间表

2022年10月,37signals技术长DHH在部落格宣布下云计画,要全面离开AWS和Google Cloud,引起各界热议。

2022年11月,下单购买一批60万美元的Dell伺服器,共20台R7625伺服器。

2022年底,启动下云计画,除了硬体,也开始评估本地的K8s管理工具和支援费用,但业者报价超过预期,甚至高达200万美元,38signals决定在本地端环境中,放弃K8s环境,不只下云,也要去K8s。决定简化技术架构,改用KVM来提供虚拟机器,来分割实体伺服器的运算资源,再透过Docker来执行容器化的Web应用。

2023年1月,37signals公布2023年上云费用明细,花费高达320万美元。主要有两个部分,包括 AP上云费用,约230万美元,以及高达8PB用户资料的云端储存费用。

2023年2月,37signals开源释出了让成功下云的关键容器部署管理工具Kamal。这套工具用Docker来部署和管理Web应用,可以提供不停机部署、快速重新启动回滚、远端建置等,而且不只是Rails应用的部署,改版後可以用来部署各种类型的容器化Web应用。

2023年4月,采购的新伺服器到货,直接寄到 芝加哥和维吉尼亚州阿什本两座租用的代管机房,由长年合作的资料中心代管服务商负责安装。 37signals总共采购了20台R7625伺服器,一台伺服器内建两颗AMD EPYC 9454处理器,每个处理器具有48个核心和96个执行绪,20台可以提供到近4千个vCPU,内建记忆体达到7,680GB,还有384TB的第四代NVMe储存容量。
2023年5月,展开七大产品的搬迁工作,先从免费的Tadalist开始练手,接着搬迁基础架构需求相似,也同样是单一用途的付费版产品Writeboard,从功能和架构简单的AP产品先着手,累积下云经验, 第三款才开始搬迁技术架构更复杂的Backpack应用。最复杂的下云工程是云原生的电子邮件产品Hey,则分阶段逐渐将不同技术架构的元件转移到本地端环境,依据不同资料库、快取伺服器、邮件服务器、App执行实例,一项一项各自独立转移。也将所用的商用软体,例如RDS资料库改为开源技术或开源产品。

2023年6月,完成了各项AP应用的下云搬迁工作,主力产品的应用系统都改在本地端机房中运作,只剩下S3储存上的8PB用户资料还没搬迁,这也将是他们在2024年最重的任务。

2023年9月,37signals云端帐单已经减少了100万美元,预付一年费用的预留执行个体契约到期後,帐单金额快速下滑。

2024年目标, 计画将S3储存高达8PB的用户资料也全面搬迁下云,另外也开始思考後端搜寻、监控机制的新可能性。

 相关报导 ​

37signals一年320万美元上云费用结构大公开

不只下云还去K8s,37signals自行打造全新Web部署工具

surfshark不能下载了

0 0 投票数
Article Rating
订阅评论
提醒
guest
0 Comments
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x