Cookie-Einstellungen und Newsletter-Abonnement
- Diese Website verwendet Cookies, Pixel-Tags und Local Storage für Leistung, Personalisierung und Marketing.
- Standardmäßig sind nur unbedingt erforderliche Cookies aktiviert.
- Ein Newsletter-Abonnement ist möglich.
Figma-Migration zu Kubernetes
- Autor: Ian VonSeggern, Engineering Manager für Software bei Figma
- Thema: Wie und warum Figma innerhalb von 12 Monaten auf Kubernetes migriert ist
Figma-Computing-Plattform
- Anfang 2023 wurde die Arbeit abgeschlossen, alle Services in Containern auszuführen.
- Mit AWS Elastic Container Service (ECS) wurden containerisierte Workloads schnell gestartet.
- Aus langfristiger Perspektive begann man, über die nächste Version der Computing-Plattform nachzudenken.
Fehlende Kubernetes-Funktionen
- Einige Einschränkungen von ECS kosteten viel Engineering-Zeit.
- Da die StatefulSets-Funktion von Kubernetes in ECS fehlt, war der Betrieb eines etcd-Clusters schwierig.
- Es fehlte Unterstützung für Service-Definitionen über Helm-Charts.
- Beim Ausführen von EC2 in ECS war es schwierig, eine einzelne EC2-Maschine stillzulegen.
Zugang zum Ökosystem der Cloud Native Computing Foundation
- Mit ECS lassen sich Open-Source-Technologien aus dem CNCF-Ökosystem nicht nutzen.
- Das Kubernetes-Ökosystem bietet starke Auto-Scaling-Funktionen.
- Auch die mögliche Einführung eines Service Mesh wurde in Betracht gezogen.
Vorteile einer weit verbreiteten Plattform
- Kubernetes wird von vielen großen Unternehmen genutzt und ist damit als stabile Lösung bewährt.
- Vendor Lock-in lässt sich vermeiden.
- Es ist einfacher, Engineers mit Kubernetes-Erfahrung einzustellen.
Festlegung des Migrationsumfangs
- Um die Migration sicher durchzuführen, wurden Änderungen an Kernsystemen minimiert.
- Das Ziel war der Wechsel zu EKS.
- Einige Verbesserungen wurden in den Migrationsumfang aufgenommen.
In die Migration einbezogene Verbesserungen
- Developer Experience: Service-Definitionen und Deployment-Prozesse wurden vereinfacht.
- Höhere Zuverlässigkeit: Mit drei EKS-Clustern wurde die Zuverlässigkeit der Services erhöht.
- Kosteneffizienz: Unterstützung für Node Auto Scaling senkt die Kosten.
Nicht im Umfang enthaltene Arbeiten
- Arbeiten zur Behebung der Komplexität der Log-Pipeline wurden ausgeschlossen.
- Arbeiten zum Auto Scaling auf Pod-Ebene wurden ausgeschlossen.
Sichere Durchführung der Migration
- Load-Tests: Es wurden Load-Tests durchgeführt, um die Performance der Cluster zu verstehen.
- Mechanismus für schrittweise Rollouts: Mit gewichteten DNS-Einträgen wurde der Traffic schrittweise umgeleitet.
- Betrieb echter Services: Echte Services wurden in der Staging-Umgebung betrieben, um Probleme frühzeitig zu erkennen.
- Minimierung benutzerdefinierter YAMLs: YAML-Definitionen, die Nutzer verwirren könnten, wurden auf ein Minimum reduziert.
- Enge Zusammenarbeit mit Service-Ownern: Gemeinsam mit den Service-Ownern wurden Monitoring und Alerts aktualisiert.
- Passende personelle Besetzung: Es wurde ein Team zusammengestellt, das unerwartete Probleme lösen konnte.
Ergebnis der Migration
- Bis Januar 2024 wurden die wichtigsten Services auf EKS-Cluster migriert.
- Dadurch wurden Vorteile wie Kostensenkung, höhere Zuverlässigkeit und eine bessere Developer Experience erzielt.
Zeitraum nach dem Launch
- Tools für den Benutzerzugriff wurden durch automatische Ableitung von Clustern und Rollen verbessert.
- Geplant sind Arbeiten wie die Vereinfachung der Log-Pipeline, Unterstützung für Horizontal Pod Autoscaling und die Migration auf Graviton-Prozessoren.
Zusammenfassung von GN⁺
- Figma erreichte mit der Migration von ECS zu Kubernetes Kostensenkungen, höhere Zuverlässigkeit und eine bessere Developer Experience.
- Durch die Nutzung von Open-Source-Technologien aus dem CNCF-Ökosystem wurden die Möglichkeiten für Auto Scaling und die Einführung eines Service Mesh erweitert.
- Während der Migration wurden sichere Methoden wie Load-Tests, schrittweise Rollouts und der Betrieb echter Services eingesetzt.
- Nach dem Launch wurden die Tools für den Benutzerzugriff verbessert, weitere Optimierungen sind geplant.
1 Kommentare
Hacker-News-Kommentare
Es gibt einen Nutzer, der k8s mag
Eine Migration zur Verbesserung der Infrastruktur ist gut
Die vielen Anti-k8s-Meinungen auf HN sind überraschend
Deployment-Management mit Terraform und ECS ist übermäßig komplex
Es wird bezweifelt, dass eine Migration zu Kubernetes mehrere Jahre dauern muss
Es wirkt, als würden Entscheidungen in großen Organisationen nicht auf den Bedürfnissen der Nutzer oder des Unternehmens basieren
Man fragt sich, ob es bei modernen Systemen oder Services überhaupt etwas gibt, worauf man stolz sein könnte, wenn die Migration innerhalb eines Jahres abgeschlossen wurde
Es macht Spaß, Berichte aus der Praxis zu lesen
Dieser Artikel erklärt die Vorteile von Kubernetes klar
Man fragt sich, wie lange es dauern würde, die Migration wieder rückgängig zu machen