arrow_back

Google Cloud'da Web Sitesi Derleme: Yarışma Laboratuvarı

Join Sign in
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Google Cloud'da Web Sitesi Derleme: Yarışma Laboratuvarı

Lab 1 hour 30 minutes universal_currency_alt 5 Credits show_chart Intermediate
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP319

Google Cloud Rehbersiz Laboratuvarları

Giriş

Yarışma laboratuvarında size bir senaryo ve birtakım görevler verilir. Adım adım talimatları uygulamak yerine, görevleri kendi başınıza nasıl tamamlayacağınızı bulmak için bu süreçte laboratuvarlardan öğrendiğiniz becerileri pratiğe dökersiniz. Otomatik bir puan sistemi (bu sayfada gösterilir), görevlerinizi gerektiği şekilde tamamlayıp tamamlamadığınızla ilgili geri bildirim verir.

Bir yarışma laboratuvarı'na katıldığınızda size yeni Google Cloud kavramları öğretilmez. Varsayılan değerleri değiştirmek ve kendi hatalarınızı düzeltmek için hata mesajlarını okuyup araştırma yapmak gibi öğrendiğiniz becerileri geliştirmeniz beklenir.

%100'e ulaşmak için tüm görevleri verilen süre içinde başarıyla tamamlamanız gerekir.

Bu laboratuvar Build a Website on Google Cloud görevine kaydolan öğrenciler için önerilir. Yarışmaya hazır mısınız?

Kurulum

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).
Not: Bu laboratuvarı çalıştırmak için tarayıcıyı gizli pencerede açın. Aksi takdirde, kişisel hesabınızla öğrenci hesabınız arasında oluşabilecek çakışmalar nedeniyle kişisel hesabınızdan ek ücret alınabilir.
  • Laboratuvarı tamamlamak için yeterli süre. (Laboratuvarlar, başlatıldıktan sonra duraklatılamaz)
Not: Kişisel bir Google Cloud hesabınız veya projeniz varsa bu laboratuvarda kullanmayın. Aksi takdirde hesabınızdan ek ücret alınabilir.

Yarışma senaryosu

FancyStore A.Ş. adlı şirkette yeni bir işe başladınız.

Göreviniz, şirketin mevcut monolit e-ticaret web sitesini alıp bir dizi mantıksal olarak ayrılmış mikro hizmete bölmek. Mevcut monolit kod bir GitHub deposunda duruyor, sizden ise bu uygulamayı container mimarisine alıp yeniden düzenlemeniz bekleniyor.

Bu görevler için gereken becerilere ve bilgiye sahip olmanız bekleniyor, yani adım adım açıklamalı kılavuz beklemeyin.

Önceki ekip monolit uygulamanın sorunlarıyla baş edemeyip doğaya dönmeyi seçti; gerçekten de bir lavanta çiftliği kurdular. Dolayısıyla artık bu göreve sizin liderlik etmeniz isteniyor. Kaynak kodu almanız, bundan bir container derlemeniz (çiftçilerden biri size bir Dockerfile bırakmıştı) ve daha sonra bunu GKE'ye aktarmanız gerekiyor.

Önce monoliti derlemeli, dağıtmalı ve kaynak kodun sağlam olduğundan emin olmak için test etmelisiniz. Bunun ardından bileşen hizmetleri kendi mikro hizmet dağıtımlarına ayırmalısınız.

Uymanız gereken bazı FancyStore A.Ş. standartları şunlardır:

  • Kümenizi bölgesinde oluşturun.

  • Adlandırma ekip-kaynak şeklinde olmalıdır, yani bir örnek fancystore-orderservice1 olarak adlandırılabilir.

  • Uygun maliyetli kaynak boyutları ayırın. Projeler izlenmekte olup aşırı kaynak kullanımı projenin sonlandırılmasına neden olur.

  • Aksi belirtilmediği takdirde e2-medium makine türünü kullanın.

Yarışma konusu

