Checkpoints
Create a GKE Cluster
/ 20
Deploy Existing Monolith
/ 20
Migrate Orders to a microservice
/ 20
Migrate Products to microservice
/ 20
Migrate Frontend to microservice
/ 20
Google Kubernetes Engine'de Monolitik Web Sitesini Mikro Hizmetlere Taşıma
GSP699
Genel bakış
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.
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 hesabı veya Proje Sahibi rolünde olduğunuz bir proje
- Docker ve Kubernetes'e dair genel bilgi
Kurulum ve şartlar
Laboratuvarı Başlat düğmesini tıklamadan önce
Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Laboratuvarı Başlat'ı tıkladığınızda başlayan zamanlayıcı, Google Cloud kaynaklarının ne süreyle kullanımınıza açık durumda kalacağını gösterir.
Bu uygulamalı laboratuvarı kullanarak, laboratuvar etkinliklerini gerçek bir bulut ortamında (Simülasyon veya demo ortamında değil.) gerçekleştirebilirsiniz. Bu olanağın sunulabilmesi için size yeni, geçici kimlik bilgileri verilir. Bu kimlik bilgilerini laboratuvar süresince Google Cloud'da oturum açmak ve Google Cloud'a erişmek için kullanırsınız.
Bu laboratuvarı tamamlamak için şunlar gerekir:
- Standart bir internet tarayıcısına erişim (Chrome Tarayıcı önerilir).
- Laboratuvarı tamamlamak için yeterli süre. (Laboratuvarlar, başlatıldıktan sonra duraklatılamaz)
Laboratuvarınızı başlatma ve Google Cloud Console'da oturum açma
-
Laboratuvarı Başlat düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yöntemini seçebileceğiniz bir pop-up açılır. Soldaki Laboratuvar Ayrıntıları panelinde şunlar yer alır:
- Google Cloud Console'u aç düğmesi
- Kalan süre
- Bu laboratuvarda kullanmanız gereken geçici kimlik bilgileri
- Bu laboratuvarda ilerlemek için gerekebilecek diğer bilgiler
-
Google Cloud Console'u aç'ı tıklayın (veya Chrome Tarayıcı'yı kullanıyorsanız sağ tıklayıp Bağlantıyı gizli pencerede aç'ı seçin).
Laboratuvar, kaynakları çalıştırır ve sonra Oturum açın sayfasını gösteren başka bir sekme açar.
İpucu: Sekmeleri ayrı pencerelerde, yan yana açın.
Not: Hesap seçin iletişim kutusunu görürseniz Başka bir hesap kullan'ı tıklayın. -
Gerekirse aşağıdaki kullanıcı adını kopyalayıp Oturum açın iletişim kutusuna yapıştırın.
{{{user_0.username | "Username"}}} Kullanıcı adını Laboratuvar ayrıntıları panelinde de bulabilirsiniz.
-
İleri'yi tıklayın.
-
Aşağıdaki şifreyi kopyalayıp Hoş geldiniz iletişim kutusuna yapıştırın.
{{{user_0.password | "Password"}}} Şifreyi Laboratuvar ayrıntıları panelinde de bulabilirsiniz.
-
İleri'yi tıklayın.
Önemli: Laboratuvarın sizinle paylaştığı giriş bilgilerini kullanmanız gerekir. Google Cloud hesabınızın kimlik bilgilerini kullanmayın. Not: Bu laboratuvarda kendi Google Cloud hesabınızı kullanabilmek için ek ücret ödemeniz gerekebilir. -
Sonraki sayfalarda ilgili düğmeleri tıklayarak ilerleyin:
- Şartları ve koşulları kabul edin.
- Geçici bir hesap kullandığınızdan kurtarma seçenekleri veya iki faktörlü kimlik doğrulama eklemeyin.
- Ücretsiz denemelere kaydolmayın.
Birkaç saniye sonra Google Cloud Console bu sekmede açılır.
Cloud Shell'i etkinleştirme
Cloud Shell, çok sayıda geliştirme aracı içeren bir sanal makinedir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Cloud Shell, Google Cloud kaynaklarınıza komut satırı erişimi sağlar.
- Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir simgesini tıklayın.
Bağlandığınızda, kimliğiniz doğrulanmış olur. Proje ise PROJECT_ID'nize göre ayarlanmıştır. Çıkış, bu oturum için PROJECT_ID'yi tanımlayan bir satır içerir:
gcloud
, Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiştir ve sekmeyle tamamlamayı destekler.
- (İsteğe bağlı) Etkin hesap adını şu komutla listeleyebilirsiniz:
-
Yetkilendir'i tıklayın.
-
Çıkışınız aşağıdaki gibi görünecektir:
Çıkış:
- (İsteğe bağlı) Proje kimliğini şu komutla listeleyebilirsiniz:
Çıkış:
Örnek çıkış:
gcloud
ile ilgili tüm belgeleri, Google Cloud'daki gcloud CLI'ya genel bakış rehberinde bulabilirsiniz.
Varsayılan alt bölgeyi ve proje yapılandırmasını ayarlayın:
1. görev: Kaynak depoyu klonlama
Basit bir karşılama sayfası, ürünler sayfası ve sipariş geçmişi sayfası olan hayali bir e-ticaret web sitesinin mevcut monolitik uygulamasını kullanacaksınız. Kaynağı Git depomuzdan klonladıktan sonra yalnızca mikro hizmetlere ayırmaya ve Google Kubernetes Engine'e (GKE) dağıtmaya odaklanabileceğiz.
- Git deposunu Cloud Shell örneğinize klonlamak için aşağıdaki komutları çalıştırın ve uygun dizin değişikliğini yapın. Dağıtım öncesinde monolitinizi test edebilmeniz için NodeJS bağımlılarını yüklemeniz gerekir:
Bu komut dosyasının çalışması birkaç dakika sürebilir.
2. görev: GKE kümesi oluşturma
Geliştirme ortamınız çalışır durumda olduğuna göre şimdi, monolitinizi ve son olarak mikro hizmetlerinizi dağıtacağınız bir Kubernetes kümesine ihtiyacınız var. Küme oluşturabilmeniz için önce gerekli API'lerin etkin olduğundan emin olmalısınız.
- Google Kubernetes Engine'i kullanabilmek için Containers API'yi etkinleştirmek üzere aşağıdaki komutu çalıştırın:
- fancy-cluster adlı ve 3 düğüme sahip bir GKE kümesi oluşturmak için aşağıdaki komutu çalıştırın:
Kümenin oluşturulması birkaç dakika sürebilir.
- Bu komut tamamlandıktan sonra, kümenin üç çalışan sanal makine örneğini görmek için aşağıdaki komutu çalıştırın:
Çıkış:
Kubernetes kümenizi ve ilgili bilgileri Cloud Console'da da görüntüleyebilirsiniz. Gezinme menüsünde aşağı kaydırarak Kubernetes Engine'i bulun ve Clusters'ı (Kümeler) tıklayın.
fancy-cluster adlı kümenizi göreceksiniz.
Tebrikler! İlk Kubernetes kümenizi oluşturdunuz.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
3. görev: Mevcut monoliti dağıtma
Bu laboratuvarın odak noktası monoliti mikro hizmetlere ayırmak olduğundan öncelikle bir monolitik uygulamayı çalışır duruma getirmeniz gerekir.
- GKE kümenize bir monolitik uygulama dağıtmak için aşağıdaki komut dosyasını çalıştırın:
Monolite erişme
- Monolitik uygulamanın harici IP adresini bulmak için aşağıdaki komutu çalıştırın:
Şuna benzer bir çıkış alırsınız:
-
Çıkışınızda harici IP
<pending>
(bekleniyor) olarak listeleniyorsa kısa bir süre bekleyin ve komutu yeniden çalıştırın. -
Monolitinizin harici IP adresini belirledikten sonra kopyalayın. Monolitinizin erişilebilir durumda olup olmadığını kontrol etmek için tarayıcınızı bu URL'ye (örneğin http://203.0.113.0) yönlendirin.
Monolitik web sitesinin karşılama sayfasını görüyor olmanız gerekir. Karşılama sayfası, daha sonra ön uç mikro hizmeti tarafından sunulacak olan statik bir sayfadır. Artık monolitiniz tümüyle Kubernetes üzerinde çalışıyor.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
4. görev: Siparişleri bir mikro hizmete taşıma
Artık GKE'de çalışan bir monolitik web siteniz olduğuna göre hizmetleri mikro hizmetlere ayırmaya başlayabilirsiniz. Genellikle, hangi hizmetlerin daha küçük parçalara ayrılacağını belirlemek için planlama yapılması gerekir. Bu planlama çoğu zaman uygulamanın iş alan adı gibi belirli kısımları etrafında yapılır.
Bu laboratuvar için bir örnek oluşturacak ve iş alan adı etrafındaki tüm hizmetleri ayıracaksınız: Siparişler, Ürünler ve Ön Uç. Hizmetleri Google Kubernetes Engine'de (GKE) derleyip dağıtmaya odaklanabilmeniz için kod sizin adınıza önceden taşındı.
Yeni bir Siparişler mikro hizmeti oluşturma
Ayrılacak ilk hizmet Siparişler hizmetidir. Sağlanan bağımsız kod tabanından faydalanarak bu hizmet için ayrı bir Docker container'ı oluşturun.
Cloud Build ile Docker container oluşturma
Kod tabanı zaten hazır olduğundan, atacağınız ilk adım Cloud Build'i kullanarak Siparişler hizmetinizin Docker container'ını oluşturmak olacak.
Normalde bu süreç iki adımda tamamlanır: Bir Docker container'ı derlenir ve görüntünün GKE'nin çekebileceği şekilde depolanması için bu container bir kayıt defterine aktarılır. Docker container'ı derlemek ve görüntüyü tek bir komutla Container Registry'ye yerleştirmek için Cloud Build kullanılabilir. Böylece tek bir komut vererek görüntünüzü derleyebilir ve Container Registry'ye taşıyabilirsiniz. Docker dosyası oluşturma ve aktarma işlemlerinden oluşan manuel süreç hakkında daha fazla bilgiye Google Cloud Container Registry belgelerinden ve Container Registry Hızlı Başlangıç Kılavuzu'ndan ulaşabilirsiniz.
Google Cloud Build, dizindeki dosyaları sıkıştırır ve bir Cloud Storage paketine taşır. Ardından, derleme işlemi sırasında paketteki tüm dosyalar alınır ve Dockerfile üzerinden Docker derleme işlemi çalıştırılır. Docker görüntüsü için ana makine gcr.io olarak ayarlanır ve --tag
işareti belirtilir. Elde edilen Docker görüntüsü Google Cloud Container Registry'ye aktarılır.
- Docker container'ınızı derlemek ve Google Container Registry'ye aktarmak için aşağıdaki komutları kullanın:
Bu işlem bir dakika kadar sürer ve tamamlandıktan sonra terminalde aşağıdakine benzer bir çıkış alınır:
- Derleme geçmişinizi görüntülemek veya işlemi gerçek zamanlı olarak izlemek için konsolun sol üst kısmındaki gezinme menüsü düğmesini tıklayın, aşağı kaydırarak CI/CD'ye gidin ve Cloud Build > History'yi (Geçmiş) tıklayın. Burada, önceki tüm derlemelerinizin listesini görebilirsiniz. Şimdilik yalnızca az önce oluşturduğunuz derleme vardır.
Derleme kimliğini tıklarsanız derlemenin günlük çıkışı da dahil olmak üzere tüm ayrıntılarını görebilirsiniz.
Derleme ayrıntıları sayfasında, oluşturulan container görüntüsünü görmek için sağdaki bölümde yer alan Execution Details'ı (Yürütme Ayrıntıları) tıklayın.
Container'ı GKE'ye dağıtma
Web sitesini container mimarisine aldığınıza ve container'ı Google Container Registry'ye aktardığınıza göre sıra Kubernetes'e dağıtım yapmaya geldi.
Kubernetes'te uygulamalar kapsüller olarak temsil edilir. Kapsüller, bir container'ı (veya birbirlerine sıkı sıkıya bağlı bir grup container'ı) temsil eden birimlerdir. Kapsül, Kubernetes'teki en küçük dağıtılabilir birimdir. Bu eğiticideki her kapsülde yalnızca mikro hizmetler container'ınız yer almaktadır.
Uygulamaları bir GKE kümesinde dağıtıp yönetmek için Kubernetes küme yönetimi sistemiyle iletişim kurmanız gerekir. Bunun için genellikle Cloud Shell içinden kubectl komut satırı aracı kullanılır.
İlk olarak bir Dağıtım kaynağı oluşturun. Dağıtım, uygulamanızın replika adı verilen birden fazla kopyasını yönetir ve bu kopyaların her birinin kümenizdeki ayrı birer düğümde çalıştırılmasını planlar. Bu laboratuvarda, Dağıtım tarafından uygulamanızın yalnızca bir kapsülü çalıştırılacaktır. Dağıtımlar bu iş için bir ReplicaSet oluşturur. ReplicaSet, belirtilen sayıda replikanın her zaman çalışmasını sağlamaktan sorumludur.
Aşağıdaki kubectl create deployment
komutu, Kubernetes'in kümenizde 1 replikaya sahip Orders (Siparişler) adlı bir Dağıtım oluşturmasını sağlar.
- Uygulamanızı dağıtmak için şu komutu çalıştırın:
Dağıtımı doğrulama
- Dağıtımın başarıyla oluşturulduğunu doğrulamak için aşağıdaki komutu çalıştırın:
Kapsül durumunun Çalışıyor olması birkaç dakika alabilir.
Çıkış:
Geçerli dağıtımınızı, istenen kapsül sayısı 1 olan replicaset
'i ve çalışmakta olan kapsülü görebilirsiniz. Bu durumda tüm öğeler başarıyla oluşturulmuş demektir.
Kubernetes dağıtımlarınızı Cloud Console'da gezinme menüsünden Kubernetes Engine > Workloads'a (İş Yükleri) giderek de görüntüleyebilirsiniz.
GKE container'ını kullanıma sunma
Uygulamamızı GKE'de dağıttık ancak buna küme dışından erişmemiz mümkün değil. Varsayılan olarak, GKE'de çalıştırılan container'ların harici bir IP adresi bulunmadığından bu container'lara internet üzerinden erişilemez. İnternet trafiği alabilmesi için uygulamanızı bir Hizmet kaynağı üzerinden açıkça kullanıma sunmanız gerekir. Hizmetler, uygulamanızın kapsüllerine ağ ve IP desteği sağlar. GKE, uygulamanız için faturalandırmaya tabi olan harici bir IP adresi ve bir yük dengeleyici oluşturur. Daha fazla bilgi edinmek için Google Cloud web sitesinde Compute Engine fiyatlandırmasına göz atın.
Bu laboratuvara özel olarak hizmetin kullanıma sunulması basitleştirilmiştir. Normal şartlarda, herkese açık uç noktalarınızın güvenliğini sağlamak için bir API ağ geçidi kullanırsınız. Google Cloud Architecture Center'da mikro hizmet en iyi uygulamalarıyla ilgili daha fazla bilgi bulabilirsiniz.
Siparişler hizmetini dağıttığınızda bir Kubernetes dağıtımı aracılığıyla bağlantı noktası 8081'de dahili olarak kullanıma sundunuz. Bu hizmeti harici olarak kullanıma sunmak için trafiği harici bağlantı noktası 80'den dahili bağlantı noktası 8081'e yönlendirmek üzere LoadBalancer
türünde bir Kubernetes hizmeti oluşturmanız gerekir.
- Web sitenizi internet üzerinden kullanıma sunmak için aşağıdaki komutu çalıştırın:
Hizmete erişme
GKE, harici IP adresini Dağıtım'a değil Hizmet kaynağına atar.
- GKE tarafından uygulamanıza sağlanan harici IP adresini öğrenmek istiyorsanız hizmeti incelemek için
kubectl get service
komutunu kullanabilirsiniz:
Çıkış:
Uygulamanızın harici IP adresini belirledikten sonra kopyalayın. Monolitinizi yeni Siparişler hizmetine işaret edecek şekilde değiştireceğiniz sonraki adım için bu adresi saklayın.
Monoliti yeniden yapılandırma
Siparişler hizmetini monolitten kaldırdığınıza göre artık monoliti yeni harici Siparişler mikro hizmetine işaret edecek şekilde değiştirmeniz gerekir.
Monolitleri ayırırken tek bir kod tabanındaki kod parçalarını birden çok mikro hizmete böler ve ayrı ayrı dağıtırsınız. Mikro hizmetler ayrı bir sunucuda çalıştığından artık hizmet URL'lerinizi mutlak yollar olarak referans veremezsiniz; Siparişler mikro hizmetinin sunucu adresine yönlendirme yapmanız gerekir. Bunun için monolit hizmetin bir süre kapalı kalması ve ayrılan her bir hizmetin URL'sini güncellemesi gerekir. Mikro hizmetleri taşıma sürecinde mikro hizmetlerinizi ve monolitinizi üretime taşımayı planlarken bunu göz önünde bulundurmalısınız.
Monolitteki yapılandırma dosyanızı, yeni Siparişler mikro hizmetinin IP adresine işaret edeceği şekilde güncellemeniz gerekir.
- Yerel URL'yi Siparişler mikro hizmetinin IP adresiyle değiştirmek için
nano
düzenleyiciyi kullanın:
Düzenleyici açıldığında dosyanız şu şekilde görünmelidir:
-
REACT_APP_ORDERS_URL
kısmını yeni biçimle değiştirin ve Siparişler mikro hizmetinizin IP adresini aşağıdakiyle eşleşecek şekilde değiştirin:
-
Dosyayı nano düzenleyicide kaydetmek için
CTRL+O
,ENTER
ve ardındanCTRL+X
tuşlarına basın. -
Dosyada ayarlamış olduğunuz URL'ye giderek yeni mikro hizmeti test edin. Web sayfası, Siparişler mikro hizmetinizden bir JSON yanıtı döndürecektir.
-
Şimdi monolit ön ucu yeniden derleyin, monolit container'ını derlemek için derleme işlemini tekrarlayın ve GKE kümesine yeniden dağıtım yapın:
- Monolit yapılandırma dosyalarını yeniden derleyin:
- Cloud Build ile Docker container'ı oluşturun:
- Container'ı GKE'ye dağıtın:
- Tarayıcınızda monolitik uygulamaya gidip Siparişler sayfasına bakarak uygulamanın Siparişler mikro hizmetine işaret ettiğini doğrulayın. Tüm sipariş kimlikleri, aşağıda gösterildiği gibi -MICROSERVICE son ekiyle bitmelidir:
- Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Siparişleri bir mikro hizmete taşıma
5. görev: Ürünleri mikro hizmete taşıma
Yeni bir Ürünler mikro hizmeti oluşturma
Şimdi hizmetleri ayırmaya devam ederek Ürünler hizmetini taşıyın. Önceki süreci aynı şekilde tekrarlayın. Docker container'ı derlemek, container'ınızı dağıtmak ve Kubernetes hizmeti aracılığıyla kullanıma sunmak için aşağıdaki komutları çalıştırın.
- Cloud Build ile Docker container'ı oluşturun:
- Container'ı GKE'ye dağıtın:
- GKE container'ını kullanıma sunun:
- Siparişler hizmeti için yaptığınız gibi, Ürünler hizmetinin herkese açık IP'sini bulun:
Çıkış:
Monoliti yeni Ürünler mikro hizmetinize işaret edecek şekilde yeniden yapılandıracağınız bir sonraki adımda bu IP adresini kullanacaksınız.
Monoliti yeniden yapılandırma
- Yerel URL'yi yeni Ürünler mikro hizmetlerinin IP adresiyle değiştirmek için
nano
düzenleyiciyi kullanın:
Düzenleyici açıldığında dosyanız şu şekilde görünmelidir:
-
REACT_APP_PRODUCTS_URL
kısmını yeni biçimle değiştirin ve Ürünler mikro hizmetinizin IP adresini aşağıdakiyle eşleşecek şekilde değiştirin:
-
Dosyayı kaydetmek için
CTRL+O
,ENTER
ve ardındanCTRL+X
tuşlarına basın. -
Dosyada ayarlamış olduğunuz URL'ye giderek yeni mikro hizmeti test edin. Web sayfası, Ürünler mikro hizmetinden bir JSON yanıtı döndürecektir.
-
Şimdi monolit ön ucu yeniden derleyin, monolit container'ını derlemek için derleme işlemini tekrarlayın ve GKE kümesine yeniden dağıtım yapın. Bu adımları tamamlamak için aşağıdaki komutları çalıştırın:
-
Monolit yapılandırma dosyalarını yeniden derleyin:
- Cloud Build ile Docker container'ı oluşturun:
- Container'ı GKE'ye dağıtın:
- Tarayıcınızda monolitik uygulamaya gidip Ürünler sayfasına bakarak uygulamanızın yeni Ürünler mikro hizmetine işaret ettiğini doğrulayın. Tüm ürün adları, aşağıda gösterildiği gibi MS- ön ekiyle başlamalıdır:
- Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Ürünleri mikro hizmete taşıma
6. görev: Ön ucu mikro hizmete taşıma
Taşıma sürecinin son adımı, Ön Uç kodunu bir mikro hizmete taşımak ve monoliti kapatmaktır. Bu adım tamamlandıktan sonra monolitimizi mikro hizmet mimarisine başarıyla taşımış olacağız.
Yeni ön uç mikro hizmeti oluşturma
Yeni bir ön uç mikro hizmeti oluşturmak için son iki adımdaki prosedürü uygulayın.
Önceden, monoliti yeniden derlerken yapılandırmayı monolite işaret edecek şekilde güncellemiştiniz. Şimdi ön uç mikro hizmeti için aynı yapılandırmayı kullanmanız gerekir.
- Mikro hizmetler URL'sinin yapılandırma dosyalarını ön uç mikro hizmet kod tabanına kopyalamak için aşağıdaki komutları çalıştırın:
-
Bu işlem tamamlandıktan sonra, önceki adımlarla aynı süreci izleyin. Docker container'ı derlemek, container'ınızı dağıtmak ve Kubernetes hizmeti aracılığıyla kullanıma sunmak için aşağıdaki komutları çalıştırın.
-
Google Cloud Build ile Docker container'ı oluşturun:
- Container'ı GKE'ye dağıtın:
- GKE container'ını kullanıma sunun:
- Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Ön ucu mikro hizmete taşıma
Monoliti silme
Tüm hizmetler mikro hizmet olarak çalıştığına göre artık monolitik uygulamayı silebilirsiniz. Gerçek bir taşıma işleminde bu adımı gerçekleştirirken mevcut alan adlarımızın uygulamamızdaki yeni ön uç mikro hizmetlere işaret etmesini sağlamak için DNS değişiklikleri vb. gerekeceğini unutmayın.
- Monoliti silmek için aşağıdaki komutları çalıştırın:
Çalışmanızı test etme
Her şeyin çalıştığını doğrulayın: Monolit hizmetinize ait eski IP adresiniz artık çalışmıyor olmalı ve ön uç hizmetinize ait yeni IP adresiniz yeni uygulamayı barındırıyor olmalıdır.
- Tüm hizmetlerin ve IP adreslerinin listesini görmek için aşağıdaki komutu çalıştırın:
Şuna benzer bir çıkış alırsınız:
Ön uç mikro hizmetinizin harici IP adresini belirledikten sonra kopyalayın. Ön ucunuzun erişilebilir durumda olup olmadığını kontrol etmek için tarayıcınızı bu URL'ye (örneğin http://203.0.113.0) yönlendirin. Web siteniz, monoliti mikro hizmetlere ayırmadan önce nasılsa yine o şekilde görünmelidir.
Tebrikler!
Monolitik uygulamanızı Google Kubernetes Engine'de başarıyla mikro hizmetlere ayırdınız ve dağıttınız.
Görevinizi tamamlama
Bu yönlendirmesiz öğrenim laboratuvarı, Google Cloud'da Web Sitesi görevinin bir parçasıdır. Görevler, bir öğrenme rotasını oluşturan birbiriyle bağlantılı laboratuvar dizilerini ifade eder. Bu laboratuvara katıldıysanız bu göreve kaydolun ve hemen bir tamamlama kredisi kazanın. Diğer görevleri görüntülemek için Google Cloud Öğrenim Merkezi kataloğuna bakın.
Becerilerinizi gösterip bilgilerinizi doğrulamak için uygulamalı bir yarışma laboratuvarına katılmak ister misiniz? Görevi bitirdikten sonra bu ek yarışma laboratuvarını tamamlayın.
Sonraki laboratuvarınıza katılın
Öğrenmeye devam etmek için Google Cloud'da Ölçeklenebilir Web Uygulamaları Barındırma konulu bu başarılı örnek videosunu izleyin veya aşağıdaki önerilere göz atın:
- Compute Engine'i Kullanarak Google Cloud'da Web Uygulaması Barındırma
- Google Cloud'da Statik Web Uygulamaları Barındırma konulu bu videoyu izleyin
Sonraki adımlar/Ek kaynaklar
- [Docker belgeleri]https://docs.docker.com/
- Kubernetes belgeleri
- Google Kubernetes Engine (GKE) belgeleri
- Google Cloud Build belgeleri
- Google Container Registry belgeleri
- Monolitleri Mikro Hizmetlere Taşıma
- Mikro Hizmetler En İyi Uygulamaları
Google Cloud eğitimi ve sertifikası
...Google Cloud teknolojilerinden en iyi şekilde yararlanmanıza yardımcı olur. Derslerimizde teknik becerilere odaklanırken en iyi uygulamalara da yer veriyoruz. Gerekli yetkinlik seviyesine hızlıca ulaşmanız ve öğrenim maceranızı sürdürebilmeniz için sizlere yardımcı olmayı amaçlıyoruz. Temel kavramlardan ileri seviyeye kadar farklı eğitim programlarımız mevcut. Ayrıca, yoğun gündeminize uyması için talep üzerine sağlanan, canlı ve sanal eğitim alternatiflerimiz de var. Sertifikasyonlar ise Google Cloud teknolojilerindeki becerilerinizi ve uzmanlığınızı doğrulamanıza ve kanıtlamanıza yardımcı oluyor.
Kılavuzun Son Güncellenme Tarihi: 20 Eylül 2023
Laboratuvarın Son Test Edilme Tarihi: 20 Eylül 2023
Telif Hakkı 2024 Google LLC Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.