Les applications App Engine sont faciles à créer et à gérer. Grâce à leur caractère évolutif, elles s'adaptent en fonction de vos besoins en termes de trafic et de stockage des données. Avec App Engine, vous n'avez aucun serveur à gérer. Il vous suffit d'importer votre application : vous êtes alors prêt à démarrer.
Les applications App Engine s'adaptent automatiquement au trafic entrant. L'équilibrage de charge, les microservices, les autorisations, les bases de données SQL et NoSQL, la mise en cache en mémoire, la répartition du trafic, la journalisation, la recherche, la gestion des versions, les déploiements et les rollbacks, ainsi que les analyses de sécurité sont tous compatibles de manière native et hautement personnalisables.
L'environnement standard App Engine et l'environnement flexible App Engine sont compatibles avec de nombreux langages de programmation, dont Java, Python, PHP, NodeJS et Go. Ces deux environnements offrent aux développeurs une flexibilité maximale quant au comportement de leur application. Chaque environnement présente certains avantages. Pour en savoir plus, consultez Choisir un environnement App Engine.
Vous apprendrez à déployer une application Spring Boot dans l'environnement standard App Engine. L'environnement standard passe à zéro instance lorsqu'il n'est pas utilisé et augmente automatiquement la capacité.
Prérequis
- Connaissances du langage et des outils de programmation Java
- Connaissance des éditeurs de texte Linux standards tels que Vim, Emacs et nano
Objectifs de l'atelier
- Créer une application Spring Boot Java sur App Engine
Prérequis
- Un projet Google Cloud
- Un navigateur, tel que Google Chrome
Configuration de l'environnement au rythme de chacun
- Connectez-vous à la console Cloud, puis créez un projet ou réutilisez un projet existant. (Si vous n'avez pas encore de compte Gmail ou G Suite, vous devez en créer un.)
Mémorisez l'ID du projet. Il s'agit d'un nom unique permettant de différencier chaque projet Google Cloud (le nom ci-dessus est déjà pris ; vous devez en trouver un autre). Il sera désigné par le nom PROJECT_ID
tout au long de cet atelier de programmation.
- Vous devez ensuite activer la facturation dans la console Cloud pour pouvoir utiliser les ressources Google Cloud.
Suivre cet atelier de programmation ne devrait pas vous coûter plus d'un euro. Cependant, cela peut s'avérer plus coûteux si vous décidez d'utiliser davantage de ressources ou si vous ne les interrompez pas.
Les nouveaux utilisateurs de Google Cloud peuvent s'inscrire à un essai sans frais pour bénéficier d'un crédit de 300$valable pour un essai sans frais.
Cloud Shell
Vous allez utiliser Cloud Shell, un environnement de ligne de commande exécuté dans Google Cloud.
Activer Cloud Shell
- Dans la console Cloud, cliquez sur Activer Cloud Shell
.
Si vous n'avez encore jamais démarré Cloud Shell, un écran intermédiaire s'affiche en dessous de la ligne de séparation pour décrire de quoi il s'agit. Si tel est le cas, cliquez sur Continuer (cet écran ne s'affiche qu'une seule fois). Voici à quoi il ressemble :
Le provisionnement et la connexion à Cloud Shell ne devraient pas prendre plus de quelques minutes.
Cette machine virtuelle contient tous les outils de développement nécessaires. Elle intègre un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances réseau et l'authentification. Vous pouvez réaliser une grande partie, voire la totalité, des activités de cet atelier dans un simple navigateur ou sur votre Chromebook.
Une fois connecté à Cloud Shell, vous êtes en principe authentifié et le projet est défini avec votre ID de projet.
- Exécutez la commande suivante dans Cloud Shell pour vérifier que vous êtes authentifié :
gcloud auth list
Résultat de la commande
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Résultat de la commande
[core] project = <PROJECT_ID>
Si vous obtenez un résultat différent, exécutez cette commande :
gcloud config set project <PROJECT_ID>
Résultat de la commande
Updated property [core/project].
Une fois Cloud Shell lancé, vous pouvez utiliser la ligne de commande pour générer une application Spring Boot avec Spring Initializr.
$ curl https://start.spring.io/starter.tgz \ -d bootVersion=2.1.8.RELEASE \ -d dependencies=web \ -d baseDir=gae-standard-example | tar -xzvf - $ cd gae-standard-example
Il existe deux façons de déployer une application serveur Java : en utilisant le plug-in Maven App Engine ou le plug-in Gradle App Engine, ou en déployant le répertoire de packages war
. Vous allez utiliser le plug-in Maven App Engine pour déployer l'application.
Ajouter le plug-in Maven App Engine
Mettez à jour pom.xml
pour inclure un plug-in Google Cloud qui simplifie le processus de déploiement. Vous pouvez utiliser Vim, nano ou Emacs pour modifier le fichier.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
...
<build>
<plugins>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.1.0</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
- Pour déployer l'application dans l'environnement standard App Engine, vous devez créer un fichier descripteur
src/main/appengine/app.yaml
.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- Modifiez le fichier
src/main/appengine/app.yaml
et ajoutez-y le contenu suivant :
src/main/appengine/app.yaml
runtime: java11
instance_class: F4
Ajoutez un contrôleur qui renvoie "hello world!"
dans DemoApplication.java
.
src/main/java/com/example/demo/DemoApplication.java
package com.example.demo;
...
// Add imports
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/")
public String hello() {
return "hello world!";
}
}
- Vous pouvez démarrer l'application Spring Boot avec le plug-in Spring Boot :
$ ./mvnw -DskipTests spring-boot:run
- Une fois l'application démarrée, cliquez sur Aperçu sur le Web
dans la barre d'outils Cloud Shell, puis sélectionnez Prévisualiser sur le port 8080.
Un onglet s'ouvre dans votre navigateur et se connecte au serveur que vous avez démarré.
- Commencez par initialiser le projet pour pouvoir exécuter des applications App Engine. Initialisez également le projet pour qu'il s'exécute dans la région du centre des États-Unis.
$ gcloud app create --region us-central You are creating an app for project [...]. WARNING: Creating an App Engine application for a project is irreversible and the region cannot be changed. More information about regions is at https://cloud.google.com/appengine/docs/locations
- Ensuite, déployez votre application dans l'environnement standard App Engine en exécutant
mvn appengine:deploy
.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- Une fois l'application déployée, vous pouvez y accéder en ouvrant http://<project-id>.appspot.com dans votre navigateur Web ou en utilisant la commande suivante dans Cloud Shell :
$ gcloud app browse ... [It may print out the URL for your app]
Vous avez appris à écrire votre première application Web App Engine.