年终总结:微服务的转折之年

长期以来,微服务一直被认为是云原生服务应用架构的事实标准,如今,亚马逊和谷歌等云巨头开始对其进行重构。

译自Year-in-Review: 2023 Was a Turning Point for Microservices,作者 Joab Jackson 是 The New Stack 的高级编辑,负责报道云原生计算和系统运维。他在IT基础设施和开发方面的报道已经超过25年,包括在IDG和Government Computer News的任职经历。在那之前,他...

或许我们对微服务的理解存在一些问题?

这正是“走向云应用的现代开发”(PDF)一文的主旨,该文是一群谷歌工程师(由谷歌软件工程师Michael Whittaker领导)在HOTOS '23(第19届操作系统热点问题研讨会)于六月展示的成果。

正如Whittaker等人指出的问题,微服务在架构上大部分并未得到正确设置。它们混淆了逻辑边界(代码编写方式)和物理边界(代码部署方式)。问题便由此而来。

相反,谷歌工程师们提出了另一种方法。将应用构建为逻辑单体,然后交由自动化运行时处理,该运行时根据应用的需求和可用资源决定在何处运行工作负载。

通过这种延迟方式,他们能够将系统的延迟降低15倍,成本降低最多9倍。

“如果人们能够从有序的模块化代码开始,我们可以将部署架构视为实现细节,” Kelsey Hightower在十月评论此项工作时说道。

微服务究竟出了什么问题?

几个月前,亚马逊Prime Video的工程团队发表了一篇博文,解释了至少在视频监控方面,单体架构的性能要优于微服务和无服务器的方法。

事实上,亚马逊通过放弃微服务架构,节省了90%的运营成本。

一代工程师和架构师在微服务的优越性上成长起来,这个断言确实令人震惊。

“这篇文章对亚马逊作为一家公司来说真是一种彻头彻尾的尴尬。完全无法建立内部协调或协同沟通,” 最近创办了自己的行业分析公司Platify的分析师Donnie Berkholz写道

“这个故事的独特之处在于亚马逊曾是面向服务的架构的代表,” Ruby-on-Rails 的创作者兼 Basecamp 的联合创始人David Heinemeier Hansson表示意见,“现在所有这些理论的实际结果终于出炉了,显而易见的是,在实践中,微服务或许是最容易使系统不必要复杂化的最大警世之歌。而无服务器仅会让情况变得更糟。”

亚马逊视频的微服务经验

原始的亚马逊视频传递系统。

亚马逊工程师的任务是监控 Prime 传递给客户的数千个视频流。最初,这项工作是由一组由AWS Step Functions协调的分布式组件完成的,这是一项无服务器的编排服务,使用了 AWS Lambda 无服务器服务。

理论上,使用无服务器应该允许团队独立扩展每个服务。然而,事实证明,至少对于团队实现组件的方式而言,他们在仅达到预期负载的5%时就遇到了硬性扩展限制。由于需要在多个组件之间传输数据,扩展以监控数千个视频流的成本也将变得不划算。

最初,团队尝试优化各个组件,但这并没有带来显著的改进。因此,团队将所有组件移至单一进程,托管在亚马逊弹性计算云(Amazon EC2)和亚马逊弹性容器服务(Amazon ECS)上。

“微服务和无服务器组件是在高规模下执行工作的工具,但是否选择它们而不是单体架构必须根据具体情况做出,” 亚马逊团队得出结论。

微服务的缺陷

可以说,“微服务”一词最早由 Peter Rodgers 在2005年提出,尽管他称之为“微网络服务”(micro web services)。他给了这个在当时的网络服务和服务导向架构(SOA)时代引起关注的观念一个名字。

“当时‘微网络服务’背后的主要推动力是将单一的大型‘单块’设计拆分为多个独立的组件/进程,从而使代码库更粒度化和可管理,” 软件工程师Amanda Bennett在一篇博客文章中解释道。

这个概念在随后的几十年里得到了广泛应用,尤其是在云原生计算的时代,直到近年才在某些领域开始受到批评。

