« Tüm yayınlar

Lift-and-Shift'ten Cloud-Native'e: Kubernetes Modernizasyon Rehberi

VM'den taşınan iş yüklerini gerçek cloud-native mimariye dönüştürmenin adımları: stateless tasarım, strangler fig deseni, KEDA ile ölçekleme ve modernizasyon sıralaması.

Bir uygulamayı sadece bir Deployment manifestine koymak onu cloud-native yapmaz; bu yalnızca konteyner seviyesinde lift-and-shift'tir. Bu yazı, VM'lerden Kubernetes'e taşınan iş yüklerinin gerçek anlamda bulut-yerel hale getirilmesi için izlenmesi gereken mimari yolu ele alıyor. İlk adım, iş yüklerini stateless, extractable stateful, sıkı bağlı monolit ve düşük ROI'li legacy olmak üzere dört kategoriye ayırmak ve her biri için farklı bir modernizasyon stratejisi (doğrudan konteynerleştirme, önce state'i dışsallaştırma, strangler fig deseni veya yönetilen servise geçiş) belirlemektir.

Yazı, in-process oturum, dosya ve zamanlanmış görev durumlarının Redis, nesne depolama ve CronJob'lar ile dışsallaştırılmasının neden Kubernetes'te zorunlu olduğunu; monolitleri büyük patlama yeniden yazımı olmadan parçalara ayırmak için kanıtlanmış tek yöntem olan strangler fig desenini; anlamlı health probe'ların, gerçek profil verisine dayalı kaynak limitlerinin ve graceful shutdown'ın konteynerleştirme öncesi asgari gereksinimler olduğunu açıklıyor. Ayrıca CPU tabanlı HPA'nın çoğu lifted iş yükü için yanıltıcı bir yük göstergesi olduğunu, kuyruk tüketicileri ve olay işleyicileri için KEDA'nın sıfıra ölçeklenme dahil daha doğru bir yaklaşım sunduğunu vurguluyor.

Son olarak, modernizasyonun teslimatı durdurmadan her sprint'in %20-30'una ayrılarak; önce stateless yeniden tasarım, sonra gözlemlenebilirlik altyapısı, ardından yönetilen servis geçişleri ve strangler fig aşamalarıyla sıralı biçimde yürütülmesi gerektiği belirtiliyor. Gözlemlenebilirliğin ikinci sırada gelmesinin nedeni, güvenle çıkarılamayan servislerin gözlemlenemeyen servisler olmasıdır. Mühendisler için bu, Kubernetes'e geçişin otomatik bir mimari iyileştirme sağlamadığını, disiplinli ve sıralı bir modernizasyon sürecinin gerekliliğini gösteriyor.