阿里云ODPS普惠算力再升级,Data+AI全产品降价低至59元! 了解详情
写点什么

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

评论

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

美腻了!Java资深架构师带你深度学习字节跳动的亿级流量+高并发

Java架构追梦

Java 学习 架构 面试 微服务

WebSocket硬核入门:200行代码,教你徒手撸一个WebSocket服务器

JackJiang

html5 网络编程 websocket 即时通讯

杂谈:一文了解工业4.0

soolaugust

工业互联网 工业4.0

独家!阿里技术人限产的MySQL高级笔记及面试宝典,简直开挂

996小迁

Java MySQL 架构 面试 技术宅

透视HTTPS建造固若金汤的堡垒

码哥字节

https 加密解密 HTTP

华为云瑶光:打通云边端界限,为企业云上业务带来最优解

华为云开发者联盟

华为 云服务

1分钟带你入门Redux、React-Redux

Leo

大前端 React Redux React-Redux

LeetCode题解:98. 验证二叉搜索树,递归中序遍历完成后再判断,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

BIGDATA+AI Meetup 2020第二季·上海站开启报名!

Apache Flink

大数据 AI

解锁华为云AI如何助力无人车飞驰“新姿势”,大赛冠军有话说

华为云开发者联盟

AI 无人驾驶

iOS 性能优化实践:头条抖音如何实现 OOM 崩溃率下降50%+

iOSer

性能优化 OOM ios开发 头条抖音 OOM崩溃

最火的HTAP数据库 京东智联云新一代分布式数据库TiDB架构揭秘

京东科技开发者

数据库 #TiDB

身为程序员你们经历过大厂面试吗?本文为大家解决大厂必问的MySQL调优问题

Java架构师迁哥

在网上被MG坑审过却一直延迟无法取出到账怎么解决 (LGF微7998)

Geek_db0f9e

独家!阿里技术人限产的MySQL高级笔记及面试宝典,学完简直开挂

Java架构追梦

Java MySQL 数据库 架构 面试

【活动预告】2020中国系统架构师大会:即构受邀分享实时音视频服务架构实践

ZEGO即构

架构师 高并发系统设计 技术分享

视频面试跟传统面试的区别及优点

anyRTC开发者

ios 音视频 WebRTC RTC 安卓

Java程序员想要进阶,想了解Java服务器的深层高阶知识,Netty绝对是一个必须要过的门槛。

Java架构之路

Java 程序员 架构 编程语言 随笔杂谈

一套完整的后台管理系统(附源码),非常实用!

程序员生活志

管理系统

基于注解的参数校验器Hibernate Validator

HelloLittleRain

Java springboot 参数校验 Hibernate-Validator

膜拜!阿里技术总监纯手打的《MySQL笔记》内部资料限时分享

Java架构师迁哥

Java程序员还在为没有项目经验感到苦恼?快来看看GitHub上最火的SpringCloud微服务商城系统开源项目,附全套教程!

Java架构之路

Java 程序员 架构 面试 编程语言

MySQL-技术专题-MySQL的主从同步

码界西柚

让核显大展拳脚:Intel Iris Xe显卡

E科讯

连续一个月每天加班到凌晨三点,终于把Java程序员必知必会的计算机底层操作系统知识和网络知识整理出来了,已整理成文档!

Java架构之路

Java 程序员 架构 编程语言 操作系统

云原生在京东丨云原生时代下的监控:如何基于云原生进行指标采集?

京东科技开发者

云原生

技术实操丨HBase 2.X版本的元数据修复及一种数据迁移方式

华为云开发者联盟

数据 数据迁移 原数据

【运维思考】运维对象快速扩展,监控如何精准实时的覆盖?

嘉为蓝鲸

PaaS 运维自动化 监控管理平台 监控系统 监控告警

1分钟带你入门 React 公共逻辑抽离HOC...

Leo

大前端 React Hooks HOC Render Props

原来AI也可以如此简单!教你从0到1开发开源知识问答机器人

华为云开发者联盟

开源 AI 机器人

1分钟带你入门 Redux 中间件

Leo

大前端 中间件 Redux Redux中间件

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