写点什么

Heroku 的衰落

2021 年 5 月 06 日

Heroku的衰落

IT 史上随处可见一时风光,最终却销声匿迹的平台。它也有过辉煌,影响力一度广泛,但世上没有不散的筵席。


Heroku 长期以来一直被很多人视为平台即服务(PaaS)的黄金标准,使软件开发人员可以无需担心底层基础架构就能轻松部署代码。其他人则认为它就像是一个失落的神奇文明,已经没有什么未来可言。


Heroku 的架构局限和在该平台上开展业务的高昂成本,成为了长期以来平台真正扩展其 Web 2.0 核心客户群的障碍。但 Heroku 还有希望迎来自己的又一次辉煌。


Heroku 的革命性遗产


Heroku 由三位 Ruby 开发人员(James Lindenbaum、Adam Wiggins 和 Orion Henry)于 2007 年建立,仅仅三年后就被收购,SaaS 巨头 Salesforce 最终击败 VMware,以 2.12 亿美元的价格将 Heroku 收到囊下。当时该公司只有 30 名员工,并且仅支持 Ruby 编程语言。


Heroku 的工程负责人 Jason Warner 说:“我相信 Heroku 是在 2014 年到 2017 年之间最具革命性的产品,对 Web 开发产业的推动作用非常大。它也是同时代最受争议的项目之一,因为它实在太超前了。当时它看起来就像魔法一般,人们都被它深深震撼了。可是在 Salesforce 的领导下,它开始驻足不前。它就不该做成一个 PaaS,而应该是 PaaS 的一个多层蛋糕,带有各种出口,可以通过 Kubernetes 构建或采用多云方案,但它并没有走上这样的道路。”


如今,Heroku 已成为 Salesforce 开发工具平台的一部分,但它自身仍然是一项成功的业务,其年收入达数亿美元,并支持多种语言,有着数以千计的开发人员正在其中运行应用程序。联合创始人 Adam Wiggins 说:“Salesforce 让它变得更加稳定、可扩展并支持了很多新的语言。它的核心理念到今天依旧不变,也就是让开发人员可以将应用轻松推上云端,无需考虑服务器问题,同时拥有出色的开发体验。我之所以清楚这一点,是因为我也是它的客户。”


在实践中,使用 Heroku 时通常需要一个部署到唯一域的通用运行时,这个域会将 HTTP 请求路由到一个虚拟的 Linux 容器(Heroku 称之为 dyno),这种容器散布在运行于 AWS 服务器上的一个“dyno 网格”中。Heroku 的 Git 服务器负责存放由授权用户推送的应用程序存储库。高级企业客户还有专用的单租户专用空间的选项可用。


Gartner 知名副总裁 Yefim Natis 说:“Heroku 是第一个真正的云原生开发环境。他们实质上发明了基于容器的计算模型,这种模型如今广泛流行。”


Heroku 的联合创始人,如今是初创企业加速器 Heavybit 的合伙人 Linden baum 说:“震撼人心的是 Git 推送部署,这也是人们从 Heroku 学到的核心思想,大家原本以为必然要做的很多事情都用不着操心了。我们的愿景不是给猪涂口红,而是重新思考怎样彻底解决这个问题。”


Heroku 的人气一直都归功于其简洁、优雅和可用性的优势,它率先将重心放在了开发人员的体验上,致力于让部署像开发流程那样无缝流畅。


从技术上讲,Heroku 已停滞不前


十年过去了,最初的联合创始人都没有留在 Heroku。与此同时,在 Salesforce 的领导下,该公司的收入稳步增长,但核心产品基本没有变化,只能眼睁睁看着行业飞速前进。


Jacob 在推特上写道:“Heroku 就像是一个失落的文明。美丽、不朽,但却没有未来可言。”


Gartner 的 Natis 表示,尽管 Heroku 帮助开拓了很多简便的云原生软件开发技术,但它花了很长时间才能适应由 Kubernetes 编排的 Docker 容器引出的那些新兴行业标准。“鉴于它的架构和先锋元素,我认为这种停滞始于 Salesforce 的收购。我觉得他们被留在了那个时代。”


从 2013 年到 2016 年担任 Heroku 首席执行官的 Tod Nielsen 从业务角度给出了一个看法:“Salesforce 在将 Heroku 扩展到更多公司方面做得很好,但是从技术上讲,他们放弃的是年轻人的那股创新劲头。”


Heroku 的底层 dyno 网格系统基于 AWS EC2 实例构建,自然可以在复杂性和可定制性与简单性和速度之间做出权衡。这些权衡让这个平台优雅易用,但某种程度上也缺乏灵活性。