Masanıza oturup yeni dizüstü bilgisayarınızı açar açmaz gördüğünüz talep listesinde aşağıdaki görevleri tamamlamanız gerekiyor. İyi şanslar!

1. görev: Monolit kodu indirme ve container'ınızı derleme

  1. Yeni projenize giriş yapın ve Cloud Shell'i açın.

  2. Her şeyden önce ekibinizin Git deposunu klonlamanız gerekir. Monolit container'ınızı derleyebilmeniz için projenin kök dizininde bulunan setup.sh komut dosyasını çalıştırmalısınız.

  3. setup.sh komut dosyasını çalıştırdıktan sonra Cloud Shell'inizin nodeJS'in son sürümünü çalıştırdığından emin olun:

nvm install --lts

Derlenip aktarılabilecek birkaç farklı proje olacaktır.

  1. monolith dizininde bulunan monolit yapıyı Google Container Registry'ye aktarın. ~/monotlith-to-microservices/monolith klasöründe, uygulama container'ını derlemek için kullanabileceğiniz bir Dockerfile dosyası vardır.

  2. Container'ı derlemek için Cloud Build'i (monolit klasöründe) çalıştırmanız ve ardından GCR'ye aktarmanız gerekir.

  3. Yapınızı aşağıdaki gibi adlandırın:

  • GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Image name:
  • Image version: 1.0.0

İpucu:

adlı ve sürümü "1.0.0" olan bir derleme gönderdiğinizden emin olun.

Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın. Monolit kodu indirme ve container'ınızı derleme

2. görev: Kubernetes kümesi oluşturma ve uygulamayı dağıtma

Görüntü oluşturulduğuna ve Container Registry'de hazır durumda beklediğine göre şimdi bunu dağıtacağınız kümeyi oluşturma zamanı geldi.

Size alt bölgesindeki tüm kaynaklarınızı dağıtmanız söylendi, dolayısıyla önce bunun için bir GKE kümesi oluşturmanız gerekir. Başlangıç olarak 3 düğümlü bir küme oluşturun.

  1. Kümenizi aşağıdaki gibi oluşturun:
  • Küme adı:

  • Bölge:

  • Düğüm sayısı: 3

İpucu:

Kümenizin olarak adlandırıldığından ve bölgesinde çalışır durumda olduğundan emin olun.

Görüntü oluşturduğunuza ve küme çalıştırdığınıza göre şimdi uygulamanızı dağıtabilirsiniz.

Derlediğiniz görüntüyü kümenize dağıtmanız gerekir. Böylece uygulamanız çalışır ancak dış dünyaya sunulmadığı sürece uygulamaya erişilemez. Ekibiniz size uygulamanın 8080 numaralı bağlantı noktasında çalıştığını söyledi ama sizin daha tüketici dostu olan 80 numaralı bağlantı noktasını kullanmanız gerekiyor.

  1. Dağıtımınızı aşağıdaki gibi oluşturup kullanıma sunun:
  • Cluster name:
  • Container name:
  • Container version: 1.0.0
  • Application port: 8080
  • Externally accessible port: 80
Not: 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. Mikro hizmetlere dair en iyi uygulamalar rehberinden daha fazla bilgi edinin.
  1. Dağıtımı kullanıma sunma işleminde atanan IP adresini not edin. Artık tarayıcınızdan bu IP adresini ziyaret edebilirsiniz!

Aşağıdaki ekranı görmeniz gerekir:

FancyStore web sayfası

İpucu:

Dağıtımınızın olarak adlandırıldığından ve hizmeti 80 numaralı bağlantı noktasında kullanıma sunup 8080 numaralı bağlantı noktasıyla eşleştirdiğinizden emin olun.

Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın. Kubernetes kümesi oluşturma ve uygulamayı dağıtma

FancyStore monolit uygulamanızı derleyip dağıtabildiğinize göre uygulamayı mikro hizmetlere ayırmaya hazırsınız!

Monoliti mikro hizmetlere taşıma

