Dans cet article nous allons exploiter une application NodeJS que nous avons déjà préalablement construite et déployée sur un VPS. Cette webapp est basée sur NodeJS et elle a été testée sur un VPS linux. Vous trouverez le repository de celle-ci ici :

Ici le but va être non plus de déployer sur un VPS, mais de "builder" avec Docker notre application localement, puis de la "pusher" vers GCR (Google Container Repository), c'est à dire le "Docker Hub" de Google mais privé (dépend de votre compte uniquement). Vous avez ainsi pleine maitrise de son contenu, tout en ayant la possibilité de partager le code avec des collègues développeurs, rendre celui-ci public etc...et surtout le kiff ultime, il vous est possible de déployer l'application sur GKE, alias Kubernetes version Google Cloud en quelques commandes.

Hypothèses

  • Vous avez déjà une application NodeJS
  • Vous utilisez GCP Cloud Shell ou avez installé gcloud, kubectl et docker sur votre shell local.
  • Vous avez un projet GCP avec l'API de Kubernetes Engine activée
Schéma de l'architecture du projet.

Si l'on reprends le schéma ci-dessus, on constate que l'architecture est relativement simple, on part de notre shell local et on "build" puis on "push" vers GCR, et une fois que le shell local demande/invoque le repository déposé sur GCR, il déploie sur un cluster que vous aurez évidemment crée sur GKE.

Allez on y va en étapes...

Configurez votre projet

Tout d’abord, nous devons configurer certains paramètres pour votre projet:  

gcloud config set project My Project 27055
gcloud config set compute/zone us-west1-a

Ceci définit le projet actuel sur votre projet (dans ce cas, le mien est My Project 27055), puis il définit la zone de calcul par défaut sur us-west1-a