Punkty kontrolne
Download the monolith code and build your container
/ 10
Create a kubernetes cluster and deploy the application
/ 20
Create a containerized version of orders and product Microservices
/ 20
Deploy the new microservices
/ 20
Create a containerized version of the Frontend microservice
/ 10
Deploy the Frontend microservice
/ 20
Tworzenie witryny w Google Cloud: Challenge Lab
- GSP319
- Wstęp
- Konfiguracja
- Scenariusz
- Zadanie 1. Pobieranie kodu aplikacji monolitycznej i tworzenie kontenera
- Zadanie 2. Tworzenie klastra Kubernetes i wdrażanie aplikacji
- Zadanie 3. Tworzenie nowych mikroserwisów
- Zadanie 4. Wdrażanie nowych mikroserwisów
- Zadanie 5. Konfigurowanie i wdrażanie mikroserwisu frontendu
- Zadanie 6. Tworzenie skonteneryzowanej wersji mikroserwisu frontendu
- Zadanie 7. Wdrażanie mikroserwisu frontendu
- Gratulacje!
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 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).
- Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
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:
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 Google Container 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 GCR.
-
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
Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło.
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
- Utwórz taki klaster:
-
Nazwa klastra:
-
Region:
-
Liczba węzłów: 3
Podpowiedź:
Pamiętaj, aby klaster nazywał się
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
- 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ę
Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło.
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 Google Container Registry wraz ze wskazanymi metadanymi.
Mikroserwis zamówień |
|
Mikroserwis produktów |
|
- 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
Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło.
Zadanie 4. Wdrażanie nowych mikroserwisów
Wdróż te nowe kontenery, wykonując te same czynności co przy aplikacji monolitycznej
- Utwórz i udostępnij wdrożenia w ten sposób:
Mikroserwis zamówień |
|
Mikroserwis produktów |
|
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ę
Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło.
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:
Po otwarciu w edytorze Twój plik powinien wyglądać tak:
- Zamień
REACT_APP_PRODUCTS_URL
na nowy format, podając adresy IP mikroserwisów zamówień i produktów w odpowiednich miejscach poniżej:
-
Naciśnij kolejno CTRL+O, ENTER i CTRL+X, aby zapisać plik w edytorze
nano
. -
Teraz ponownie skompiluj aplikację frontendową, zanim ją skonteneryzujesz.
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
Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło.
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.
Gratulacje!
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.