Mevcut monolit web siteniz GKE'de çalıştığına göre şimdi hizmetleri mikro hizmetlere ayırmaya başlayabilirsiniz. Genellikle, hangi hizmetlerin daha küçük parçalara ayrılacağı konusunda planlama yapılması gerekir. Bu planlama çoğu zaman uygulamanın iş alanı gibi belirli kısımları etrafında yapılır.

Bu yarışmaya özel olarak biraz ileri sarın ve monoliti başarıyla Siparişler, Ürünler ve Ön Uç şeklinde bir dizi mikro hizmete ayırdığınızı varsayın. Kodunuz hazır, şimdi hizmetleri dağıtmanız gerekiyor.

3. görev: Yeni mikro hizmetler oluşturma

Kendi container'larına ayrılması gereken 3 hizmet var. Tüm hizmetleri container'lara taşımak istediğiniz için her bir hizmete ait şu bilgileri izlemeniz gerekir:

  • Hizmetin kök klasörü (container'ı burada derleyeceksiniz)
  • Container'ı yükleyeceğiniz depo
  • Container yapısının adı ve sürümü

Mikro hizmetlerinizin container mimarisine alınmış bir sürümünü oluşturma

Container mimarisine alınması gereken hizmetler aşağıda verilmiştir.

  1. Aşağıda sözü edilen kaynak köklere gidin ve oluşturulan yapıları, verilen meta verilerle birlikte Google Container Registry'ye yükleyin:

Siparişler Mikro Hizmeti

Service root folder: ~/monolith-to-microservices/microservices/src/siparisler

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

Ürünler Mikro Hizmeti

Service root folder: ~/monolith-to-microservices/microservices/src/urunler

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

  1. Bu mikro hizmetler container mimarisine alındıktan ve görüntüleri GCR'ye yüklendikten sonra hizmetleri dağıtıp kullanıma sunmalısınız.

İpucu: adlı ve sürümü "1.0.0" olan bir derleme VE adlı ve sürümü "1.0.0" olan bir derleme gönderdiğinizden emin olun.

Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın. Sipariş ve ürün mikro hizmetlerinin container mimarisine alınmış sürümlerini oluşturma

4. görev: Yeni mikro hizmetleri dağıtma

monoliti için izlediğiniz yolu izleyerek bu yeni container'ları dağıtın. Bu hizmetlerin farklı bağlantı noktalarında işlem yapacağını unutmayın ve aşağıdaki tabloda yer alan bağlantı noktası eşlemelerini not edin.

  1. Dağıtımlarınızı aşağıdaki gibi oluşturup kullanıma sunun:

Siparişler Mikro Hizmeti

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8081

Externally accessible port: 80

Ürünler Mikro Hizmeti

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8082

Externally accessible port: 80

NOT: Kullanıma sunulduktan sonra lütfen hem Siparişler hem de Ürünler hizmetlerinin IP adreslerini not edin. İlerideki adımlarda bu adreslere ihtiyacınız olacak.

  1. Dağıtımların başarılı olduğunu ve hizmetlerin kullanıma sunulduğunu doğrulamak için tarayıcınızda şu URL'lere gidebilirsiniz:

http://ORDERS_EXTERNAL_IP/api/siparisler

http://PRODUCTS_EXTERNAL_IP/api/urunler

Dağıtımlar başarılı olduysa tüm hizmetlerin bir JSON dizesi döndürdüğünü görürsünüz.

İpucu: Dağıtımlarınızın ve olarak adlandırıldığından ve hizmetlerin 80 numaralı bağlantı noktasında kullanıma sunulduğundan emin olun.

Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın. Yeni mikro hizmetleri dağıtma

5. görev: Ön uç mikro hizmetini yapılandırma ve dağıtma

Siparişler ve Ürünler mikro hizmetlerini çıkardığınıza göre şimdi bunlara işaret edecek ön uç hizmetini yapılandırmanız ve dağıtmanız gerekir.

Ön uç mikro hizmetini yeniden yapılandırma

  1. Yerel URL'yi yeni Ürünler mikro hizmetlerinin IP adresiyle değiştirmek için nano düzenleyiciyi kullanın:
cd ~/monolith-to-microservices/react-app nano .env

Düzenleyici açıldığında dosyanız şu şekilde görünmelidir:

REACT_APP_ORDERS_URL=http://localhost:8081/api/orders REACT_APP_PRODUCTS_URL=http://localhost:8082/api/products
  1. REACT_APP_PRODUCTS_URL kısmını, Siparişler ve Ürünler mikro hizmetlerinizin IP adresleriyle değiştirirken aşağıdakiyle eşleşecek şekilde yeni biçimle değiştirin:
REACT_APP_ORDERS_URL=http://<ORDERS_IP_ADDRESS>/api/orders REACT_APP_PRODUCTS_URL=http://<PRODUCTS_IP_ADDRESS>/api/products
  1. Dosyayı nano düzenleyicide kaydetmek için CTRL+O, ENTER ve ardından CTRL+X tuşlarına basın.

  2. Şimdi ön uç uygulamasını container mimarisine almadan önce yeniden derleyin:

npm run build

6. görev: Ön uç mikro hizmetinin container mimarisine alınmış bir sürümünü oluşturma

Siparişler ve Ürünler mikro hizmetleri artık container mimarisine alınıp dağıtıldığına ve ön uç hizmeti de bunlara işaret edecek şekilde yapılandırıldığına göre son adım, ön uç hizmetini container mimarisine almak ve dağıtmaktır.

Frontend hizmetinin içeriğini paketlemek ve Google Container Registry'ye aktarmak için Cloud Build'i kullanın.

  • Service root folder: ~/monolith-to-microservices/microservices/src/frontend
  • GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Image name:
  • Image version: 1.0.0

Bu işlem birkaç dakika alabilir, biraz bekleyin.

İpucu: adlı ve sürümü "1.0.0" olan bir derleme gönderdiğinizden emin olun.

Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın. Ön uç mikro hizmetinin container mimarisine alınmış bir sürümünü oluşturma

7. görev: Ön uç mikro hizmetini dağıtma

"Siparişler" ve "Ürünler" mikro hizmetleri için izlediğiniz yolu izleyerek bu yeni container'ı dağıtın.

  1. Dağıtımınızı aşağıdaki gibi oluşturup kullanıma sunun:
  • Cluster name:
  • Container name:
  • Container version: 1.0.0
  • Application port: 8080
  • Externally accessible port: 80
  1. Dağıtımın başarılı olduğunu ve mikro hizmetlerin düzgün bir biçimde kullanıma sunulduğunu doğrulamak için tarayıcınızda ön uç hizmetinin IP adresine gidebilirsiniz.

Yeni mikro hizmetlerinizle desteklenen Ürünler ve Siparişler sayfa bağlantılarının yer aldığı FancyStore ana sayfasını görürsünüz.

Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın. Ön uç mikro hizmetini dağıtma

Tebrikler!

Build_a_Website_on_Google_Cloud_Skill_WBG.png

Bir sonraki beceri rozetinizi kazanma

Bu yönlendirmesiz öğrenim laboratuvarı, Google Cloud'da Web Sitesi Derleme beceri rozeti görevinin bir parçasıdır. Bu beceri rozeti görevini tamamladığınızda başarınızın ödülü olarak yukarıdaki rozeti alırsınız. Rozetinizi özgeçmişinizde ve sosyal platformlarda kullanabilir ve #GoogleCloudBadge etiketini kullanarak başarınızı duyurabilirsiniz.

Bu beceri rozeti Google Cloud Altyapı Modernizasyonu portföyünün bir parçasıdır. Katalogda, kaydolabileceğiniz 20'den fazla beceri rozeti görevi için arama yaparak öğrenme yolculuğunuza devam edin.

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: 5 Aralık 2023

Laboratuvarın Son Test Edilme Tarihi: 5 Aralık 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.