但是,随着 Heroku 扩展到其他语言,越来越多的问题浮出水面。“我认为我们想简化一切的想法可能为时过早了。当你试着转向 Java 这个拥有大量工具链和深度集成工作方式的社区时,事情变得非常棘手,”Blake Mizerany 说,他是 Heroku 在 2008 年的第一位全职工程师。“当我们告诉那些想要在 Heroku 上构建产品的公司时,这让他们很失望,因为他们总要做一些不在 Heroku 理想路径上的事情。”


对于需要更多灵活性,在需要的位置运行应用程序的组织而言,来自竞争对手 VMware 的 PaaS Cloud Foundry 允许本地部署以及挂接到企业环境所需的一系列复杂定制,从而提供了一条更诱人的路径。VMware 还投资了一家咨询机构 Pivotal Labs,该机构的任务是在 2010 年代初向更传统的组织(例如 Orange 或美国银行)宣传平台方法。


相比之下,Heroku 在允许企业客户以混合模式和多云模式运营方面进展缓慢。2016 年,Salesforce 希望使用新增的 Private Spaces 来解决这一问题,其允许客户在一个专用环境中运行,连接到本地系统,并有六个地理区域可选。类似地,Salesforce 最近推出的 Hyperforce 应该能让所有 Salesforce 客户在公共云中的服务位置方面有更多选择。


Heroku 和其他 PaaS 选项之所以能够蓬勃发展,是因为它们能够卸除开发团队面对的复杂性,从而让团队更专注于为客户提供新功能。问题是,大多数组织都存在固有的技术债务和无法绕过的工作方式,像 Heroku 这样特立独行的事物局限性太大了。


RedMonk 的另一位联合创始人 Stephen O’Grady 说:“到头来,人们需要自己组装和维护的零件太多了,在这种情况下,我们看到大家想要的就是 Heroku 之类的东西,希望开发人员只专注于编写应用程序。我们听到的很多抱怨,例如用户花费大约 40%的时间纠缠于 Jenkins。诀窍是要具有足够的灵活性以适应各种用例,而 Heroku 这样的产品被证明局限性太大,或者太特立独行了。”


超越 Heroku 的局限


对冲基金和金融服务公司 Two Sigma 的平台工程主管 Camille Fournier 将 Heroku 描述为软件开发流程部署领域的“黄金标准”。但是根据她的经验,“开发人员迟早遇到 Heroku 这样的平台所能达到的极限,并开始走上新的道路。”


Fournier 相信,任何快速发展的工程组织最终都会面临这些局限。“当你需要构建自己的平台时,这种趋势会变得显而易见。如果你使用的是 Heroku,就会遇到扩展限制,看到团队开始离开平台并做自己的事情,“她说。许多决定脱离 Heroku 的组织(例如流媒体平台 Hulu)都在寻求构建自己的内部平台,他们花了无数时间来追求类似 Heroku 体验但满足其业务特定要求的平台愿景。


RedMonk 分析师 Governor 在推特上写道:“现代技术行业中,人们基本上都在不断发明着 Heroku 的各种翻版。”Jacob 说:“当一个事物如此美好时,它会有种种变体也就不足为奇了。”


Jacob 同时指出:“但这是有代价的。接触它的每个人都有一种看法。问题在于这些看法不仅是看法,当你在软件上开展业务时,它们是硬约束。它不是可替代的,而且与普遍的看法相反,这些限制实际上是独一无二的。”


对于许多像 Mizerany 这样的 Heroku 早期工程师来说,模仿确实是最高的致敬。“对我来说,我们当年构建的东西是每个人今天都必须构建的,这可能是至高的赞誉,”他说。


Heroku 太昂贵了吗?


对于那些很快就觉得自己正在超越 Heroku 方案限制的组织来说,即便他们真的很喜欢那种开发体验,Heroku 的定价也往往成为关键的阻碍因素。


Warner 说:“定价一直是一个错误,我们从未解决过。在 Salesforce,你必须在定价中包含利润。我认为你可以扩展 Heroku(它运行着一些世界排名前 20 位的网站),但是你必须换一种思考方式。”


Heroku 通常是按 dyno 定价的,为企业客户提供了许多高级附加组件和高性能选项,因此随着业务的增长,成本会迅速上升。性能最高的 14GB dyno 每月每个 dyno 的价格为 500 美元,这仅仅是一个开始。RedMonk 的 Governor 说:“有些人愿意为这种令人难以置信的体验付费,但对于许多人来说这样的成本越来越难以接受。”


