写点什么

Figma 从 ECS 迁移到 Kubernetes,以从 CNCF 生态系统中受益并降低成本

作者:Rafal Gancarz

  • 2024-10-08
    北京
  • 本文字数:1285 字

    阅读完需:约 4 分钟

Figma 从 ECS 迁移到 Kubernetes,以从 CNCF 生态系统中受益并降低成本

Figma 在不到 12 个月的时间里将其计算平台 从 AWS ECS 迁移到 Kubernetes(EKS),并做到了对客户影响最小。该公司决定采用 Kubernetes 来运行其容器化工作负载,主要是为了利用 CNCF 所支持的大型生态系统。此外,该举动也是为了节省成本、改善开发人员体验并提高弹性。


在 2023 年初,Figma 转向在容器内运行应用程序服务,并采用弹性容器服务(Elastic Container Service,ECS)作为其容器编排平台。使用 ECS 使公司能够快速推出容器化的工作负载,但从那时起,工程师们在使用 ECS 时遇到了某些局限性的问题,主要表现为缺乏对 StatefulSets、 Helm 图表的支持,或者无法轻松运行诸如 Temporal 之类 OSS 软件。


此外,该公司意识到,它错过了 CNCF 社区为 Kubernetes 提供的广泛功能,包括使用 Keda 或 Karpenter 的高级自动扩缩能力、使用 Istio/Envoy 的服务网格以及许多其他工具和功能。该组织还考虑了为满足其需求而定制 ECS 所需的大量工程工作,以及就业市场上是否有经验丰富的 Kubernetes 工程师。



Kubernetes 迁移时间表(来源:Figma 工程博客)


在决定切换到 Kubernetes(EKS)之后,团队就迁移的范围达成了一致,重点是尽量减少服务所需的更改,以避免延迟和风险。尽管限制了项目的范围,但该公司希望涵盖一些特定的改进,例如简化资源定义以改善开发人员体验,并通过将部署拆分为三个 Kubernetes 集群来提高可靠性,以避免缺陷和操作错误的影响。


Figma 的软件工程经理 Ian VonSeggern 讨论了迁移项目的成本优化目标:


在迁移过程中,我们不想处理太多复杂的成本效益工作,但有一个例外:我们决定从一开始就支持节点自动向外扩展。对于 EC2 上的 ECS 服务,我们只是过度配置了我们的服务,这样我们就有足够的机器能在部署过程中激增。但这个设置是昂贵的,所以我们决定将这个额外的成本优化范围添加到迁移中,因为我们能够以相对较少的工作量来节省大量的资金。我们使用开源 CNCF 项目 Karpenter 根据需求动态扩展和缩减节点。


为了确保项目取得成功,Figma 组建了一个人员配备齐全的团队来推动迁移工作,并与更广泛的组织接触以获得他们的支持。工程师们通过对 Kubernetes 设置进行负载测试以避免意外,使用加权 DNS 条目以实现增量切换机制,并在流程的早期将服务部署到临时 Kubernetes 集群中以解决任何问题,从而为生产部署做好准备。计算平台团队与服务所有者合作,提供了一条黄金之路,并确保了一致性和易维护性。


最初的迁移花了不到 12 个月的时间,在迁移完核心服务后,团队才开始考虑后续活动,比如引入基于 Keda 的自动扩缩能力。此外,根据用户反馈,工程师简化了开发人员工具,使其可以使用三个 Kubernetes 集群和新的细粒度 RBAC 角色。

作者介绍

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


原文链接:

https://www.infoq.com/news/2024/09/figma-ecs-kubernetes-eks/


2024-10-08 08:005731

评论

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

天下武功,唯“拆”不破之MECE原则一| 技术人应知的创新思维模型 (5)

Alan

职场成长 技术人应知的创新思维模型 组合创新 结构化思维 28天写作

架构师训练营第三周课后作业

万有引力

使用Tomcat Native提升Tomcat IO效率

程序那些事

tomcat nio 异步IO 程序那些事 bio

架构师训练营第 1 期 - 第十二周总结

Todd-Lee

极客大学架构师训练营

【小菜学网络】物理层概述

fasionchan

网络编程 计算机网络 网络协议 TCP/IP 物理层

生产环境全链路压测建设历程之六 淘宝网2012年双十一的痛

数列科技杨德华

找到相同链表的点

落朽

分布式事务框架 seata-golang 通信模型详解

阿里巴巴云原生

数据库 微服务 云原生 Go 语言

跨专业零基础校招拿到网易18K*13薪Java岗offer全过程复盘总结

Java架构师迁哥

Github上标星82.1K+star面试笔记,可以帮你搞定95%以上的Java面试,已经帮助多人拿下offer

学习 程序员 面试 计算机

《人工智能:一种现代的方法(第3版)》PDF

计算机与AI

人工智能 学习

【得物技术】MySQL多表关联同步到ES的实践

得物技术

MySQL 原理 配置 ES 多表join

Kindle的又一用处

孙苏勇

读书

架构之书:审美与《重构》

lidaobing

架构

Week 12

黄立

Serverless 如何落地?揭秘阿里核心业务大规模落地实现

阿里巴巴云原生

阿里巴巴 阿里云 Serverless 开发者 云原生

区块链加速产业革命,打造畜禽养殖业发展新途径

CECBC

养殖业

海阔天空的游戏出海,HMS生态提供的风帆与通路

脑极体

Redis为什么用跳表而不用平衡树?

Java架构师迁哥

云上的移动性能测试平台

移动研发平台EMAS

阿里云 测试 移动研发平台

腾讯T1~T9级别工程师具备专业的能力及知识点总结。

Linux服务器开发

程序员 腾讯 工程师 Linux服务器开发 岗位级别

与技术总监另起炉灶的CTO | 法庭上的CTO(8)

赵新龙

CTO 法庭上的CTO

学习笔记丨Linux中数据提取相关命令

Liuchengz.

Linux ubuntu #Ubuntu

如何判断一个区块链项目是否优质?

CECBC

开源

架构师养成第三课

万有引力

复盘不止复盘,更是个人认知升级加速器?

Alan

复盘 思维 技术人应知的创新思维模型 28天写作

实践出真知!华为Android面试真题解析,附超全教程文档

欢喜学安卓

android 程序员 面试 移动开发

腾讯T3大牛手把手教你!从外包月薪5K到阿里月薪15K,分享一点面试小经验

欢喜学安卓

android 程序员 面试 移动开发

开除AI伦理学家,谷歌如何从“不作恶”到“不宽容”?

脑极体

Singleton手绘

raox

极客大学架构师训练营

架构师训练营第 1 期 - 第十二周作业

Todd-Lee

极客大学架构师训练营

Figma 从 ECS 迁移到 Kubernetes,以从 CNCF 生态系统中受益并降低成本_数据库_InfoQ精选文章