← 返回新闻列表

亚马逊Prime Video案例引行业反思:微服务与云成本之辩

亚马逊旗下流媒体平台Prime Video近日发布技术博客,披露其音视频监控服务通过从分布式微服务架构转向单体应用,成功将成本削减九成,并提升了可扩展性和弹性。这一事件迅速在技术社区引发广泛讨论,尤其是在与业界普遍推崇的微服务理念形成鲜明对比后,激起了对现有技术路线的深度思考。

文 / 编辑部 · 2023/05/08 · 阅读约 4 分钟

分享:
亚马逊Prime Video案例引行业反思:微服务与云成本之辩

近期,科技圈内一场由亚马逊Prime Video引发的讨论热度不减。该平台于2023年3月22日发布的博客文章,详细阐述了其音视频监控服务成本锐减九成的过程。文章指出,通过从原有的分布式微服务架构过渡到单体应用程序,他们不仅实现了更高的可伸缩性和弹性,还显著降低了运营成本。这篇技术分享随后在“五一”期间被转载至Reddit和Hacker News等平台,迅速成为焦点话题。

由于亚马逊此举与当前业界盛行的微服务架构理念背道而驰,加之DHH紧随其后发文批判微服务,进一步点燃了技术社区的热情,使得围绕微服务架构的争议达到了顶峰。

面对众多跟风解读和片面评论,有必要对Prime Video的原始文章进行一次深入剖析。该文章内容并不复杂,技术细节亦不多,其核心观点可归纳为几点:

首先,该系统旨在监控海量用户点播视频流的质量和表现,如视频损坏、音画不同步等问题。其中,一个关键的微服务负责将视频拆帧并暂存至S3,即文中的Media Conversion服务。

其次,为快速构建系统,Prime Video团队采用了Serverless架构,即AWS Lambda和AWS Step Functions。Lambda作为用户请求的网关,Step Function则执行监控任务。当检测到问题时,系统会通过SNS发送通知。Step Function从S3获取Media Conversion处理的数据,并将结果汇总后由另一个Lambda存储至S3。

此架构看似简洁高效,完全基于Serverless,省去了对底层服务器的担忧。通过AWS的Lambda、Step Function、SNS和S3等服务,一个功能完备的监控系统得以快速部署,初期看似极具吸引力。

然而,Prime Video团队很快遭遇了重大挑战:AWS Step Function的伸缩性问题。他们发现,系统所需的并发Step Function数量远超账户硬性限制。更关键的是,Step Function按状态转换计费,导致成本高昂得难以承受。

面对这些问题,Prime Video团队着手进行改进:

他们将Media Conversion与Step Function的功能整合进一个程序,通过内存通信取代原先的S3交互,最终在一个线程内汇总结果并写入S3。

随后,这个单体架构被分布式部署,仍使用AWS Lambda作为入口调度。

这种新方案带来了显著优势:不再受限于Step Function的容量和高昂费用,技术主导权更强,成本也因此降低。如果能进一步将Lambda替换为Nginx或Spring Gateway,S3替换为MinIO,SNS替换为Kafka,成本还有进一步下降的空间。

从这个案例中,我们可以进行一些独立思考:

1. AWS的Serverless、微服务乃至单体架构,在各自适用的场景下都具有优势,如同不同类型的车辆服务于不同需求,关键在于选择与业务场景最匹配的方案。

2. Prime Video案例中的业务流程相对简单,本质上仅包含视频转码和分析两部分。将其拆分为两个微服务(一个负责转码,一个负责分析)或者合并为一个单体应用,从微服务的粒度划分原则来看都是可行的。微服务的划分应遵循边界上下文、单一职责、高内聚低耦合、事务与一致性及组织架构匹配等原则。

3. Prime Video面临的并非微服务架构本身的技术问题,而是AWS Step Function的处理能力不足和高昂费用所引发的产品问题。这反映了对Step Function的不当使用,此类大量数据分析处理场景并非其优势所在。因此,不能将一个特定的产品限制等同于微服务架构的普遍缺陷。若Step Function能无限扩展且经济实惠,Prime Video团队或将对其赞不绝口,而非转型至单体架构。

4. Prime Video与AWS作为亚马逊旗下独立核算的两大业务实体,与电商和AWS之间的关系类似。其对服务化和微服务架构的理解与实践经验,在全球范围内 arguably 无出其右。早前的文章亦曾对比过亚马逊和谷歌平台在这方面的差异。

5. Prime Video的案例本质上可视为一次“下云”行动,即从高成本的AWS Serverless云服务中剥离出来。云成本不仅体现在费用上,还涉及供应商锁定问题。Prime Video团队的监控系统复杂度适中,重构周期短,使得他们能够迅速切换到更传统的“服务化”+“云计算”分布式架构。这与Basecamp等公司选择彻底“下云”以节省巨额成本,背后逻辑异曲同工。

最后,如果您在分布式、微服务、云原生及云计算成本优化等方面遇到类似挑战,欢迎通过邮件联系:haoel@hotmail.com。

我们今年推出的平台MegaEase Cloud,旨在提供不失云计算体验的前提下,通过自建高可用基础架构,帮助用户实现至少50%的云计算成本节约。目前,可通过开源软件自建、MinIO与Cloudflare免费CDN组合等方式降低成本。未来还将推出与底层IDC合作的廉价GPU计算资源。欢迎体验。用户可选择中国区或国际区访问,请注意两区域独立且账号不互通,避免跨区使用。

相关产品演示和介绍文章将陆续发布。欢迎关注MegaEase Cloud。

广告位 · 文末横幅