Programowanie za pomocą Cloud Code

1. Cele

W tym module:

  • Poznaj wtyczki Cloud Code
  • Wdróż w klastrze Kubernetes
  • Strumieniowanie logów Kubernetes
  • Ponowne ładowanie zmian z użyciem „ gorąco”
  • Debuguj aktywne aplikacje Kubernetes

2. Przygotowuję obszar roboczy

Klonowanie aplikacji

Aby skopiować repozytorium i otworzyć je w środowisku programistycznym:

  1. Otwórz edytor Cloud Shell, odwiedzając ten URL

https://ide.cloud.google.com

  1. W oknie terminala skopiuj ź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 .

Uruchom Minikube

W tej sekcji nauczysz się kompilować, testować i wdrażać aplikacje oraz uzyskiwać do nich dostęp za pomocą lokalnej wersji Kubernetes o nazwie Minikube.

  1. Uruchom minikube w terminalu, uruchamiając polecenie:

minikube start

Minikube skonfiguruje lokalny klaster Kubernetes w Twoim Cloud Shell. Ta konfiguracja zajmie kilka minut. Podczas uruchamiania poświęć chwilę na zapoznanie się z różnymi interfejsami dostępnymi w Cloud Code w następnym kroku.

3. Odkrywanie wtyczki Cloud Code

Cloud Code zapewnia obsługę IDE na potrzeby pełnego 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 dostępnych w Cloud Code. W tym kroku zapoznasz się z podstawowymi interfejsami.

Sprawdź widoki odkrywcy na pasku aktywności

Z paska aktywności można wyświetlić wiele paneli interfejsu. Aby pokrótce zapoznać się z różnymi widokami, klikaj ikony poszczególnych widoków.

API Explorer:

  • Na pasku aktywności kliknij ikonę Cloud Code – Cloud APIs. Dodatkowe informacje o pracy w tym widoku znajdziesz w dokumentacji.

ded1723c524edd72.png

Eksplorator usługi Secret Manager:

  • Kliknij widok usługi Secret Manager ąż na pasku aktywności. Dodatkowe informacje o korzystaniu z tego widoku danych znajdziesz w dokumentacji

89f88159bcf79fa9.png

Eksplorator Cloud Run:

  • Przejdź do eksploratora Cloud Run, korzystając z ikony Cloud Run na pasku aktywności po lewej stronie. Dodatkowe informacje o korzystaniu z tego widoku danych znajdziesz w dokumentacji

a1d583fd06413011.png

Eksplorator Kubernetes:

  • Przejdź do Eksploratora Kubernetes, korzystając z ikony na pasku aktywności po lewej stronie. Dodatkowe informacje o korzystaniu z tego widoku danych znajdziesz w dokumentacji

b2b8ab3975c5b0c9.png

Przejrzyj polecenia na pasku stanu

Wskaźnik na pasku stanu umożliwia szybki dostęp do często używanych poleceń.

  • Znajdź wskaźnik rozszerzenia Cloud Code na pasku stanu d61e85cf23a32a40.png  i kliknij go.
  • Przejrzyj różne polecenia dostępne do uruchamiania i debugowania w CloudRun i Kubernetes
  • Kliknij Otwórz stronę powitalną, aby uzyskać dodatkowe informacje i przykładowe działania

Przejrzyj paletę poleceń Polecenia

Dodatkowe polecenia są dostępne z palety poleceń. Przejrzyj listę poleceń, do których masz dostęp.

  • Otwórz paletę poleceń (naciśnij klawisze Ctrl/Cmd+Shift+P), a następnie wpisz Cloud Code, aby przefiltrować dostępne polecenia.
  • Do poruszania się między listą poleceń służą klawisze strzałek.

4. Wdrażanie w klastrze Kubernetes

W tej sekcji dowiesz się, jak kompilować, testować i wdrażać aplikacje, a także uzyskiwać do nich dostęp.

Poniższe kroki pozwalają rozpocząć kompilację kodu źródłowego, a następnie przeprowadzić testy. Kompilacja i testy potrwają kilka minut. Te testy obejmują testy jednostkowe oraz etap weryfikacji, który sprawdza reguły ustawione dla środowiska wdrożenia. Ten etap weryfikacji jest już skonfigurowany i dzięki temu ostrzeżemy Cię 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 łatwiejsze d61e85cf23a32a40.png.
  2. W panelu, który pojawi się u góry, wybierz Uruchom w Kubernetes. Jeśli pojawi się taka prośba, wybierz Tak, aby użyć kontekstu minikube Kubernetes.
  3. Wybierz kartę Wyniki w dolnym panelu 4866761cb9c691e2.png, aby zobaczyć postęp i powiadomienia.
  4. Wybierz „Kubernetes: Run/Debug - detail”. c5e31091d464dbcf.png z menu kanału po prawej stronie, aby wyświetlić dodatkowe szczegóły i logi, które są przesyłane na żywo z kontenerów.