以软件测试公司 Rainforest 为例,该公司在开始达到其数据库计划的限制,并且成本开始呈螺旋式上升之后,于 2019 年从 Heroku 迁移到谷歌的 Kubernetes 托管服务(GKE)。Rainforest 的前高级架构师在一篇公司博客中写道:“到去年末为止,Rainforest 的大多数生产应用程序都运行在 Heroku 上……它让我们得以扩展并在不维持大型运营团队的情况下保持敏捷,整体开发体验也是无与伦比的。但在 2018 年,我们显然已经开始超越 Heroku 的限制了。”


Evans 写道,即便对于那些通过小规模运营团队来打理一切,以节约成本的企业来说,Heroku 也相当昂贵。至少对于某些计算密集型工作负载而言,当 Rainforest 添加了一些重要的与安全性相关的功能(例如虚拟私有云)时,Heroku 从昂贵变成了无法承受。


然后是金融科技公司 PensionBee,该公司在 2015 年在 Salesforce 的支持下从头开始在 Heroku 上构建了其单体 Node.js 应用程序,所有数据均通过名为 Heroku Connect 的高级附加产品同步。


PensionBee 的首席技术官 Jonathan Lister Parsons 认为,如果考虑到总体拥有成本,围绕 Heroku 的价格担忧就显得过分了。他说:“我考虑的重点是 Heroku 能够让你摆脱的所有那些麻烦事,这个名单上起码有 20 件运维事项。是的,与 AWS 相比它很昂贵,但是你得到的是一个由上千人组成的团队,他们负责的服务可以让你的代码顺畅运行。”


话虽这么说,“Heroku Connect 的价格仍然高得令人难以接受,而且随着我们的发展和扩展,继续使用这个方案已经没有意义了,而且他们知道这一点,”Lister Parsons 补充说。


Salesforce 的一位发言人承认 Heroku 的成本确实高昂,但表示:“云计算运维成本很高,我们需要确保考虑到所有成本。如果有人将 IaaS 成本与 Heroku 的 PaaS 产品进行比较,那么他们可能会忽略 devops 的人员配备、管道、集成和 IaaS 基板对运维负载的影响。”


Heroku 还剩下什么?


像软件产业中的所有事物一样,Heroku 最近的挣扎可能在某种程度上反映了简单的潮流趋势。正如今天的一些开发人员会在裸机上构建应用程序一样,一些开发人员也会在 Heroku 上构建,但在 Kubernetes 上构建才是潮流。Jacob 说:“这并不是说在 AWS 或 Kubernetes 上做事会更好。实际上,对于那些非常适合 Heroku 和 Git 推送方式的事物来说,其他选项显然不怎么样。”


如今,Heroku 的用户通常来自资金雄厚的公司,这些公司拥有非常适合这种独特 PaaS 的用例,并有足够的财力来继续在 Heroku 上大规模运营,例如现有的客户 Everlane、Bonobos、Yobota 和 Cambly。


以 PensionBee 为例,它将各种退休金合并为一个计划,供客户通过 Web 和移动应用程序访问。


CTO ListerParsons 表示:“我希望尽最大的努力尽快交付产品,因此像 Heroku 这样的 PaaS 是一个有吸引力的起点。我们在努力确保当 PensionBee 拥有一百万客户时仍然适合 Heroku 和 Salesforce 的方案。是的,我们已经开始选择其他最适合各种用例的东西,我们并不是 100%地依赖于 Heroku 和 Salesforce,但它们是基础平台。”


这是否意味着,作为一种传奇性的技术,Heroku 现在只局限于为有能力的企业提供优质的小众服务?Wiggins 说:“我们经常会考虑像 AWS 这样的优秀选项,它是为所有人提供的方案,我不认为 Heroku 是类似的方案。它是针对较小的受众群体的,而且效果很好。”


Jacob 说:“Heroku 尚未消亡,这是一家拥有数百名员工的庞大企业,而且很长一段时间都不会消失。但随着时间推移,这一技术终会成为历史上的一个光辉时刻。”


无服务器能救得了 Heroku 吗?


Heroku 在 Kubernetes 的世界中可能已经失去了光彩,但是无服务器应用程序的前景是否为这一平台的第二次辉煌打开了大门?


Gartner 的 Natis 表示:“无服务器的 Heroku 将是云原生的 2.0 版,所有基础设施函数都将由提供商隐藏并妥善维护。Heroku 想要继续存在下去,他们必须走向无服务器,因为他们开创的先河已成为历史。”


