查看原文
其他

单体回归?亚马逊放弃用于视频监控的微服务

亚马逊Prime Video工程团队的一篇博客文章搅乱了云原生计算社区,他们认为,至少在视频监控的情况下,单体架构比微服务和无服务器主导的方法产生了更高的性能。

对于一代因微服务的优越性而成长起来的工程师和架构师来说,这种断言确实令人震惊。在微服务架构中,应用程序被分解为单独的组件,然后可以独立地进行操作和扩展。

分析师Donnie Berkholz最近创办了自己的行业分析公司Platify,他写道:“这篇帖子对亚马逊来说绝对尴尬。这显示其内部完全无法建立协调或沟通。”

Ruby on Rails创始人兼Basecamp联合创始人David Heinemeier Hansson在一篇博客文章中表示:“这个故事的独特之处在于,亚马逊是面向服务架构的最初代表。现在,所有这些理论的真实结果终于出来了,很明显,在实践中,微服务可能是不必要地使系统复杂化的最大诱惑。而无服务器只会让情况变得更糟。”

在原帖中,亚马逊Prime高级软件开发工程师Marcin Kolny解释了将视频流转移到单体架构是如何将成本降低90%的。事实证明,来自AWS的组件阻碍了可扩展性,并导致成本飙升。

Prime Video的视频质量分析(VQA)团队启动了这项工作。任务是监控Prime向客户提供的数千个视频流。最初,这项工作是由一组分布式组件完成的,这些组件由AWS Step Functions(一种无服务器编排服务,AWS Lambda无服务器服务)编排。

理论上,无服务器的使用将允许团队独立扩展每个服务。然而,事实证明,至少就团队如何实现组件而言,他们达到了仅为预期负载5%的严格扩展限制。由于需要跨多个组件发送数据,因此扩大规模以监控数千个视频流的成本也将过于昂贵。

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

关键点

Kolny谨慎地提到,视频质量团队做出的架构决策可能不会在所有情况下都有效。他写道:“微服务和无服务器组件是可以大规模工作的工具,但是否比单体更好必须根据具体情况来决定。”

公平地说,在过去的十年里,该行业一直在努力抑制微服务的热情,强调它只在某些情况下是好的。

Hansson写道:“与许多好的想法一样,这种模式一旦在其原始上下文之外被采用,就会变得有毒,一旦被推入单个应用程序架构的内部,就会造成严重破坏。在很多方面,微服务是一种僵尸架构。另一种有传染性的菌株,它就是不肯消亡。”

IT世界是周期性的,一种被嘲笑为无可救药的过时趋势一年后可能会成为新的热点。当然,在过去的十年里,微服务占据了主导地位,我们听到了不止一个关于“单体是下一件大事”的笑话。现在,这个笑话可能真的会实现。

原文链接:

https://thenewstack.io/return-of-the-monolith-amazon-dumps-microservices-for-video-monitoring/


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存