写点什么

Recall.ai 通过消除 WebSockets 节省上百万美元的 AWS 费用

  • 2024-12-12
    北京
  • 本文字数:1237 字

    阅读完需:约 4 分钟

Recall.ai 通过消除 WebSockets 节省上百万美元的 AWS 费用

Recall.ai 最近分享了他们在 AWS 上运行一个用于构建和管理会议机器人的平台的经验,他们发现 使用 WebSockets 每年会增加 100 万美元的额外成本。该团队介绍了他们是如何通过开发一个高带宽、低延迟的进程间通信(inter-process communication,IPC)替代方案来解决这一问题的。


Recall.ai 为 Zoom、Google Meet 和 Microsoft Teams 等平台上的会议机器人提供 API,它依赖于 AWS 部署环境中的实时视频处理。Recall.ai 的工程团队负责人 Elliot Levin 这样写到:


当谈到优化云成本的时候,IPC 很少会得到人们的关注。但事实证明,如果在 AWS 上每秒以 IPC 的方式传输 1TB 的视频且处理效率不高的话,那么将会产生巨额的费用。


在对机器人样本进行分析时,研究小组最初预计大部分的 CPU 使用来自视频编码和解码。但是,他们发现最大的贡献者居然是接收数据的 Python WebSocket 客户端,其次是发送数据的 Chromium WebSocket 实现。Levin 解释说:


WebSocket 似乎很适合我们的需求。它像 Web API 一样“快”,可以很方便地在 JS 运行时中进行访问,支持二进制数据,最重要的是,它已经内置在了 Chromium 中。


为了寻找更具成本效益的传输层,Recall.ai 团队考虑了三种解决方案,即原始的 TCP/IP、Unix Domain Socket 和共享内存。尽管没有通过共享内存传输数据的标准接口,但是 TCP/IP 和 Unix Domain Socket 至少都需要在用户空间和内核空间之间复制数据,团队最终决定设计一种自定义的传输方式,以降低 AWS 的成本,并选择环形缓冲(ring buffer)作为高层级的传输结构。



图片来源:Recall.ai 博客


在 Hacker News 上,有些开发人员对技术栈和视频解码器的选择提出了质疑,用户 IX-103 这样写到:


Chromium 已经内置了使用共享内存的零拷贝 IPC 机制,叫做 Mojo。这就是各种浏览器进程之间实现相互对话的方式。它们只需要将 mojo::BigBuffer 消息传递给 custom.process 即可,无需担心平台特定代码的问题。不过我觉得,编写一个自定义的环形缓冲实现也不错。


虽然在 AWS 上 使用 WebSockets 构建实时应用程序 是一种常见的方法,但 Momento 的生态系统工程师 Allen Helton 最近提出了 警告:


你需要的并不是 WebSockets,而是 PubSub。我最近一直在试用 AppSync Events,我了解到,即使抽象到超高层,使用 WebSocket 仍然很困难。我从事实时通信工作多年,唯一能让它变得简单的方法就是将协议完全抽象掉。


Duckbill Group 首席云经济学家 Corey Quinn 评论 说,WebSockets 的重点是成本优化:


单看这个很能吸引人的标题,“WebSockets 是如何让我们在 AWS 上花费上百万美元的”,它很好地说明了在大多数情况下单纯由于成本或性能原因而深入研究应用架构的深层问题是没有太大的意义的。但是在这样的环境中,它绝对是有意义的,根据 Levin 的说法,实现和部署环形缓冲后,Recall.ai 可以将机器人的 CPU 使用率最多降低 50%,从而优化 IPC 以提高 CPU 效率。这一变化使 AWS 的年度成本降低了 100 多万美元。


原文链接:

https://www.infoq.com/news/2024/11/aws-websockets-costs/

2024-12-12 08:009609

评论

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

软件测试/测试开发 | 实战演练接口自动化如何处理 Form 请求?

测试人

软件测试 自动化测试 接口测试 测试开发

如何妥善且优雅地做好解聘工作?

石云升

极客时间 1月月更 技术领导力实战笔记

模块六作业

Ryan

架构

复习前端:CSS

devpoint

CSS Flex scss BFC

【如何提高IT运维效率】深度解读京东云基于NLP的运维日志异常检测AIOps落地实践

京东科技开发者

运维 AIOPS nlp 京东云 企业号 1 月 PK 榜

真正的AI需要实际的需求

felix

人工智能 算法

国产 ETL工具 ETL产品 数据交换系统

weigeonlyyou

postgresql hadoop elasticsearch Prometheus 时序数据库

类是如何加载的?

王磊

Java

为什么我推荐接口调试一定要用Apipost?

不想敲代码

接口测试 API 研发管理工具

防火墙运维的新思考|流量+访问控制策略

智维数据

运维 防火墙 IT

企业架构治理指什么,如何做?

涛哥 数字产品和业务架构

架构治理 企业构架

复习前端:浏览器渲染机制

devpoint

DOM CSSOM 渲染树 重绘 重排

模块5 微博高性能计算架构设计

KING

什么是AirServer?2024版本如何下载安装包

茶色酒

AirServer

会声会影2023功能强大的视频编辑软件

茶色酒

会声会影2023

软件测试/测试开发 | 接口自动化测试如何处理 Header cookie

测试人

软件测试 自动化测试 接口测试 测试开发

感受 Vue3 的魔法力量

京东科技开发者

前端 代码 Vue3 京东云 企业号 1 月 PK 榜

IntelliJ中高效重构的 10 个快捷方式

JAVA旭阳

Java

Verilog HDL仿真常用命令

timerring

FPGA

空降负责人如何与团队建立信任?

石云升

极客时间 1月月更 技术领导力实战笔记

Verilog HDL基本语法规则

timerring

FPGA

开源数据可视化工具对比:PowerBI VS. DataEase

cynthia

开源 Power BI 数据可视化 大屏 DataEase

消息队列存储数据消息Mysql设计

闲人Eric

架构实战营

CrossOver2023软件Mac电脑版虚拟机安装包

茶色酒

CrossOver2023

2022年回顾:一个37岁中年程序员的一百场面试

无人之路

自动驾驶 面试 求职 大厂 跳槽

KaiwuDB 荣获稀土掘金引力榜-年度最佳实践案例

KaiwuDB

多模数据库 数据库解决方案

基于AbstractProcessor扩展MapStruct自动生成实体映射工具类

京东科技开发者

Java’ 端口映射 spring、 企业号 1 月 PK 榜 set|get

海外拥有最庞大社区人群的Verasity($VRA),后市值得期待

股市老人

PHP转Go实践:xjson解析神器「开源工具集」

王中阳Go

php golang 高效工作 学习方法 Go web

简述styled-components性能

devpoint

CSS React 样式组件 前端性能

IDEA配置java的git路径

孙永潮

Recall.ai 通过消除 WebSockets 节省上百万美元的 AWS 费用_云计算_Renato Losio_InfoQ精选文章