1 poin oleh GN⁺ 2024-08-10 | 1 komentar | Bagikan ke WhatsApp

Pengaturan cookie dan langganan newsletter

  • Situs web ini menggunakan cookie, pixel tag, dan penyimpanan lokal untuk tujuan performa, personalisasi, dan pemasaran.
  • Hanya cookie yang wajib yang diaktifkan secara default.
  • Dapat berlangganan newsletter.

Migrasi Figma ke Kubernetes

  • Penulis: Ian VonSeggern, Manajer Rekayasa Perangkat Lunak Figma
  • Topik: Proses dan alasan Figma bermigrasi ke Kubernetes dalam waktu 12 bulan

Platform komputasi Figma

  • Pada awal 2023, Figma menyelesaikan pekerjaan untuk menjalankan semua layanan dalam container.
  • Menggunakan AWS Elastic Container Service (ECS) untuk dengan cepat memulai beban kerja yang telah dikontainerisasi.
  • Dalam perspektif jangka panjang, Figma mulai mempertimbangkan versi generasi berikutnya dari platform komputasinya.

Kekurangan fitur Kubernetes

  • Beberapa keterbatasan ECS menghabiskan banyak waktu rekayasa.
  • Karena ECS tidak memiliki fitur StatefulSets milik Kubernetes, ada kesulitan dalam menjalankan klaster etcd.
  • Kurangnya dukungan untuk definisi layanan melalui Helm chart.
  • Sulit untuk menghentikan satu mesin EC2 saat menjalankan EC2 di ECS.

Akses ke ekosistem Cloud Native Computing Foundation

  • Dengan menggunakan ECS, Figma tidak dapat memanfaatkan teknologi open source dari ekosistem CNCF.
  • Ekosistem Kubernetes memiliki kemampuan autoscaling yang sangat baik.
  • Mempertimbangkan kemungkinan untuk mengadopsi service mesh.

Keunggulan platform yang populer

  • Kubernetes digunakan oleh banyak perusahaan besar sehingga kestabilannya telah terbukti.
  • Dapat menghindari vendor lock-in.
  • Lebih mudah merekrut engineer yang memiliki pengalaman Kubernetes.

Menetapkan cakupan migrasi

  • Untuk migrasi yang aman, perubahan pada sistem inti diminimalkan.
  • Menargetkan perpindahan ke EKS.
  • Beberapa perbaikan juga dimasukkan ke dalam cakupan migrasi.

Perbaikan yang termasuk dalam migrasi

  • Pengalaman developer: Menyederhanakan definisi layanan dan proses deployment.
  • Peningkatan keandalan: Meningkatkan keandalan layanan dengan menggunakan tiga klaster EKS.
  • Efisiensi biaya: Mendukung autoscaling node untuk menurunkan biaya.

Pekerjaan yang dikeluarkan dari cakupan

  • Pekerjaan untuk menyelesaikan kompleksitas pipeline log dikeluarkan.
  • Pekerjaan autoscaling level pod dikeluarkan.

Menjalankan migrasi yang aman

  • Load testing: Melakukan load testing untuk memahami performa klaster.
  • Mekanisme rollout bertahap: Memindahkan traffic secara bertahap dengan menggunakan entri DNS berbobot.
  • Menjalankan layanan nyata: Menjalankan layanan nyata di lingkungan staging untuk menemukan masalah lebih awal.
  • Meminimalkan YAML kustom: Meminimalkan definisi YAML yang dapat membingungkan pengguna.
  • Bekerja erat dengan pemilik layanan: Bekerja sama dengan pemilik layanan untuk memperbarui monitoring dan alert.
  • Penempatan personel yang tepat: Membentuk tim yang mampu menangani masalah tak terduga.

Hasil migrasi

  • Hingga Januari 2024, layanan utama telah dimigrasikan ke klaster EKS.
  • Mendapatkan manfaat seperti penghematan biaya, peningkatan keandalan, dan perbaikan pengalaman developer.

