Programowanie za pomocą Cloud Code

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:

  1. Otwórz edytor Cloud Shell, klikając ten adres URL:

https://ide.cloud.google.com

  1. W oknie terminala sklonuj źródło aplikacji za pomocą tego polecenia:

git clone https://github.com/viglesiasce/sample-app.git -b golden-path

  1. 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.

  1. 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.

ded1723c524edd72.png

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.

89f88159bcf79fa9.png

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.

a1d583fd06413011.png

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.

b2b8ab3975c5b0c9.png

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 d61e85cf23a32a40.png  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.

  1. W panelu u dołu edytora Cloud Shell wybierz Cloud Code d61e85cf23a32a40.png.
  2. 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.
  3. Wybierz kartę Wyjście w dolnym panelu 4866761cb9c691e2.png, aby wyświetlić postęp i powiadomienia.
  4. Wybierz „Kubernetes: Run/Debug - Detailed” (Kubernetes: uruchamianie/debugowanie – szczegółowe) w menu po prawej stronie c5e31091d464dbcf.png, 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.

  1. 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.

  1. 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.

  1. W edytorze Cloud Shell otwórz plik main.go.
  2. W wierszu 23 pliku main.go zmień kolor z zielonego na niebieski.
  3. 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.

  1. 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.

  1. W edytorze Cloud Shell otwórz plik main.go.
  2. Ustaw punkt przerwania w aplikacji, klikając po lewej stronie numeru wiersza 82 (if err != nil {).
  3. W niebieskim panelu u dołu edytora Cloud Shell kliknij Cloud Code d61e85cf23a32a40.png .
  4. 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.

  1. 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. f96e9a814edb44f4.png

Sprawdź, czy wartość jest ustawiona na /go/src/app, i naciśnij Enter, aby ją zaakceptować.

  1. 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ł”.
  2. 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.
  3. 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.
  4. Aby strona mogła się dalej wczytywać, w oknie debugowania kliknij ikonę „Dalej” 8f395391c4828528.png.
  5. Po zakończeniu debugowania kliknij przycisk zatrzymania, aby zakończyć każdy z działających wątków. 81d142a9e1a2c01b.png