GSP319

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 szkolenia, 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 (zalecane) lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie dodatkowych opłat na koncie osobistym.
- Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: w tym module używaj tylko konta do nauki. Jeśli użyjesz innego konta Google Cloud, mogą na nim zostać naliczone opłaty.
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
-
Zaloguj się w swoim nowym projekcie i otwórz Cloud Shell.
-
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.
-
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.
-
Przekaż kompilację monolityczną (znajdującą się w katalogu monolith
) do Artifact Registry. W folderze ~/monotlith-to-microservices/monolith
znajduje się plik Dockerfile, którego możesz użyć do utworzenia kontenera aplikacji.
-
Musisz uruchomić Cloud Build (w tym folderze monolith), by go utworzyć, a potem przekazać do Artifact Registry.
-
Nadaj swojemu artefaktowi tę nazwę:
- Repozytorium: 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 Artifact Registry, 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.
- 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.
- 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).
- 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:

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ć.
- Przejdź do źródłowych katalogów głównych wymienionych poniżej i prześlij utworzone artefakty do Artifact 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
|
- Po skonteneryzowaniu tych mikroserwisów i przesłaniu ich obrazów do Artifact Registry 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.
- 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.
- 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ę i , 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
- 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
- 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
-
Naciśnij kolejno CTRL+O, ENTER i CTRL+X, aby zapisać plik w edytorze nano
.
-
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 Artifact Registry.
- Główny folder usługi: ~/monolith-to-microservices/microservices/src/frontend
- Repozytorium: 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.
- 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
- 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!

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: 26 kwietnia 2024 r.
Ostatni test modułu: 5 grudnia 2023 r.
Copyright 2025 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.