Hasty Briefsbeta

双语

We Saved $500k per Year by Rolling Our Own S3

7 months ago
  • #rust
  • #cost-optimization
  • #s3-alternative
  • Nanit公司开发了基于Rust语言的内存缓存区N3,替代原视频处理流程中的S3服务,实现年成本节约50万美元
  • S3服务的PutObject请求费用和最低1天的存储周期是主要成本来源——尽管视频仅需约2秒处理时间却被强制存储24小时
  • N3系统将视频暂存内存约2秒,仅将S3作为溢出缓冲区,在保证可靠性的同时严格维持婴儿视频的处理顺序
  • 架构包含无状态的N3-Proxy(处理上传)和有状态的N3-Storage(内存存储),当N3过载时自动回退至S3服务
  • 关键优化包括:基于DNS的负载均衡、网络优化实例、Rust原生TLS库(rustls)、禁用TCP时间戳降低ACK开销
  • 通过强制连接超时和禁用keep-alive解决内存泄漏,优雅重启机制确保Pod更新时零数据丢失
  • 系统采用下载即删除和TTL垃圾回收机制管理内存,在维护或处理延迟时依赖S3作为安全网
  • 早期通过合成压力测试和生产环境概念验证(镜像模式)验证设计,暴露出TLS开销和网络节流等瓶颈
  • 项目成功归因于:明确的问题定义、早期验证、优化核心流程的同时依赖S3处理边缘场景
  • 当业务规模和特定约束使得自建基础设施比托管服务更简单经济时,N3这类定制方案就具有合理性