1 puan yazan GN⁺ 2024-08-10 | 1 yorum | WhatsApp'ta paylaş

Çerez ayarları ve bülten aboneliği

  • Bu web sitesi performans, kişiselleştirme ve pazarlama amaçlarıyla çerezler, piksel etiketleri ve yerel depolama kullanır.
  • Varsayılan olarak yalnızca gerekli çerezler etkindir.
  • Bültene abone olunabilir.

Figma'nın Kubernetes'e migrasyonu

  • Yazar: Ian VonSeggern, Figma yazılım mühendisliği yöneticisi
  • Konu: Figma'nın 12 ay içinde Kubernetes'e nasıl ve neden migrate olduğu

Figma'nın bilgi işlem platformu

  • 2023'ün başında, tüm servisleri container içinde çalıştırma işi tamamlandı.
  • AWS'nin Elastic Container Service (ECS) hizmeti kullanılarak containerize iş yükleri hızla başlatıldı.
  • Uzun vadeli bakışla bilgi işlem platformunun yeni nesil sürümü değerlendirilmeye başlandı.

Kubernetes özelliklerinin eksikliği

  • ECS'nin bazı kısıtları nedeniyle önemli miktarda mühendislik zamanı harcandı.
  • Kubernetes'in StatefulSets özelliği ECS'de bulunmadığı için etcd kümesini çalıştırmak zordu.
  • Helm chart'ları üzerinden servis tanımı desteği eksikti.
  • ECS üzerinde EC2 çalıştırılırken tek bir EC2 makinesini sonlandırmak zordu.

Cloud Native Computing Foundation ekosistemine erişim

  • ECS kullanıldığında CNCF ekosistemindeki açık kaynak teknolojilerden yararlanılamıyordu.
  • Kubernetes ekosistemi otomatik ölçeklendirme açısından güçlüydü.
  • Service mesh benimseme olasılığı da değerlendirildi.

Popüler bir platformun avantajları

  • Kubernetes birçok büyük şirket tarafından kullanıldığından kararlılığı kanıtlanmıştı.
  • Vendor lock-in'den kaçınılabiliyordu.
  • Kubernetes deneyimine sahip mühendisleri işe almak daha kolaydı.

Migrasyon kapsamının belirlenmesi

  • Güvenli bir migrasyon için çekirdek sistem değişiklikleri en aza indirildi.
  • Hedef EKS'e taşınmaktı.
  • Bazı iyileştirmeler de migrasyon kapsamına dahil edildi.

Migrasyona dahil edilen iyileştirmeler

  • Geliştirici deneyimi: Servis tanımı ve dağıtım süreci basitleştirildi.
  • Güvenilirlik artışı: Servis güvenilirliğini yükseltmek için üç EKS kümesi kullanıldı.
  • Maliyet verimliliği: Node otomatik ölçeklendirme desteğiyle maliyet düşürüldü.

Kapsam dışında bırakılan işler

  • Log pipeline karmaşıklığını çözme işi kapsam dışı bırakıldı.
  • Pod seviyesinde otomatik ölçeklendirme işi kapsam dışı bırakıldı.

Güvenli migrasyonun yürütülmesi

  • Yük testi: Kümenin performansını anlamak için yük testleri yapıldı.
  • Kademeli rollout mekanizması: Trafiği aşamalı taşımak için weighted DNS kayıtları kullanıldı.
  • Gerçek servisi çalıştırma: Sorunları erken yakalamak için staging ortamında gerçek servis çalıştırıldı.
  • Özel YAML'ın en aza indirilmesi: Kullanıcıların kafasını karıştırabilecek YAML tanımları minimumda tutuldu.
  • Servis sahipleriyle yakın çalışma: İzleme ve alarm sistemleri, servis sahipleriyle birlikte güncellendi.
  • Uygun personel yerleşimi: Beklenmedik sorunları çözebilecek bir ekip oluşturuldu.

Migrasyonun sonuçları

  • 2024 Ocak ayına kadar ana servisler EKS kümelerine migrate edildi.
  • Maliyet düşüşü, güvenilirlik artışı ve geliştirici deneyiminde iyileşme gibi kazanımlar elde edildi.