Po zakończeniu kompilacji i testów na karcie Wyniki (Wyniki) pojawi się komunikat Resource deployment/sample-app-dev status completed successfully. Na liście będą też widoczne 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 wskazówce narzędzia wybierz Otwórz podgląd w przeglądarce.

W przeglądarce zostanie otwarta lokalna wersja aplikacji. Ta wersja aplikacji działa w klastrze Kubernetes minikube.

  1. Odśwież stronę w przeglądarce. Liczba obok opcji Licznik wzrasta, co oznacza, że aplikacja odpowiada na odświeżenie.

Nie zamykaj tej strony w przeglądarce, aby móc wyświetlać aplikację podczas wprowadzania zmian w środowisku lokalnym.

5. Ponowne ładowanie zmian z użyciem „ gorąco”

W tej sekcji wprowadzisz zmianę w aplikacji i wyświetlisz tę zmianę w miarę jej działania w lokalnym klastrze Kubernetes. Na karcie danych wyjściowych kanału Kubernetes: Run/Debug, oprócz adresów URL aplikacji, wyświetlany jest również komunikat Watching for changes.. Oznacza to, że włączony jest tryb obserwacji. Gdy Cloud Code jest w trybie obserwacji, Cloud Code wykrywa wszystkie zapisane zmiany w repozytorium oraz automatycznie skompiluje i ponownie wdroży aplikację z uwzględnieniem najnowszych zmian.

  1. W edytorze Cloud Shell przejdź do pliku main.go.
  2. W tym pliku main.go w wierszu 23 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 Output (Wyjście) wyświetla się komunikat zainicjowano aktualizację. Ponowne wdrożenie może potrwać kilka minut.

Ta funkcja automatycznego ponownego kompilacji jest podobna do ponownego wczytywania kodu z użyciem gorącego kodu – ta funkcja jest dostępna w przypadku niektórych typów aplikacji i platform.

  1. Po zakończeniu kompilacji otwórz przeglądarkę, w której masz otwartą aplikację, i odśwież stronę.

Po odświeżeniu tabeli kolor u góry zmieni się z niebieskiego na zielony.

Ta konfiguracja zapewnia automatyczne ponowne ładowanie w przypadku dowolnej architektury i komponentów. W przypadku Cloud Code i minikube wszystkie usługi działające w Kubernetes mają tę funkcję ponownego ładowania kodu.

6. Debugowanie aktywnych aplikacji Kubernetes

Udało Ci się uruchomić aplikację, wprowadzić zmianę i wyświetlić uruchomioną 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 skoncentrujemy się na sekcji kodu licznika stron.

  1. W edytorze Cloud Shell otwórz plik main.go
  2. Ustaw punkt przerwania w aplikacji, klikając lewy numer wiersza 82 (if err != nil {)
  3. W niebieskim panelu u dołu edytora Cloud Shell wybierz 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żna uzyskać dostęp do stanu w pamięci aplikacji, a nie tylko do jej działania widocznego dla użytkowników.

  1. Po zakończeniu procesu wdrażania u góry okna pojawi się prośba o potwierdzenie katalogu w kontenerze, w którym aplikacja została wdrożona. f96e9a814edb44f4.png

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

  1. Poczekaj, aż debuger zakończy wdrażanie. Po zakończeniu tego procesu pasek stanu zmieni kolor na pomarańczowy, a na wyniku pojawi się komunikat "Attached debugger to container "sample-app-dev-..." successfully.
  2. W terminalu Cloud Code najedź kursorem na pierwszy adres URL w danych wyjściowych (http://localhost:8081), a następnie w wyświetlonej wskazówce narzędzia wybierz Otwórz podgląd w przeglądarce. Strona nie dokończy się, co jest oczekiwanym rezultatem.
  3. Wróć do IDE, w którym znajduje się debuger. Na karcie pojawi się kod, a w nim wyświetli się stos wywołań oraz zmienne dostępne w danej części kodu. Aby zobaczyć bieżącą wartość zmiennej licznika, możesz rozwinąć sekcję Zmienne – Lokalne.
  4. Aby umożliwić dalsze wczytywanie strony, kliknij przycisk „Dalej”. ikona w oknie debugowania 8f395391c4828528.png
  5. Po zakończeniu debugowania kliknij przycisk Zatrzymaj, aby zakończyć każdy z uruchomionych wątków. 81d142a9e1a2c01b.png