立即领取|华润集团、宁德核电、东风岚图等 20+ 标杆企业数字化人才培养实践案例 了解详情
写点什么

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

评论

发布
暂无评论

九联科技开发板正式合入OpenHarmony主干

科技汇

JSON 和JavaScript 介绍与区别

devpoint

JavaScript json 7月月更

SQL也能做AI ?没错!MLOps Meetup V3 回顾|OpenMLBD+SQLFlow+Byzer

星策开源社区

人工智能 机器学习 sql 特征平台

AWS Config

冯亮

云计算 DevOps 架构师 AWS 产品解决方案

手动上传表单数据+图片文件功能

猪痞恶霸

前端 7月月更

【刷题记录】11. 盛最多水的容器

WangNing

7月月更

Istio组件Mixer介绍

阿泽🧸

istio 7月月更

渲染与云渲染:一部电影的制作25%的时间是在“等”

Finovy Cloud

GPU服务器

GNU/Linux知识库(4)- 用户 & 权限

冯亮

Linux DevOps 操作系统 GNU

计算机组成原理之计算机最基本的工作原理

未见花闻

7月月更

长安链中的加密算法

长安链

jQuery 的事件绑定

Jason199

jquery js 7月月更

Python已有列表和字典,为什么还需要元组?

迷彩

Python Python基础知识 元组 7月月更

玩转Liunx系统,看这篇文章就够了(三)

Java学术趴

7月月更

小程序媒体组件-1

小恺

7月月更

电商平台数据可视化监控系统-Echarts-vue项目综合练习

武师叔

7月月更

【Docker 那些事儿】容器数据卷的妙手

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

行业首个「视频直播技术最佳实践图」发布!

阿里云视频云

阿里云 音视频 直播

自动化生成Javascript调用后台代码v0.5.3版本

百家饭隐私计算平台创业者

JavaScript API

包装类型

7月月更

谈Java Record类

ES_her0

7月月更

Codeforces Round #787 (Div. 3)

KEY.L

7月月更

鸿湖万联致远开发板正式合入OpenHarmony主干

科技汇

新书上市 | 图解、幽默、有趣、简单的 Java 书

图灵教育

Java 程序员 计算机

17张图带你深度剖析 ArrayDeque(JDK双端队列)源码

程序员小毕

Java 源码 程序员 jdk 队列

项目管理系统选择有哪些需要注意的点?

爱吃小舅的鱼

项目管理

异步 API 设计之扇入扇出模式

宇宙之一粟

API 7月月更

金融行业开放平台

穿过生命散发芬芳

7月月更 开放平台

国内外知名的待办事项app有哪些

爱吃小舅的鱼

待办事项 todolist

Flutter 模拟火箭发射动画

岛上码农

flutter ios 移动端开发 安卓开发 7月月更

Docker(二)Docker-Compose、网络、数据卷

神农写代码

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