1. Cele
W tym laboratorium:
- Poznaj wtyczki Cloud Code
- Wdrażanie w klastrze Kubernetes
- Odtwarzanie logów Kubernetes
- Korzystanie z szybkiego ponownego wczytywania zmian
- Debugowanie aktywnych aplikacji Kubernetes
2. Przygotowywanie obszaru roboczego
Klonowanie aplikacji
Aby sklonować repozytorium i otworzyć je w środowisku programistycznym:
- Otwórz edytor Cloud Shell, klikając ten adres URL:
https://ide.cloud.google.com
- W oknie terminala sklonuj źródło aplikacji za pomocą tego polecenia:
git clone https://github.com/viglesiasce/sample-app.git -b golden-path
- Przejdź do katalogu i ustaw obszar roboczy IDE na katalog główny repozytorium.
cd sample-app && cloudshell workspace .
Uruchamianie minikube
W tej sekcji skompilujesz, przetestujesz, wdrożysz i uzyskasz dostęp do aplikacji za pomocą lokalnej wersji Kubernetes o nazwie Minikube.
- W terminalu uruchom minikube, wpisując:
minikube start
Minikube skonfiguruje lokalny klaster Kubernetes w Cloud Shell. Konfiguracja potrwa kilka minut. Podczas uruchamiania poświęć chwilę na zapoznanie się z różnymi interfejsami udostępnianymi przez Cloud Code w następnym kroku.
3. Poznawanie wtyczki Cloud Code
Cloud Code zapewnia obsługę środowiska IDE w całym cyklu programowania aplikacji Kubernetes i Cloud Run, od tworzenia aplikacji na podstawie istniejącego szablonu po monitorowanie zasobów wdrożonej aplikacji. Będziesz używać różnych poleceń i widoków udostępnianych przez Cloud Code. W tym kroku zapoznasz się z podstawowymi interfejsami.
Sprawdzanie widoków eksploracyjnych na pasku aktywności
Z paska aktywności można uzyskać dostęp do wielu paneli interfejsu użytkownika. Aby zapoznać się z różnymi widokami, kliknij ikony poszczególnych widoków.
API Explorer:
- Na pasku działań kliknij ikonę Cloud Code – Cloud API . Więcej informacji o pracy w tym widoku znajdziesz w dokumentacji.

Eksplorator usługi Secret Manager:
- Na pasku działań kliknij widok usługi Secret Manager . Więcej informacji o pracy w tym widoku znajdziesz w dokumentacji.

Eksplorator Cloud Run:
- Otwórz eksplorator Cloud Run, klikając ikonę Cloud Run na pasku działań po lewej stronie . Więcej informacji o pracy w tym widoku znajdziesz w dokumentacji.

Eksplorator Kubernetes:
- Otwórz Eksploratora Kubernetes, klikając ikonę na pasku aktywności po lewej stronie . Więcej informacji o pracy w tym widoku znajdziesz w dokumentacji.

Sprawdzanie poleceń na pasku stanu
Często używane polecenia są szybko dostępne dzięki wskaźnikowi na pasku stanu.
- Znajdź wskaźnik rozszerzenia Cloud Code na pasku stanu
 i kliknij go. - Poznaj różne polecenia dostępne do uruchamiania i debugowania w Cloud Run i Kubernetes.
