menu
arrow_back

Google Kubernetes Engine'de Monolitik Web Sitesini Mikro Hizmetlere Taşıma

—/100

Checkpoints

arrow_forward

Create a GKE Cluster

Deploy Existing Monolith

Migrate Orders to a microservice

Migrate Products to microservice

Migrate Frontend to microservice

Google Kubernetes Engine'de Monolitik Web Sitesini Mikro Hizmetlere Taşıma

1 hour 30 minutes 7 Credits

GSP699

Google Cloud Rehbersiz Laboratuvarları

Giriş

Neden monolitik uygulamadan mikro hizmet mimarisine geçiş yapmalısınız? Uygulamaları mikro hizmetlere ayırmanın sunduğu avantajlar aşağıda verilmiştir ve bunların çoğu, mikro hizmetlerin serbest bağlantılı olmasından kaynaklıdır:

  • Mikro hizmetler bağımsız olarak test edilebilir ve dağıtılabilir. Dağıtım birimi ne kadar küçükse dağıtım o kadar kolay olur.
  • Farklı dillerde ve çerçevelerde uygulanabilir. Her bir mikro hizmetin kendine özgü kullanım alanı için en iyi teknolojiyi seçebilirsiniz.
  • Farklı ekipler tarafından yönetilebilir. Mikro hizmetler arasındaki sınır, bir veya birkaç mikro hizmete özel ekip atanmasını kolaylaştırır.
  • Mikro hizmetlere geçiş yaparak ekiplerin birbirine olan bağımlılığını azaltabilirsiniz. Her ekip yalnızca bağımlı olduğu mikro hizmetlerin API'leriyle ilgilenir. Böylece bu mikro hizmetlerin uygulanma şekli, sürüm döngüleri vb. ile uğraşmasına gerek kalmaz.
  • Arıza durumu için daha kolay planlama yapmanıza olanak tanır. Hizmetler arasında net sınırlar çizildiğinde bir hizmetin çökmesi durumunda ne yapacağınızı belirlemek kolaylaşır.

Monolitlere kıyasla bazı dezavantajlar ise şunlardır:

  • Mikro hizmet tabanlı uygulamalar, çoğu zaman kolaylıkla ayırt edilemeyecek şekilde birbiriyle etkileşime geçen farklı hizmetler arasında bir ağ oluşturduğu için sistemin genel karmaşıklığı da artar.
  • Monolitin dahili işleyişinin aksine mikro hizmetler bir ağ üzerinden iletişim kurar. Bazı durumlarda bu bir güvenlik endişesi oluşturabilir. Istio, mikro hizmetler arasındaki trafiği otomatik olarak şifreleyerek bu sorunu çözer.
  • Hizmetler arasındaki gecikmeler nedeniyle monolitik yaklaşımla aynı performans düzeyine ulaşmak zor olabilir.
  • Sisteminizin davranışı tek bir hizmetten değil, pek çok hizmetten ve bunların arasındaki etkileşimlerden kaynaklanır. Bu nedenle sisteminizin üretimde nasıl davrandığını anlamak (yani sisteminizin gözlemlenebilirliği) daha zordur. Istio bu soruna da çözüm getirir.

Bu laboratuvarda, Google Kubernetes Engine kümesine mevcut bir monolitik uygulamayı dağıtacak ve daha sonra mikro hizmetlere ayıracaksınız. Kubernetes, container'ları yönetme, barındırma, ölçeklendirme ve dağıtma amaçlı bir platformdur. Container'lar ise kodu taşınabilir bir şekilde paketleme ve çalıştırma yoludur. Her mikro hizmetin kendi container'ını çalıştırabildiği mikro hizmet kalıbına uygundur.

Mikro Hizmetlerin Mimari Şeması

Monoliti tek seferde bir tane olacak şekilde üç mikro hizmete ayırarak başlayın. Mikro hizmetler şunlardır: Siparişler, Ürünler ve Ön Uç. Cloud Build'i kullanarak her mikro hizmet için bir Docker görüntüsü derleyin ve daha sonra mikro hizmetleri LoadBalancer türü bir Kubernetes hizmetiyle Google Kubernetes Engine'de (GKE) dağıtın ve kullanıma sunun. Hizmetleri yeniden düzenleyerek monolitten çıkarırken bu işlemi her hizmet için tekrarlayacaksınız. İşlem sırasında, monoliti silebileceğiniz en son aşamaya gelene kadar hem monoliti hem de mikro hizmetleri çalıştırmaya devam edeceksiniz.

636a2d58588b2b87.png

Neler öğreneceksiniz?

  • Monoliti Mikro Hizmetlere ayırma

  • Google Kubernetes Engine kümesi oluşturma

  • Docker görüntüsü oluşturma

  • Docker görüntülerini Kubernetes'e dağıtma

Ön koşullar

  • Proje oluşturmak için yönetim erişimine sahip bir Google Cloud Platform hesabı veya Proje Sahibi rolüne sahip olduğunuz bir proje

  • Docker ve Kubernetes'e dair genel bilgi

Join Qwiklabs to read the rest of this lab...and more!

  • Get temporary access to the Google Cloud Console.
  • Over 200 labs from beginner to advanced levels.
  • Bite-sized so you can learn at your own pace.
Join to Start This Lab