写点什么

Canva 选择 Amazon KDS 而非 SNS+SQS,每天处理 250 亿个事件,节省了 85% 的成本

作者:Rafal Gancarz

  • 2024-09-05
    北京
  • 本文字数:1274 字

    阅读完需:约 4 分钟

Canva 选择 Amazon KDS 而非 SNS+SQS,每天处理 250 亿个事件,节省了 85%的成本

Canva 对其产品分析平台评估了多种不同的数据处理解决方案,包括 AWS SNS 和 SQS 的组合、MKS 以及 Amazon KDS,最终选择了后者,主要是因为其成本要低得多。该公司比较了这些解决方案的许多方面,比如性能、维护工作量以及成本等。


Canva 每天处理约 250 亿个产品分析事件,以支持许多面向用户的功能,如个性化及推荐、使用统计及见解。所捕获的数据也是支持任意新产品特性 A/B 测试的关键。


收集和分发产品分析事件的数据管道不仅需要支持非常高的吞吐量,还需要支持高可用性(99.999% 的正常运行时间),并且还要具有成本效益、可靠性和用户友好性。负责为产品分析提供事件驱动架构(EDA)的团队在 MVP 的早期阶段使用了 AWS SQS 和 SNS 的组合。这些服务易于设置,并提供了出色的弹性和可扩展性,但它们的成本占了运行架构的 80%。



使用 Amazon KDS 的产品分析数据管道(来源:Canva 工程博客)


基于最初的 MVP 经验,该团队决定寻找能够以较低成本满足性能要求的替代方案,并考虑了另外两种 AWS 服务:Amazon Managed Streaming for Apache Kafka (MSK) 和 Amazon Kinesis Data Stream(KDS)。工程师们比较了这些服务的成本、性能和可维护性,最终选择了 KDS,因为它本身的成本低(比 SQS+SNS 便宜 85%),而且维护的成本也极低,尽管与 MSK 相比延迟更高(高 10-20 毫秒,但可以接受)。


为了提高基于 KDS 的解决方案的成本效益,该团队使用了事件批处理和 zstd 压缩,压缩比为 10 倍,每批压缩延迟为 100 毫秒。工程师估算,使用压缩技术每年可节省 60 万美元。


使用 KDS 时需要特别注意的一个方面是尾部延迟高(超过 500 毫秒),并且当吞吐量峰值超过每个分片 1MB/s 的硬限制阈值时会进行限流。工程师们实现了一种利用 SQS 队列的回退逻辑,结果实现了低于 20 毫秒的 p99 延迟,同时每月为 SQS 支付的费用不到 100 美元。回退选项还兼作了故障转移机制,以防 KDS 遇到严重的服务降级或中断。



在 KDS 限流情况下,回退到 SQS(来源:Canva 工程博客)


该团队使用 Protocol Buffers 来确保架构的可描述性以及随着时间推移来演进事件定义。Canva 已经在使用 Protocol Buffers 来定义微服务之间的契约,但对于事件定义,它还需要完全的向后和向前兼容性。工程师们还在 protoc 之上创建了一个自主研发的代码生成工具。


Datumgen 用于验证兼容性要求并生成多种语言的代码。此外,该工具从事件定义中提取元数据,以增强事件目录数据,其中包含有关技术和业务所有者的详细信息以及字段描述。文档完备且最新的事件模式有助于 Canva 保持数据质量,避免运行时因模式不兼容而导致的代价高昂的问题,并使工程师能够发现可用的产品分析事件。


作者介绍


Rafal Gancarz 是一位经验丰富的技术领导者和专家。他目前正在帮助星巴克打造可扩展、弹性和成本效益高的商务平台。此前,Rafal 曾为思科、埃森哲、凯德、ICE、Callsign 等公司设计和构建大规模、分布式和基于云的系统。他的兴趣涵盖了架构与设计、持续交付、可观测性和可维护性,以及软件交付的社会技术和组织方面。


原文链接:

https://www.infoq.com/news/2024/08/canva-amazon-kinesis-data-stream/


2024-09-05 08:008621

评论

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

实验室信息管理系统(源码+文档+部署+讲解)

深圳亥时科技

当今社会婚恋交友系统对人们的影响,搭建一款婚恋交友app需要准备什么东西?

DUOKE七七

php 开源 uniapp 交友系统

02.单一职责原则详解

杨充

DAPP项目的外包开发流程

北京木奇移动技术有限公司

区块链技术 dapp开发 软件外包公司

部署Linux服务器运维管理面板1Panel

YG科技

Web3项目的外包开发流程

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

Winform应用中的WebView2:打造现代桌面应用的利器

代码忍者

智能化信息追溯系统(源码+文档+部署+讲解)

深圳亥时科技

LED广告显示屏:如何吸引眼球并提升商业价值

Dylan

商业 城市 LED LED display LED显示屏

京东图片搜索商品拍立淘接口(JD.item_search_img)

tbapi

京东API接口 京东图片搜索接口 京东拍立淘接口

华为云Flexus云服务器X实例之openEuler系统下部署Web应用服务器OpenResty

YG科技

使用Flexus X实例搭建Dubbo-Admin服务

YG科技

有了 BI 为什么还需要指标平台

Aloudata

数据分析 BI 指标管理 指标平台 指标开发

DApp外包开发的框架

北京木奇移动技术有限公司

区块链技术 dapp开发 软件外包公司

2025江西等保测评机构名单看这里!

行云管家

江西 等保 等级保护 等保测评

云智慧ITSM:以技术创新引领行业智能化应用

云智慧AIOps社区

ITSM ITSM软件 IT服务管理 IT服务台

华为云Flexus云服务器X实例之openEuler系统下部署OpenCart开源电子商务平台

YG科技

一文让你快乐理解网络安全的意义

行云管家

网络安全 等保 堡垒机 网络安全厂商

当下热门火爆婚恋交友系统app软件源码,陌生人社交交友系统

DUOKE七七

php uniapp 婚恋交友相亲APP小程序

SQL大宝剑-已燃尽所有SQL的理解

京东科技开发者

「数据密集型应用系统设计」读后感与团队高并发高性能实践案例

京东科技开发者

华为云Flexus云服务器X实例之openEuler系统下部署dufs文件服务器

YG科技

华为云Flexus云服务器X实例之openEuler系统下打造EnBizCard个人电子名片

YG科技

C5GAME 游戏饰品交易平台借助 RocketMQ Serverless 保障千万级玩家流畅体验

阿里巴巴云原生

阿里云 RocketMQ 云原生

商品管理:服装品牌的利润引擎与智能化升级

第七在线

Flexus X实例GitLab部署&构建流水线-私人一体化代码仓库~

YG科技

华为天气年度榜单出炉,带你了解2024中国城市天气情况

最新动态

营销场景中,如何让你的短信不被识别为垃圾短信

京东科技开发者

CnosDB向EMQX实时推送消息,实现端到端的数据实时流转

CnosDB

AI 物联网 时序数据库 开源社区 CnosDB

在线文档云平台(源码+文档+部署+讲解)

深圳亥时科技

数据科学家成长路线图

俞凡

人工智能 算法

Canva 选择 Amazon KDS 而非 SNS+SQS,每天处理 250 亿个事件,节省了 85%的成本_云计算_InfoQ精选文章