1 pontos por GN⁺ 2024-08-10 | 1 comentários | Compartilhar no WhatsApp

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

 
GN⁺ 2024-08-10
Comentários no Hacker News
  • há quem goste de k8s

    • opera várias lojas de e-commerce personalizadas, pequenas e complexas
    • cuida de tudo, de marketing e finanças a atendimento ao cliente
    • antes usava servidores dedicados, mas fazer deploy era um pesadelo
    • levou um mês para migrar para k8s
    • opera 25 serviços diferentes
    • conseguiu reunir a configuração do cluster em um só lugar e saber exatamente o estado dos serviços
    • passou a ser possível fazer deploys rolling sem downtime
    • é complexo, mas como programador já está acostumado com complexidade
    • entender a arquitetura do k8s permite aprender ainda mais coisas
    • alta disponibilidade (HA) é muito útil
    • o custo de hospedagem fica em torno de US$ 400 por mês
  • a migração para melhorar a infraestrutura é algo positivo

    • surpreende que não tenham convertido para Terraform para usar charts Helm
    • usar charts Helm sem modificações parece inconsistente
    • Helm é uma ferramenta difícil de manter
    • reescrever em Terraform é melhor
    • fica a dúvida se os problemas do Helm já foram resolvidos
  • surpreende haver tantas opiniões anti-k8s no HN

    • é provável que muitos comentaristas usem serviços como Heroku, Fly.io, Render.com ou executem apps em VMs
  • gerenciar deploys com Terraform e ECS é excessivamente complexo

    • até adicionar variáveis de ambiente é complicado
    • a parte de geração de templates é compreensível, mas no geral é complexo
  • há dúvidas sobre a opinião de que uma migração para Kubernetes leva anos

    • não entende por que as empresas tentam esse tipo de migração
    • questiona qual benefício isso traz para o cliente
    • questiona se decisões baseadas em desejos técnicos fazem sentido para o usuário
  • parece que decisões em grandes organizações não se baseiam nas necessidades do usuário ou da empresa

    • teve sensação parecida em um post anterior da Figma sobre banco de dados
    • questiona se decisões baseadas em desejos técnicos fazem sentido para o usuário
  • 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

    • sempre aprende algo novo
    • agradece por compartilhar
  • este artigo explica com clareza as vantagens do Kubernetes

    • muita gente migra para Kubernetes sem conhecer os benefícios
    • os motivos apresentados aqui são bons
  • fica a dúvida de quanto tempo vai levar para interromper essa migração