对于 Heroku 联合创始人 James Lindenbaum 而言,考虑到与 Heroku 的关系,“无服务器是非常有趣的”,因为“这是少费多用趋势的下一个潮流。但是,还没有人想出如何将其整合到一个开发人员的完善心理模型中”,他说。“如果我们留下来的话,那可能是我们在 Heroku 所要解决的下一件事。这一般是需要创始人做的事情。你需要很高的威望才能承担这种风险。”


目前尚不清楚无服务器是否是 Heroku 的发展方向,Heroku 目前由更大层面的 Salesforce Platform 总经理 Patrick Stokes 领导。但今年晚些时候 Salesforce Functions 的全面上市标志着一个转变即将到来。


Salesforce 发言人说:“Heroku 的下一件大事是通过 Salesforce Functions 将其功能与 Salesforce Platform 的其余部分进行深度集成。”SalesforceFunctions“让开发人员在 Salesforce 平台上编写与其数据和事件集成的代码,然后在无服务器环境中按需以弹性规模运行它。”


如果无服务器成为下一个行业标准,Heroku 肯定有机会重塑自己,以迎接下一波变革:“如果我今天再来一次,我会用无服务器代替微服务,”PensionBee 的 ListerParsons 说。“无服务器可以成为 Heroku 涅槃重生的契机”。


作者介绍:


Scott Carey 是 IDG UK enterprise titles 的组编辑,主要为 InfoWorld 撰写文章。


原文链接:

https://www.infoworld.com/article/3614210/the-decline-of-heroku.html

2021 年 5 月 06 日 11:511643

评论

发布
暂无评论
发现更多内容

找工作不得不知道的事

熊斌

认知提升 求职

我愿沉迷于学习,无法自拔(三)

孙瑜

深度思考 程序员人生 感悟

DDD 实践手册(3. Entity, Value Object)

Joshua

系统设计 领域驱动设计 系统架构 架构模式

为AndroidApk添加系统级签名

Howe

Java android

Dubbo 概述

会飞的猪

聊聊数据库原理和索引结构:1000万条数据优化后为什么能提升1500倍

牧码哥

MySQL 数据库 数据结构 性能优化 索引结构

从Integer开始阅读JDK源码

指尖流逝

Java jdk源码

认识数据产品经理(一 数据产品经理的细分)

马踏飞机747

大数据 数据中台 数据分析 产品经理

记录自有意义

彭宏豪95

人生 写作 感悟 记录

动态规划问题的思路和技巧

Kenn

算法 动态规划

技术人员加薪二三事

南方

管理 职场 技术管理 加薪 劈空掌

leetcode1137:第 N 个泰波那契数

Damien

算法 LeetCode 斐波那契

如何梳理画出牛逼的、高大上的架构图?

狂师

程序员 企业架构 开发者 软件测试 软件开发

为什么每个软件人都要懂点系统架构?

刘华Kenneth

架构 DevOps 高可用 敏捷 高并发

Boyer-Moore 算法

Kenn

算法 数组 Boyer-Moore

KubeFATE: 用云原生技术赋能联邦学习(二)

亨利笔记

Kubernetes 云原生 k8s FATE KUBEFATE

Spring Cloud概述

会飞的猪

JAVA中Base64加密与解密

Howe

Java base64 加密解密

Nacos 1.1.4 与微服务的实践经验记录

itfinally

Java 微服务 nacos

Kafka系列第4篇:消息发送时,网络“偷偷”帮忙做的那点事儿

z小赵

kafka 推荐 实时计算

Spring中的测试类~简洁方便

程序员的时光

spring

缓存的五种设计模式

Rayjun

缓存

iOS Release 版本开启调试功能

liu_liu

ios release 调试

Redis学习笔记(概述)

编程随想曲

redis

动画设计的十个原则

养牛致富带头人

设计 动画

Java新技术:文字块

范学雷

Java 编程语言

Java并发编程系列——锁顺序

孙苏勇

Java Java并发 并发编程 多线程

职场“35岁现象”:焦虑 or 出路?是时候说出真相了!

狂师

职场 成长 软件测试 测试 软件开发

程序员陪娃漫画系列——上学路上

孙苏勇

程序员 生活 程序员人生 陪伴 漫画

程序员要继续写代码还是转管理?技术管理需要哪些能力?需要培养哪些能力?

陆陆通通

程序员 管理 团队建设 团队 技术管理

扩展Redis:增加Redis命令

心平气和

redis

Leader修炼指“北”:管理路上的大小Boss

Leader修炼指“北”:管理路上的大小Boss

Heroku的衰落-InfoQ