Periode setelah peluncuran

  • Meningkatkan alat akses pengguna melalui inferensi otomatis klaster dan peran.
  • Merencanakan pekerjaan seperti penyederhanaan pipeline log, dukungan horizontal pod autoscaling, dan migrasi ke prosesor Graviton.

Ringkasan GN⁺

  • Figma mencapai penghematan biaya, peningkatan keandalan, dan perbaikan pengalaman developer melalui migrasi dari ECS ke Kubernetes.
  • Dengan memanfaatkan teknologi open source dari ekosistem CNCF, Figma meningkatkan kemungkinan adopsi autoscaling dan service mesh.
  • Dalam proses migrasi, Figma menggunakan metode yang aman seperti load testing, rollout bertahap, dan menjalankan layanan nyata.
  • Setelah peluncuran, Figma memperbaiki alat akses pengguna dan merencanakan pekerjaan optimasi tambahan.

1 komentar

 
GN⁺ 2024-08-10
Opini Hacker News
  • ada pengguna yang menyukai k8s

    • mengelola beberapa toko e-commerce kustom berskala kecil yang kompleks
    • menangani semuanya mulai dari pemasaran, keuangan, hingga layanan pelanggan
    • sebelumnya menggunakan server dedicated, tetapi deployment adalah mimpi buruk
    • butuh satu bulan untuk pindah ke k8s
    • menjalankan 25 layanan yang berbeda
    • konfigurasi cluster dikumpulkan di satu tempat sehingga status layanan bisa diketahui dengan akurat
    • kini rolling deployment bisa dilakukan tanpa downtime
    • memang rumit, tetapi sebagai programmer sudah terbiasa dengan kerumitan
    • jika memahami arsitektur k8s, bisa belajar lebih banyak hal
    • high availability (HA) sangat berguna
    • biaya hosting sekitar $400 per bulan
  • migrasi untuk meningkatkan infrastruktur itu bagus

    • mengejutkan bahwa mereka tidak mengonversinya ke Terraform untuk menggunakan chart Helm
    • menggunakan chart Helm apa adanya tanpa modifikasi terasa tidak konsisten
    • Helm adalah alat yang sulit dipelihara
    • menulis ulang dengan Terraform lebih baik
    • penasaran apakah masalah Helm sudah teratasi
  • banyaknya pendapat anti-k8s di HN terasa mengejutkan

    • kemungkinan banyak penulis komentar menggunakan layanan seperti Heroku, Fly.io, Render.com, atau menjalankan aplikasi di VM
  • pengelolaan deployment dengan Terraform dan ECS terlalu rumit

    • bahkan menambahkan environment variable saja rumit
    • bagian pembuatan template bisa dipahami, tetapi secara keseluruhan tetap rumit
  • mempertanyakan pendapat bahwa migrasi ke Kubernetes memakan waktu beberapa tahun

    • tidak mengerti mengapa perusahaan mencoba migrasi seperti ini
    • mempertanyakan manfaatnya bagi pelanggan
    • mempertanyakan apakah keputusan yang didasarkan pada dorongan teknis benar-benar bermakna bagi pengguna
  • keputusan organisasi besar tampaknya tidak didasarkan pada kebutuhan pengguna atau perusahaan

    • mendapat kesan serupa dari postingan terkait database Figma sebelumnya
    • mempertanyakan apakah keputusan yang didasarkan pada dorongan teknis benar-benar bermakna bagi pengguna
  • penasaran apakah ada sistem atau layanan modern yang layak dibanggakan karena bisa dimigrasikan dalam waktu kurang dari 1 tahun

  • suka membaca laporan dari lapangan

    • selalu belajar hal baru
    • terima kasih sudah berbagi
  • artikel ini menjelaskan manfaat Kubernetes dengan jelas

    • banyak orang beralih ke Kubernetes tanpa mengetahui manfaatnya
    • alasan yang diberikan di sini bagus
  • penasaran berapa lama waktu yang dibutuhkan untuk menghentikan migrasi