arrow_back

Tworzenie witryny w Google Cloud: Challenge Lab

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

Tworzenie witryny w Google Cloud: Challenge Lab

Lab 1 godz. 30 godz. universal_currency_alt Punkty: 5 show_chart Średnio zaawansowany
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP319

Moduły Google Cloud do samodzielnego ukończenia

Wstęp

W Challenge Lab (module-wyzwaniu) otrzymasz scenariusz i zestaw zadań. Zamiast instrukcji krok po kroku użyjesz umiejętności zdobytych w poszczególnych modułach kursu, rozwiązując zadania samodzielnie. Automatyczny system oceniania (widoczny na tej stronie) poinformuje Cię, czy zadanie zostało wykonane poprawnie.

W Challenge Lab nie będziemy uczyć Cię nowych pojęć związanych z Google Cloud. Musisz za to poszerzyć nabyte umiejętności, takie jak zmiana domyślnych wartości oraz czytanie i analizowanie komunikatów o błędach, po to, by naprawiać popełnione przez siebie błędy.

Aby zdobyć 100% punktów, musisz ukończyć wszystkie zadania w określonym czasie.

Ten moduł przeznaczony jest dla użytkowników, którzy zapisali się na kurs Build a Website on Google Cloud. Podejmujesz się wyzwania?

Konfiguracja

Zanim klikniesz przycisk Rozpocznij moduł

Zapoznaj się z tymi instrukcjami. Moduły mają limit czasowy i nie można ich zatrzymać. Gdy klikniesz Rozpocznij moduł, na liczniku wyświetli się informacja o tym, na jak długo udostępniamy Ci zasoby Google Cloud.

W tym praktycznym module możesz spróbować swoich sił w wykonywaniu opisywanych działań w prawdziwym środowisku chmury, a nie w jego symulacji lub wersji demonstracyjnej. Otrzymasz nowe, tymczasowe dane logowania, dzięki którym zalogujesz się i uzyskasz dostęp do Google Cloud na czas trwania modułu.

Do ukończenia modułu potrzebne będą:

  • dostęp do standardowej przeglądarki internetowej (zalecamy korzystanie z przeglądarki Chrome).
Uwaga: uruchom ten moduł w oknie incognito lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie oddatkowych opłat na koncie osobistym.
  • Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: jeśli masz już osobiste konto lub projekt w Google Cloud, nie używaj go w tym module, aby uniknąć naliczania opłat na koncie.

Scenariusz

Wyznaczono Ci nowe obowiązki w firmie FancyStore, Inc.

Twoim zadaniem jest podzielenie monolitycznej witryny e-commerce, która należy do Twojej firmy, na szereg logicznie oddzielonych mikroserwisów. Dotychczasowy monolityczny kod znajduje się w repozytorium GitHub. Wykonasz konteneryzację aplikacji, a następnie jej refaktoryzację.

Zakładamy, że dysponujesz umiejętnościami oraz wiedzą, które są potrzebne do wykonania tych zadań, dlatego nie będziesz mieć do dyspozycji szczegółowych przewodników.

Poproszono Cię o przejęcie kierownictwa nad tym projektem, jako że członkowie poprzedniego zespołu, sfrustrowani monolitycznością zadania, postanowili rzucić wszystko i wyjechać w Bieszczady. Twoim zadaniem jest pobranie kodu źródłowego, utworzenie z niego kontenera (jeden z poprzedników pozostawił plik Dockerfile) i przekazanie go do GKE.

Zacznij od skompilowania, wdrożenia i przetestowania aplikacji monolitycznej, by mieć pewność, że kod źródłowy działa. Potem rozdziel poszczególne usługi składowe na wdrożenia mikroserwisów.

W FancyStore, Inc. obowiązują standardy, które musisz uwzględnić:

  • Utwórz swój klaster w regionie .

  • Stosuj nazewnictwo typu zespół-zasób – możesz na przykład nazwać instancję fancystore-orderservice1.

  • Przydzielaj zasoby o ekonomicznych rozmiarach. Projekty są monitorowane, a nadmierne wykorzystanie zasobów spowoduje zakończenie projektu, który z nich korzysta.

  • Używaj typu maszyny e2-medium, chyba że instrukcje będą inne.