软件工程师Alexander Kainz为 TNS 贡献了一篇关于单体架构和微服务的优秀比较。

在他们的论文中,谷歌工程师列出了微服务方法的一些缺点,包括:

  • 性能:将数据序列化并通过网络发送到远程服务会影响性能,并且如果应用程序变得足够复杂,甚至可能导致瓶颈。
  • 理解:在分布式系统中,由于微服务之间有许多交互,臭虫通常难以追踪。
  • 管理问题:认为应用程序的不同部分可以根据自己的时间表进行更新是一种优势。但这导致开发人员必须管理大量的二进制文件,每个文件都有自己的发布计划。并且希望在本地运行的服务上运行端到端测试时可能会面临困难。
  • API变得脆弱:微服务互操作性的关键在于一旦建立了微服务,API就不能更改,以免破坏依赖于该API的其他微服务。因此,只能通过添加更多API来扩展API,导致膨胀。
  • 一种新型的微服务?

一种新型的微服务

当 The New Stack 首次报道亚马逊的新闻时,许多人迅速指出视频团队使用的架构也不完全是单体架构。

“这绝对不是一个从微服务到单体架构的故事,” 亚马逊云计算部门前副总裁、现任 Nubank 顾问Adrian Cockcroft在接受 The New Stack 的采访https://thenewstack.io/amazon-prime-videos-microservices-move-doesnt-lead-to-a-monolith-after-all/时说道,“这是一个从Step Functions 到微服务的故事。我认为问题之一是错误的标签。”

他指出,在许多应用程序中,特别是内部应用程序,开发成本超过了运行时成本。在这些情况下,Step Functions 在节省开发时间方面具有很大意义,但在处理大量工作负载时可能会带来成本。

“如果你知道最终会在某个规模上执行它,” Cockcroft 说,“你可能会一开始就以不同的方式构建它。所以问题是,你知道如何做这件事吗,你知道将以什么规模运行吗?” Cockcroft 表示。

谷歌的论文通过简化开发人员的工作,让运行时基础设施能够找出运行这些应用程序的最具成本效益的方式来解决这个问题。

“通过将所有执行责任委托给运行时,我们的解决方案能够提供与微服务相同的好处,但性能更高,成本更低,” 谷歌研究人员写道。

重新审视的一年

今年进行了许多基本的架构重新审视,而微服务并不是唯一被质疑的理想。

例如,云计算也受到了审查。

在六月,37signals,既经营 Basecamp 又经营Hey 电子邮件应用程序的公司,购置了一批戴尔服务器,并离开了云,打破了几十年将运营迁移到离场地更模糊定义的更大效率的传统。

“这是云营销的核心欺骗,即一切都会变得如此容易,以至于你几乎不需要任何人来操作它,” David Heinemeier Hansson在一篇博客文章中解释道。 “我从未见过。在 37signals,也没有其他运行大型互联网应用程序的任何人。云计算有一些优势,但通常并不在减少运营人员数量方面。”

当然,DHH 是一名赛车手,所以自然而然地他想深入挖掘硬件层面。但也有其他人愿意支持这一赌注。今年晚些时候,Oxide Computers推出了他们的新系统,希望以类似的情绪为他人提供服务:在自己的数据中心更具成本效益地运行云计算工作负载。

这种情绪似乎至少在云账单到期时更受考虑。FinOps 在2023年变得显眼,越来越多的组织转向像 KubeCost 这样的公司来控制他们的云开支。还有多少人对一名 DataDog 客户因云监控而收到了 6500 万美元的账单感到吃惊呢?

可以说,对于一个创收数十亿美元的公司来说,支付 6500 万美元的可观察性账单可能是值得的。但随着首席架构师更认真地审视过去十年的工程决策,他们可能决定做一些调整。而微服务将不例外。

TNS 云原生记者 Scott M. Fulton III 对本报告做出了贡献。

本文在云云众生https://yylives.cc/)首发,欢迎大家访问。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容