Lansman sonrası dönem

  • Küme ve rol otomatik çıkarımıyla kullanıcı erişim araçları iyileştirildi.
  • Log pipeline'ın sadeleştirilmesi, yatay pod otomatik ölçeklendirme desteği ve Graviton işlemcilere migrasyon gibi çalışmalar planlandı.

GN⁺ özeti

  • Figma, ECS'den Kubernetes'e migrasyonla maliyetleri düşürdü, güvenilirliği artırdı ve geliştirici deneyimini iyileştirdi.
  • CNCF ekosistemindeki açık kaynak teknolojilerden yararlanarak otomatik ölçeklendirme ve service mesh benimseme olasılığını artırdı.
  • Migrasyon sürecinde yük testi, kademeli rollout ve gerçek servis çalıştırma gibi güvenli yöntemler kullanıldı.
  • Lansman sonrasında kullanıcı erişim araçları iyileştirildi ve ek optimizasyon çalışmaları planlandı.

1 yorum

 
GN⁺ 2024-08-10
Hacker News görüşü
  • k8s seven bir kullanıcı var

    • birden fazla küçük ölçekli, karmaşık özel e-ticaret mağazası işletiyor
    • pazarlama, finans ve müşteri hizmetlerinin tamamını yürütüyor
    • daha önce dedicated server kullanıyordu ama deployment tam bir kâbustu
    • k8s'e geçiş bir ay sürdü
    • 25 farklı servis çalıştırıyor
    • cluster yapılandırmasını tek bir yerde toplayarak servis durumunu doğru biçimde görür hale geldi
    • kesinti olmadan rolling deployment yapabilir hale geldi
    • karmaşık ama bir programcı olarak karmaşıklığa alışkın
    • k8s mimarisini anlarsan daha fazlasını öğrenebilirsin
    • yüksek erişilebilirlik (HA) çok faydalı
    • barındırma maliyeti ayda yaklaşık 400 dolar
  • altyapıyı iyileştirmek için migration iyi bir şey

    • Helm chart kullanmak için Terraform'a dönüştürmemesi şaşırtıcı
    • Helm chart'ları hiç değiştirmeden kullanmak tutarsız görünüyor
    • Helm bakımı zor bir araç
    • Terraform ile yeniden yazmak daha iyi
    • Helm'in sorunlarının çözülüp çözülmediği merak ediliyor
  • HN'deki çok sayıdaki anti-k8s görüş şaşırtıcı

    • yorum yazanların çoğu muhtemelen Heroku, Fly.io, Render.com gibi servisleri kullanıyor ya da uygulamalarını VM üzerinde çalıştıran geliştiriciler
  • Terraform ve ECS ile deployment yönetimi gereğinden fazla karmaşık

    • environment variable eklemek bile karmaşık
    • template üretme kısmı anlaşılır ama genel olarak karmaşık
  • Kubernetes'e migration'ın yıllar sürdüğü yönündeki görüş sorgulanıyor

    • şirketlerin neden böyle migration'lara giriştiği anlaşılmıyor
    • bunun müşteriye ne fayda sağladığı sorgulanıyor
    • teknik isteklerle alınan kararların kullanıcı için anlamlı olup olmadığı merak ediliyor
  • büyük organizasyonlardaki kararların kullanıcıların ya da şirketin ihtiyaçlarına dayanmadığı düşünülüyor

    • Figma'nın önceki veritabanı gönderisinde de benzer bir his vardı
    • teknik isteklerle alınan kararların kullanıcı için anlamlı olup olmadığı merak ediliyor
  • modern sistemler veya servisler arasında 1 yıl içinde tamamlanan ve övünülecek bir migration olup olmadığı merak ediliyor

  • saha raporları okumayı seviyor

    • her zaman yeni bir şey öğreniyor
    • paylaştığın için teşekkürler
  • bu makale Kubernetes'in faydalarını net biçimde açıklıyor

    • birçok kişi faydalarını bilmeden Kubernetes'e geçiyor
    • burada sunulan gerekçeler iyi
  • migration'dan vazgeçmenin ne kadar süreceği merak ediliyor