Twoje wyzwanie

Siadasz przy biurku, włączasz nowego laptopa i otrzymujesz listę zadań do wykonania. Powodzenia!

Zadanie 1. Pobieranie kodu aplikacji monolitycznej i tworzenie kontenera

  1. Zaloguj się w swoim nowym projekcie i otwórz Cloud Shell.

  2. Musisz zacząć od skopiowania repozytorium git swojego zespołu. W katalogu głównym projektu znajduje się skrypt setup.sh, który musisz uruchomić, aby utworzyć kontener aplikacji monolitycznej.

  3. Po uruchomieniu skryptu setup.sh sprawdź, czy w Cloud Shell jest uruchomiona najnowsza wersja nodeJS:

nvm install --lts

Pojawi się kilka różnych projektów, które można utworzyć i przekazać do repozytorium.

  1. Przekaż kompilację monolityczną (znajdującą się w katalogu monolith) do Google Container Registry. W folderze ~/monotlith-to-microservices/monolith znajduje się plik Dockerfile, którego możesz użyć do utworzenia kontenera aplikacji.

  2. Musisz uruchomić Cloud Build (w tym folderze monolith), by go utworzyć, a potem przekazać do GCR.

  3. Nadaj swojemu artefaktowi tę nazwę:

  • Repozytorium GCR: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Nazwa obrazu:
  • Wersja obrazu: 1.0.0

Podpowiedź:

Pamiętaj, by przesłać kompilację o nazwie w wersji „1.0.0”.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Pobranie kodu aplikacji monolitycznej i utworzenie kontenera

Zadanie 2. Tworzenie klastra Kubernetes i wdrażanie aplikacji

Teraz gdy udało Ci się utworzyć obraz i przekazać go do rejestru kontenerów, możesz utworzyć klaster i wdrożyć w nim ten obraz.

Przekazano Ci zalecenie, aby wdrażać wszystkie zasoby w strefie , dlatego najpierw musisz utworzyć dla niej klaster GKE. Zacznij od klastra z 3 węzłami.

  1. Utwórz taki klaster:
  • Nazwa klastra:

  • Region:

  • Liczba węzłów: 3

Podpowiedź:

Pamiętaj, aby klaster nazywał się i był uruchomiony w regionie .

Po skompilowaniu obrazu i uruchomieniu klastra przyszedł czas, aby wdrożyć aplikację.

Musisz wdrożyć skompilowany obraz w utworzonym klastrze. Spowoduje to uruchomienie aplikacji, ale dostęp do niej będzie możliwy dopiero wtedy, gdy udostępnisz ją do użytku publicznego. Twój zespół przekazał Ci, że aplikacja działa na porcie 8080, ale musisz udostępnić ją na porcie 80, który jest bardziej przyjazny dla użytkowników.

  1. Utwórz i udostępnij wdrożenie w ten sposób:
  • Nazwa klastra:
  • Nazwa kontenera:
  • Wersja kontenera: 1.0.0
  • Port aplikacji: 8080
  • Port dostępny z zewnątrz: 80
Uwaga: na potrzeby tego modułu uproszczono proces udostępniania usługi. Zwykle do zabezpieczania publicznych punktów końcowych jest używana brama API. Więcej informacji znajdziesz w przewodniku ze sprawdzonymi metodami dotyczącymi mikroserwisów (w języku angielskim).
  1. Zanotuj adres IP, który został przypisany w operacji udostępniania wdrożenia do użytku publicznego. Ten adres IP powinien być teraz dostępny w przeglądarce.

Strona powinna wyglądać tak:

Strona internetowa Fancy Store

Podpowiedź:

Pamiętaj, aby wdrożenie nazywało się , a usługa była udostępniona na porcie 80 i mapowana na port 8080.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Utworzenie klastra Kubernetes i wdrożenie aplikacji