- Kliknij Otwórz stronę powitalną, aby uzyskać dodatkowe informacje i przykładowe działania.
Sprawdzanie poleceń na palecie poleceń
Dodatkowe polecenia są dostępne w palecie poleceń. Sprawdź listę poleceń, do których masz dostęp.
- Otwórz paletę poleceń (naciśnij Ctrl/Cmd+Shift+P), a następnie wpisz Cloud Code, aby odfiltrować dostępne polecenia.
- Użyj klawiszy strzałek, aby przewijać listę poleceń.
4. Wdrażanie w klastrze Kubernetes
W tej sekcji skompilujesz, przetestujesz, wdrożysz i otworzysz aplikację.
Poniższe kroki rozpoczynają kompilację kodu źródłowego, a następnie uruchamiają testy. Kompilacja i testy potrwają kilka minut. Obejmują one testy jednostkowe i etap weryfikacji, który sprawdza reguły ustawione dla środowiska wdrażania. Ten krok weryfikacji jest już skonfigurowany i zapewnia, że otrzymasz ostrzeżenie o problemach z wdrożeniem, nawet jeśli nadal pracujesz w środowisku programistycznym.
- W panelu u dołu edytora Cloud Shell wybierz Cloud Code 
. - W panelu, który pojawi się u góry, kliknij Uruchom w Kubernetes. Jeśli pojawi się takie pytanie, wybierz Tak, aby użyć kontekstu Kubernetes minikube.
- Wybierz kartę Wyjście w dolnym panelu
, aby wyświetlić postęp i powiadomienia. - Wybierz „Kubernetes: Run/Debug - Detailed” (Kubernetes: uruchamianie/debugowanie – szczegółowe) w menu po prawej stronie
, aby wyświetlić dodatkowe szczegóły i dzienniki przesyłane strumieniowo na żywo z kontenerów.
Po zakończeniu kompilacji i testów na karcie Dane wyjściowe pojawi się komunikat Resource deployment/sample-app-dev status completed successfully i 2 adresy URL.
- W terminalu Cloud Code najedź kursorem na pierwszy adres URL w danych wyjściowych (http://localhost:8080), a następnie w wyświetlonej etykiecie narzędzia wybierz Otwórz podgląd w przeglądarce.
W przeglądarce otworzy się lokalna wersja aplikacji. Ta wersja aplikacji działa w klastrze Kubernetes minikube.
- Odśwież stronę w przeglądarce. Liczba obok licznika zwiększa się, co oznacza, że aplikacja odpowiada na odświeżanie.
Pozostaw tę stronę otwartą w przeglądarce, aby móc wyświetlać aplikację podczas wprowadzania zmian w środowisku lokalnym.
5. Korzystanie z szybkiego ponownego wczytywania zmian
W tej sekcji wprowadzisz zmianę w aplikacji i zobaczysz ją podczas działania aplikacji w lokalnym klastrze Kubernetes. Na karcie danych wyjściowych kanału Kubernetes: Run/Debug (Kubernetes: uruchom/debuguj) oprócz adresów URL aplikacji w danych wyjściowych pojawia się też komunikat Watching for changes.. Oznacza to, że tryb obserwacji jest włączony. Gdy Cloud Code jest w trybie obserwowania, wykrywa wszelkie zapisane zmiany w repozytorium i automatycznie ponownie kompiluje oraz wdraża aplikację z najnowszymi zmianami.
- W edytorze Cloud Shell otwórz plik main.go.
- W wierszu 23 pliku main.go zmień kolor z zielonego na niebieski.
- Zapisz plik.
Cloud Code wykrywa, że zmiana w aplikacji została zapisana, i automatycznie wdraża ją ponownie. Na karcie Wyjście pojawi się komunikat Zainicjowano aktualizację. Ponowne wdrażanie potrwa kilka minut.
Automatyczna przebudowa jest podobna do ponownego wczytywania kodu na gorąco, czyli funkcji dostępnej w przypadku niektórych typów aplikacji i frameworków.
- Gdy kompilacja się zakończy, otwórz aplikację w przeglądarce i odśwież stronę.
Po odświeżeniu kolor u góry tabeli zmieni się z niebieskiego na zielony.
Ta konfiguracja umożliwia automatyczne ponowne wczytywanie w przypadku dowolnej architektury i dowolnych komponentów. Gdy używasz Cloud Code i minikube, wszystko, co działa w Kubernetes, ma funkcję szybkiego ponownego wczytywania kodu.
6. Debugowanie aplikacji Kubernetes na żywo
Uruchomiono aplikację, wprowadzono w niej zmianę i wyświetlono działającą aplikację. W tej sekcji przeprowadzisz debugowanie aplikacji, aby mieć pewność, że jest ona gotowa do ponownego zatwierdzenia w głównym repozytorium.
W tym przykładzie debugowania skupimy się na sekcji kodu licznika stron.
- W edytorze Cloud Shell otwórz plik main.go.
- Ustaw punkt przerwania w aplikacji, klikając po lewej stronie numeru wiersza 82 (if err != nil {).
- W niebieskim panelu u dołu edytora Cloud Shell kliknij Cloud Code
. - W panelu, który pojawi się u góry, kliknij Debuguj w Kubernetes.
Cloud Code uruchamia i dołącza debugery, dzięki czemu możesz uzyskać dostęp do stanu aplikacji w pamięci, a nie tylko do jej działania widocznego dla użytkownika.
- Po zakończeniu procesu wdrażania u góry okna pojawi się prośba o potwierdzenie katalogu w kontenerze, w którym została wdrożona aplikacja.

Sprawdź, czy wartość jest ustawiona na /go/src/app, i naciśnij Enter, aby ją zaakceptować.
- Poczekaj na zakończenie wdrażania debugera. Gdy pasek stanu zmieni kolor na pomarańczowy, a w danych wyjściowych pojawi się symbol
"Attached debugger to container "sample-app-dev-..." successfully, oznacza to, że proces się zakończył”. - W terminalu Cloud Code najedź kursorem na pierwszy adres URL w danych wyjściowych (http://localhost:8081), a następnie w wyświetlonej etykiecie narzędzia wybierz Otwórz podgląd w przeglądarce. Strona nie zostanie wczytana do końca, co jest oczekiwane.
- Wróć do IDE, w którym pojawi się teraz debuger. Na karcie pojawi się kod, a Ty zobaczysz stos wywołań i zmienne dostępne w tej części kodu. Możesz rozwinąć sekcję Zmienne – lokalne, aby zobaczyć aktualną wartość zmiennej licznika.
- Aby strona mogła się dalej wczytywać, w oknie debugowania kliknij ikonę „Dalej”
. - Po zakończeniu debugowania kliknij przycisk zatrzymania, aby zakończyć każdy z działających wątków.
