写点什么

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:006110

评论

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

Android开发必看:一文教你完全理解DataBinding框架(下

android 程序员 移动开发

Android应用保活实践,字节跳动Android研发岗这些知识点内部泄露出来了

android 程序员 移动开发

Android开发5年,分享下初级-中级-高级工程师-划分标准

android 程序员 移动开发

Android开发已经到了要烧香求职的地步了?,附面试题答案

android 程序员 移动开发

Android开发3年,我转Java后台了,真香,想转行当程序员的必看

android 程序员 移动开发

Android开发十年,面试百度竟被刷!柳暗花明2020获字节跳动Offer

android 程序员 移动开发

Android开发进阶,需要掌握这几个关键技术是关键!,kotlin中文文档

android 程序员 移动开发

Android开发已经到了要烧香求职的地步了?(1),flutter文档下载

android 程序员 移动开发

Android开发月薪10K与30K之间,只相差这几样热门的前沿知识

android 程序员 移动开发

Android开发想转去做鸿蒙,你的技术真的到天花板了吗?

android 程序员 移动开发

Android开发者必看:Git使用过程中的一些常见场景问题总结

android 程序员 移动开发

Android开发,没有跟上跨平台技术发展是你职业规划最大的可悲

android 程序员 移动开发

Android开发:和Android原生系统对着干的“黑科技,安卓基础面试题2018

android 程序员 移动开发

Android应用启动流程分析(1),android应用开发实战项目

android 程序员 移动开发

Android开发UI新技能,你get这个新技能了吗?(附源码详解)

android 程序员 移动开发

Android开发现状:互联网寒冬下那些-Android-开发高手,都在研究什么技术

android 程序员 移动开发

Android开发5年,怎么样通过自学拿到40W年薪的?,kotlin语言架构

android 程序员 移动开发

Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

android 程序员 移动开发

Android开发之Theme、Style探索及源码浅析,kotlin语言实例精解

android 程序员 移动开发

Android开发之旅:android架构,并发知识体系大全

android 程序员 移动开发

Android开发的前景到底怎么样2016?,kotlin菜鸟教程

android 程序员 移动开发

Android开发者熬夜也要看完的25本中、高级工程师进阶必看书籍

android 程序员 移动开发

Android开发面试:requestLayout() 这么问,面试者直呼

android 程序员 移动开发

Android应用启动流程分析,IDEA太强悍了

android 程序员 移动开发

Android应用开发编译框架流程与IDE及Gradle概要,android游戏开发从入门到精通

android 程序员 移动开发

Android开发如何进阶,薪资如何跟上年龄的脚步?,超全Android中高级面试复习大纲

android 程序员 移动开发

Android开发必会App启动优化,骚年你的屏幕适配方式该升级了

android 程序员 移动开发

Android开发者们该如何面对中年危机?,移动智能终端开发技术设计实验作品

android 程序员 移动开发

Android开发了解这些,自然无惧面试,2021最新Android面试笔试

android 程序员 移动开发

Android开发五年,面试阿里才发现这些知识点没完全掌握;你知道吗

android 程序员 移动开发

Android开发三年,面了八家公司终于腾讯上岸,含泪整理面经

android 程序员 移动开发

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