Configuração de cookies e assinatura da newsletter
- Este site usa cookies, pixel tags e armazenamento local para fins de desempenho, personalização e marketing.
- Apenas os cookies essenciais ficam ativados por padrão.
- É possível assinar a newsletter.
A migração da Figma para Kubernetes
- Autor: Ian VonSeggern, gerente de engenharia de software da Figma
- Tema: como e por que a Figma migrou para Kubernetes em menos de 12 meses
A plataforma de computação da Figma
- No início de 2023, a empresa concluiu o trabalho de executar todos os serviços em contêineres.
- Usou o Elastic Container Service (ECS) da AWS para iniciar rapidamente as cargas de trabalho conteinerizadas.
- Em uma perspectiva de longo prazo, passou a considerar a próxima geração da sua plataforma de computação.
Limitações de recursos no Kubernetes
- Algumas limitações do ECS consumiam muito tempo de engenharia.
- Como o ECS não tinha um recurso equivalente ao StatefulSets do Kubernetes, havia dificuldades para executar clusters de etcd.
- Faltava suporte para definição de serviços por meio de charts do Helm.
- Ao executar EC2 no ECS, era difícil desativar uma única máquina EC2.
Acesso ao ecossistema da Cloud Native Computing Foundation
- Ao usar ECS, não era possível aproveitar tecnologias open source do ecossistema CNCF.
- O ecossistema Kubernetes se destaca em recursos de auto scaling.
- Também foi considerada a possibilidade de adotar um service mesh.
Vantagens de uma plataforma popular
- O Kubernetes já é usado por muitas grandes empresas, com estabilidade comprovada.
- Ele ajuda a evitar vendor lock-in.
- É mais fácil contratar engenheiros com experiência em Kubernetes.
Definição do escopo da migração
- Para uma migração segura, as mudanças em sistemas centrais foram minimizadas.
- O objetivo era migrar para EKS.
- Algumas melhorias também foram incluídas no escopo da migração.
Melhorias incluídas na migração
- Experiência do desenvolvedor: simplificação da definição de serviços e do processo de deploy.
- Maior confiabilidade: uso de três clusters EKS para aumentar a confiabilidade dos serviços.
- Eficiência de custos: redução de custos com suporte a auto scaling de nós.
Itens fora do escopo
- Ficou de fora o trabalho para resolver a complexidade do pipeline de logs.
- Ficou de fora o trabalho de auto scaling em nível de pod.
Como foi feita uma migração segura
- Testes de carga: foram realizados para entender o desempenho dos clusters.
- Mecanismo de rollout gradual: o tráfego foi migrado gradualmente com entradas DNS ponderadas.
- Execução de serviços reais: serviços reais foram executados no ambiente de staging para detectar problemas cedo.
- Minimização de YAML customizado: foram minimizadas definições YAML que poderiam confundir os usuários.
- Colaboração próxima com os donos dos serviços: trabalho conjunto para atualizar monitoramento e alertas.
- Alocação adequada de pessoal: foi montada uma equipe capaz de resolver problemas inesperados.
Resultado da migração
- Até janeiro de 2024, os principais serviços haviam sido migrados para clusters EKS.
- Foram obtidos benefícios como redução de custos, maior confiabilidade e melhor experiência do desenvolvedor.
Período pós-lançamento
- As ferramentas de acesso do usuário foram melhoradas com inferência automática de clusters e funções.
- Estão planejados trabalhos como simplificação do pipeline de logs, suporte a horizontal pod autoscaling e migração para processadores Graviton.
Resumo do GN⁺
- A Figma alcançou redução de custos, maior confiabilidade e melhor experiência do desenvolvedor ao migrar de ECS para Kubernetes.
- Ao aproveitar tecnologias open source do ecossistema CNCF, ampliou as possibilidades de auto scaling e adoção de service mesh.
- Durante a migração, usou métodos seguros como testes de carga, rollout gradual e execução de serviços reais.
- Após o lançamento, melhorou as ferramentas de acesso do usuário e planejou trabalhos adicionais de otimização.
1 comentários
Comentários no Hacker News
há quem goste de k8s
a migração para melhorar a infraestrutura é algo positivo
surpreende haver tantas opiniões anti-k8s no HN
gerenciar deploys com Terraform e ECS é excessivamente complexo
há dúvidas sobre a opinião de que uma migração para Kubernetes leva anos
parece que decisões em grandes organizações não se baseiam nas necessidades do usuário ou da empresa
fica a dúvida se existe algum sistema ou serviço moderno cuja migração em menos de um ano seja algo de que se possa realmente se orgulhar
gosta de ler relatos de campo
este artigo explica com clareza as vantagens do Kubernetes
fica a dúvida de quanto tempo vai levar para interromper essa migração