Po skompilowaniu i wdrożeniu aplikacji monolitycznej Fancy Store możesz zacząć dzielić ją na mikroserwisy.

Przejście z monolitu na mikroserwisy

Kiedy witryna monolityczna działa już w GKE, możesz rozpocząć dzielenie usług na poszczególne mikroserwisy. Zazwyczaj planuje się, które usługi powinny zostać podzielone na mniejsze kawałki. Najczęściej taki podział jest zgodny z konkretnymi częściami aplikacji, takimi jak obszary biznesowe.

Dla celów tego wyzwania przyjmijmy, że udało Ci się już podzielić aplikację monolityczną na mikroserwisy: Zamówienia, Produkty i Frontend. Twój kod jest gotowy i teraz możesz wdrożyć usługi.

Zadanie 3. Tworzenie nowych mikroserwisów

Są 3 usługi, które musisz podzielić na osobne kontenery. Ponieważ przenosisz wszystkie usługi do kontenerów, musisz w przypadku każdej z nich zwrócić szczególną uwagę na te informacje:

  • folder główny usługi (tam zostanie utworzony kontener);
  • repozytorium, do którego prześlesz kontener;
  • nazwa i wersja artefaktu kontenera.

Tworzenie skonteneryzowanej wersji mikroserwisów

Poniżej znajduje się zestaw usług, które masz skonteneryzować.

  1. Przejdź do źródłowych katalogów głównych wymienionych poniżej i prześlij utworzone artefakty do Google Container Registry wraz ze wskazanymi metadanymi.

Mikroserwis zamówień

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

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

Mikroserwis produktów

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

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

  1. Po skonteneryzowaniu tych mikroserwisów i przesłaniu ich obrazów do GCR musisz wdrożyć i udostępnić te usługi do użytku publicznego.

Podpowiedź: pamiętaj, aby przesłać kompilację o nazwie i wersji „1.0.0” ORAZ kompilację o nazwie i wersji „1.0.0”.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Utworzenie skonteneryzowanej wersji mikroserwisów zamówień i produktów

Zadanie 4. Wdrażanie nowych mikroserwisów

Wdróż te nowe kontenery, wykonując te same czynności co przy aplikacji monolitycznej . Te usługi będą nasłuchiwać na różnych portach, dlatego zanotuj mapowania portów z poniższej tabeli.

  1. Utwórz i udostępnij wdrożenia w ten sposób:

Mikroserwis zamówień

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8081

Externally accessible port: 80

Mikroserwis produktów

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8082

Externally accessible port: 80

UWAGA: zanotuj adresy IP obydwu usług (zamówienia i produkty) po ich udostępnieniu. Będziesz ich potrzebować w kolejnych krokach.

  1. Jeśli chcesz sprawdzić, czy wdrożenia się udały i usługi zostały udostępnione do użytku publicznego, otwórz w przeglądarce te adresy URL:

http://ORDERS_EXTERNAL_IP/api/orders

http://PRODUCTS_EXTERNAL_IP/api/products

Jeśli wdrożenia są poprawne, każda usługa zwróci ciąg tekstowy JSON.

Podpowiedź: pamiętaj, by wdrożenia nazywały się , a usługi były udostępnione na porcie 80.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Wdrożenie nowych mikroserwisów

Zadanie 5. Konfigurowanie i wdrażanie mikroserwisu frontendu

Po wyodrębnieniu obydwu mikroserwisów (zamówień i produktów) musisz skonfigurować usługę frontendu w taki sposób, by je wskazywała, a potem ją wdrożyć.

Ponowne konfigurowanie frontendu

  1. W edytorze nano zastąp lokalny adres URL adresem IP nowego mikroserwisu produktów:
cd ~/monolith-to-microservices/react-app nano .env

Po otwarciu w edytorze Twój plik powinien wyglądać tak:

REACT_APP_ORDERS_URL=http://localhost:8081/api/orders REACT_APP_PRODUCTS_URL=http://localhost:8082/api/products
  1. Zamień REACT_APP_PRODUCTS_URL na nowy format, podając adresy IP mikroserwisów zamówień i produktów w odpowiednich miejscach poniżej:
REACT_APP_ORDERS_URL=http://<ORDERS_IP_ADDRESS>/api/orders REACT_APP_PRODUCTS_URL=http://<PRODUCTS_IP_ADDRESS>/api/products
  1. Naciśnij kolejno CTRL+O, ENTERCTRL+X, aby zapisać plik w edytorze nano.

  2. Teraz ponownie skompiluj aplikację frontendową, zanim ją skonteneryzujesz.

npm run build

Zadanie 6. Tworzenie skonteneryzowanej wersji mikroserwisu frontendu

Gdy mikroserwisy zamówień i produktów są skonteneryzowane i wdrożone, a usługa frontendu skonfigurowana w taki sposób, by je wskazywać, ostatnim etapem jest skonteneryzowanie i wdrożenie frontendu.

Utwórz pakiet zawierający usługę frontendu za pomocą Cloud Build i przekaż go do Container Registry.

  • Główny folder usługi: ~/monolith-to-microservices/microservices/src/frontend
  • Repozytorium GCR: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Nazwa obrazu:
  • Wersja obrazu: 1.0.0

Zachowaj cierpliwość, gdyż ten proces może potrwać kilka minut.

Podpowiedź: pamiętaj, aby przesłać kompilację o nazwie w wersji „1.0.0”.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Utworzenie skonteneryzowanej wersji mikroserwisu frontendu

Zadanie 7. Wdrażanie mikroserwisu frontendu

Wdróż ten kontener, wykonując te same czynności co przy mikroserwisach zamówień i produktów.

  1. Utwórz i udostępnij wdrożenie w ten sposób:
  • Nazwa klastra:
  • Nazwa kontenera:
  • Wersja kontenera: 1.0.0
  • Port aplikacji: 8080
  • Port dostępny z zewnątrz: 80
  1. Jeśli chcesz sprawdzić, czy wdrożenie się udało i mikroserwis został udostępniony do użytku publicznego, otwórz w przeglądarce ten adres IP:

Wyświetli się strona główna witryny Fancy Store z linkami do stron produktów i zamówień, obsługiwanych przez nowe mikroserwisy.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Wdrożenie mikroserwisu frontendu

Gratulacje!

Build_a_Website_on_Google_Cloud_Skill_WBG.png

Zdobądź kolejną odznakę umiejętności

Ten moduł do samodzielnego ukończenia wchodzi w skład kursu Build a Website on Google Cloud, po którego ukończeniu otrzymasz odznakę umiejętności. Za ukończenie kursu otrzymujesz widoczną powyżej odznakę – stanowi ona potwierdzenie Twojego osiągnięcia. Pochwal się nią w swoim CV i mediach społecznościowych, oznaczając swoje osiągnięcie hashtagiem #GoogleCloudBadge.

Ta odznaka umiejętności jest częścią portfolio modernizacji infrastruktury. Kontynuuj naukę, przeszukując katalog pod kątem ponad 20 innych kursów, na które możesz się zapisać (otrzymasz za nie odznakę umiejętności).

Szkolenia i certyfikaty Google Cloud

…pomogą Ci wykorzystać wszystkie możliwości technologii Google Cloud. Nasze zajęcia obejmują umiejętności techniczne oraz sprawdzone metody, które ułatwią Ci szybką naukę i umożliwią jej kontynuację. Oferujemy szkolenia na poziomach od podstawowego po zaawansowany prowadzone w trybach wirtualnym, na żądanie i na żywo, dzięki czemu możesz dopasować program szkoleń do swojego napiętego harmonogramu. Certyfikaty umożliwią udokumentowanie i potwierdzenie Twoich umiejętności oraz doświadczenia w zakresie technologii Google Cloud.

Ostatnia aktualizacja instrukcji: 5 grudnia 2023 r.

Ostatni test modułu: 5 grudnia 2023 r.

Copyright 2024 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.