w , ,

FajneFajne Dobre!Dobre!

Uruchomienie aplikacji Spring Boot w chmurze w 4 krokach

Spring Boot i Google App Engine

Google Cloud Platform to jedna z najbardziej znanych platform chmurowych. Posiada ona świetne narzędzia, które ułatwiają wdrożenie i uruchomienie aplikacji napisanej w Spring Boot. Zresztą nie tylko 😉 Jednak wsparcie do Spring jest świetnie przygotowane, a dokumentacja i commmunity są bardzo pomocne.

W tym artykule przedstawię Ci sposób wdrożenia i uruchomienia aplikacji w Google App Engine, czyli praformy developerskiej hostującej aplikacje internetowe. Obsługuje ona wiele języków takich jak Python, Java, JS, PHP czy Go.

App Engine jest tylko z jedną platform, którą można wykorzystać obok bardziej zaawansowanych – Kubernetes Engine czy Compute Engine.

1. Zakładanie projektu w GCP

Gogole Cloud Platform nowym użytkownikom dostarcza $300 na sprawdzenie ich usług przez 12 miesięcy. Wymagana jest jednak konieczność podpięcia karty płatniczej (Prepaidowe takie jak Revolut nie działają – sprawdzałem 😅).

Kiedy utworzymy konto w panelu GCP zakładamy nowy projekt.

Google Cloud Platform - ekran zakładania nowego projektu.
Google Cloud Platform – ekran zakładania nowego projektu.

Utworzony projekt należy znacjonalizować. Wcześniej GCP robił to automatycznie, natomiast teraz należy przejść do Google Cloud Shell:

Google Cloud Shell
Google Cloud Shell

A następnie wykonujemy polecenie:

gcloud app create

W kreatorze zostaniemy zapytani o region w którym chcemy, aby była hostowana aplikacja. Polecam wybór europejskiego – chyba, że odbiorców aplikacji mamy w innej lokalizacji.

2. Uwierzytelenie w ramach GCP

Aby wdrożyć aplikacje na Gogole App Engine z poziomu dekstopu, musimy uwierzytelnić się w usłudze GCP. Gogole umożliwia to z wykorzystaniem OAuth2.

Cały proces jest bardzo prosty – wystarczy pobrać i zainstalować Google Cloud SDK Shell, a po uruchomieniu wykonać polecenie:

gcloud auth login

następnie podając konto w ramach którego chcemy się uwierzytelnić:

Uwierzytelnienie w usłudze Gogole Cloud Platform
Uwierzytelnienie w usłudze Gogole Cloud Platform

Teraz na naszym komputerze możemy swobodnie wykonywać autoryzowane operacje w ramach GCP.

Przy okazji podaje kilka przydatnych poleceń do Google Cloud SDK Shell:

  • gcloud auth login – uwierzytelnienie w ramach GCP
  • gcloud auth revoke – wycofanie poświadczeń użytkownika
  • gcloud app deploy <app.jar> – wdrożenie wykonywanego jar’a w ramach GAE
  • gcloud projects list – listowanie dostępnych projektów
  • gcloud config set project <project-name> – wybór projektu

3. Przygotowanie aplikacji w Spring Boot

Od Ciebie zależy co zawierać będzie aplikacja napisana w Spring Boot. Na potrzeby przykładu tworzę prostą metodę webową:

@SpringBootApplication
@RestController
public class SpringbootGcpApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootGcpApplication.class, args);
    }

    @GetMapping
    public String get() {
        return "Witaj w akademiaspring.pl!";
    }
}

Następnie spakuj aplikacje do pliku *.jar

4. Deploy aplikacji

Najprostszym sposobem wdrożenia aplikacji jest przejście do katalogu, gdzie został zbudowany .*jar a następnie wykonanie polecenia

gcloud app deploy app-name.jar
Wdrożenie aplikacji w ramach Google App Engine
Wdrożenie aplikacji w ramach Google App Engine

Rezultat działania możesz podziwiać po przejściu pod adres usługi (możesz go sprawdzić w panelu GCP – zakładka App Engine).

Uruchomienie aplikacji w ramach Google App Engine

5. Bonus – automatyzacja wdrożenia

Aby programista nie musiał za każdy razem korzystać z konsoli, oraz skakać po katalogach można w pliku .pom można zautomatyzować ten proces dodając do sekcji build:

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>appengine-maven-plugin</artifactId>
    <version>2.2.0</version>
    <configuration>
        <deploy.projectId>springboot-gcp-275522</deploy.projectId>
        <deploy.version>springboot-gcp</deploy.version>
    </configuration>
</plugin>

Oczywiście prawidłowo uzupełniając:

  • projectId – zgodny z id projektu (dostępny w panelu GCP)
  • version – zgodny z naszymi upodobaniami 🙂

Następnie po zbudowaniu paczki wystarczy wykonać polecenie, które automatycznie wdroży ją w ramach usługi GAP:

mvn package appengine:deploy

Szkolenie z Angular + Spring Boot + GCP

Jeśli podoba Ci się temat to zapraszam na fragment mojego szkolenia Angular + Spring Boot + GCP.
W szkoleniu krok po kroku pokazuje jak stworzyć aplikacje backendową do korzystania z usług Storage GCP (magazynowanie plików) oraz frontonową, która umożliwia na interakcje z użytkownikiem. Całość uruchamiamy w ramach GCP ☁️

szkolenie z google cloud platform

Czy interesuje Cię tematyka chmury? Jeśli tak to daj znać w komentarzu a takich materiałów będzie więcej 🙂

Napisane przez Przemysław Bykowski

Aktywny programista i energiczny trener. Specjalizuje się w Spring Boot i uczę go w ramach AkademiaSpring.pl. Po godzinach udzielam się na YouTubach. Więcej o mnie.

Dodaj komentarz

szkolenie z mikrousług w spring cloud

Architektura mikroserwisów z wykorzystaniem Spring Cloud [Zapowiedź webinaru]

Docker wykrywanie usług dla kontenerów

Docker – wykrywanie usług poprzez DNS