1 puntos por GN⁺ 2024-08-10 | 1 comentarios | Compartir por WhatsApp

Configuración de cookies y suscripción al boletín

  • Este sitio web usa cookies, etiquetas de píxel y almacenamiento local con fines de rendimiento, personalización y marketing.
  • Solo las cookies esenciales están activadas por defecto.
  • Es posible suscribirse al boletín.

La migración de Figma a Kubernetes

  • Autor: Ian VonSeggern, gerente de ingeniería de software en Figma
  • Tema: cómo y por qué Figma migró a Kubernetes en menos de 12 meses

La plataforma de cómputo de Figma

  • A inicios de 2023, completaron el trabajo para ejecutar todos los servicios en contenedores.
  • Usaron Elastic Container Service (ECS) de AWS para poner en marcha rápidamente las cargas de trabajo contenedorizadas.
  • A largo plazo, empezaron a considerar la próxima versión de su plataforma de cómputo.

Falta de funcionalidades de Kubernetes

  • Varias limitaciones de ECS consumían mucho tiempo de ingeniería.
  • Como ECS no tenía una funcionalidad equivalente a StatefulSets de Kubernetes, era difícil ejecutar el clúster de etcd.
  • Faltaba soporte para definir servicios mediante charts de Helm.
  • Al ejecutar EC2 sobre ECS, era difícil apagar una sola máquina EC2.

Acceso al ecosistema de la Cloud Native Computing Foundation

  • Con ECS no podían aprovechar tecnologías open source del ecosistema CNCF.
  • El ecosistema de Kubernetes ofrece muy buenas capacidades de autoescalado.
  • También consideraron la posibilidad de introducir un service mesh.

Ventajas de una plataforma popular

  • Kubernetes ya es usado por muchas grandes empresas, por lo que su estabilidad está comprobada.
  • Permite evitar el vendor lock-in.
  • Es más fácil contratar ingenieros con experiencia en Kubernetes.

Definición del alcance de la migración

  • Para hacer una migración segura, minimizaron los cambios en los sistemas centrales.
  • El objetivo era migrar a EKS.
  • Incluyeron algunas mejoras dentro del alcance de la migración.

Mejoras incluidas en la migración

  • Experiencia de desarrollador: simplificaron la definición de servicios y el proceso de despliegue.
  • Mayor confiabilidad: aumentaron la confiabilidad de los servicios usando tres clústeres de EKS.
  • Eficiencia de costos: redujeron costos gracias al soporte de autoescalado de nodos.

Trabajo excluido del alcance

  • Se excluyó el trabajo para resolver la complejidad del pipeline de logs.
  • Se excluyó el trabajo de autoescalado a nivel de pod.

Cómo realizaron una migración segura

  • Pruebas de carga: realizaron pruebas de carga para entender el rendimiento de los clústeres.
  • Mecanismo de rollout gradual: movieron el tráfico gradualmente usando entradas DNS ponderadas.
  • Ejecución de servicios reales: ejecutaron servicios reales en el entorno de staging para detectar problemas temprano.
  • Minimizar YAML personalizado: redujeron al mínimo las definiciones YAML que podían confundir a los usuarios.
  • Colaboración estrecha con los dueños de servicios: trabajaron con ellos para actualizar monitoreo y alertas.
  • Asignación adecuada de personal: formaron un equipo capaz de resolver problemas inesperados.

Resultados de la migración

  • Para enero de 2024, habían migrado los servicios principales a clústeres de EKS.
  • Obtuvieron beneficios como reducción de costos, mayor confiabilidad y mejor experiencia de desarrollador.

Periodo posterior al lanzamiento

  • Mejoraron las herramientas de acceso de usuarios mediante inferencia automática de clústeres y roles.
  • Planean trabajar en simplificar el pipeline de logs, soportar Horizontal Pod Autoscaler y migrar a procesadores Graviton.

Resumen de GN⁺

  • Figma logró reducir costos, mejorar la confiabilidad y optimizar la experiencia de desarrollador al migrar de ECS a Kubernetes.
  • Al aprovechar tecnologías open source del ecosistema CNCF, aumentó sus posibilidades de adoptar autoescalado y service mesh.
  • Durante la migración, usó métodos seguros como pruebas de carga, rollout gradual y ejecución de servicios reales.
  • Después del lanzamiento, mejoró las herramientas de acceso de usuarios y planea trabajo adicional de optimización.

1 comentarios

 
GN⁺ 2024-08-10
Comentarios de Hacker News
  • Hay usuarios a los que les gusta k8s

    • Operan varias tiendas de comercio electrónico pequeñas, complejas y personalizadas
    • Se encargan de todo, desde marketing y finanzas hasta atención al cliente
    • Antes usaban servidores dedicados, pero hacer despliegues era una pesadilla
    • Pasarse a k8s les tomó un mes
    • Operan 25 servicios distintos
    • Pudieron centralizar la configuración del clúster en un solo lugar y conocer con precisión el estado de los servicios
    • Ahora pueden hacer despliegues rolling sin tiempo de inactividad
    • Es complejo, pero como programadores están acostumbrados a la complejidad
    • Si entiendes la arquitectura de k8s, puedes aprender mucho más
    • La alta disponibilidad (HA) es muy útil
    • El costo de hosting es de unos 400 dólares al mes
  • La migración para mejorar la infraestructura parece buena

    • Sorprende que no lo hayan convertido a Terraform para usar charts de Helm
    • Usar charts de Helm sin modificarlos parece inconsistente
    • Helm es una herramienta difícil de mantener
    • Reescribirlo en Terraform sería mejor
    • Da curiosidad saber si ya resolvieron los problemas de Helm
  • Sorprende ver tantas opiniones anti-k8s en HN

    • Es posible que muchos comentaristas usen servicios como Heroku, Fly.io o Render.com, o que sean desarrolladores que ejecutan apps en VM
  • Gestionar despliegues con Terraform y ECS es excesivamente complejo

    • Incluso agregar variables de entorno es complicado
    • Se entiende la parte de generar plantillas, pero en general se siente complejo
  • Se cuestiona la idea de que migrar a Kubernetes tome varios años

    • No entienden por qué las empresas intentan este tipo de migraciones
    • Se preguntan qué beneficio les aporta a los clientes
    • Dudan de que decisiones basadas en deseos técnicos tengan sentido para los usuarios
  • Parece que las decisiones en organizaciones grandes no se basan en las necesidades de los usuarios ni de la empresa

    • Tuvieron una sensación similar con una publicación anterior sobre la base de datos de Figma
    • Dudan de que decisiones basadas en deseos técnicos tengan sentido para los usuarios
  • Se preguntan si hoy existe algún sistema o servicio moderno cuya migración en menos de un año sea algo de lo que presumir

  • Les gusta leer reportes de campo

    • Siempre aprenden algo nuevo
    • Gracias por compartir
  • Este artículo explica con claridad las ventajas de Kubernetes

    • Mucha gente se cambia a Kubernetes sin conocer bien sus beneficios
    • Las razones presentadas aquí son buenas
  • Se preguntan cuánto tiempo tomará dejar de lado esta migración