Serverless: Publier ses Progressive Web Apps avec les Azure Functions Proxies …

Image for post
Image for post

Pour cette expérience, je vais lancer le déploiement de plusieurs clusters Kubernetes dans plusieurs régions du monde via Azure VMSS et une instance Rancher Server dans Outscale selon ce schéma :

Image for post
Image for post

Un exemple d’une série de scripts pour lancer la création de Scale Sets sans Azure dans ces différentes régions :

Image for post
Image for post

accompagné du fichier cloud-init :

Image for post
Image for post

Les différents Scale Sets sont disponibles :

Image for post
Image for post
Image for post
Image for post

J’ai lancé auparavant une instance dans Outscale avec un serveur Rancher qui va me servir au déploiement des différents clusters Kubernetes au travers de ces Scale Sets dans Azure :

Image for post
Image for post

accompagné de son volume pour le runtime Docker :

Image for post
Image for post
Image for post
Image for post

Je configure le serveur Rancher :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

pour créer les quatre clusters Kubernetes :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Pour simplifier l’accès à ces instances, ces dernières se sont jointes à un réseau privé dans ZeroTier :

Image for post
Image for post

Conjointement, j’ai lancé ces quatres séries de scripts pour l’installation de cs clusters sur les Scale Sets dans Azure :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Mes quatre clusters sont actifs :

Image for post
Image for post
Image for post
Image for post

avec le monitoring intégré depuis le tableau de bord du serveur Rancher dans Outscale :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

L’installation de ce Docker Registry passe par la récupération d’un binaire d’installation dans Github :

Image for post
Image for post

suivi de son installation via le fichier de configuration harbor.yml

$ tar xvf harbor-online-installer-<version>.tgz$ sudo ./install.sh --with-clair
Image for post
Image for post

Dans ce Docker Registry, j’ai publié l’image Docker d’un Chatbot pour FranceConnect Agent sous la forme d’un Progressive Web App avec ce simple Dockerfile :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Je n’ai plus qu’à déclarer ce Docker Registry dans tous les clusters déployés avec Rancher :

Image for post
Image for post
Image for post
Image for post

Je procède au déploiement du chatbot dans chacun des clusters via ce Docker Registry privé :

Image for post
Image for post
Image for post
Image for post

Déploiement d’un chat sous la forme d’un Progressive Web App dans le premier cluster :

Image for post
Image for post

Je dois m’assurer d’une liaison SSL pour l’accès à ce chatbot sous la forme d’un Progressive Web App et il est possible d’utiliser Cert Manager (préalablement déployé depuis le catalogue de charts) dans Rancher en lien avec l’Ingress Controller :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Ce dernier est accessible :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

avec ces performances correctes :

Image for post
Image for post

Le tout est observable depuis Grafana via le serveur Rancher :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Mais pour simplifier cet accès en HTTPS , je peux utiliser Azure functions Proxies :

Image for post
Image for post

Je créé donc ces fonctions pour chacun des chatbots déployés dans les différents clusters :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

J’ai donc un seul Endpoint global qui pointe vers ces différents chatbots :

Image for post
Image for post
Image for post
Image for post

selon ce principe :

Image for post
Image for post

et ces métriques à chaque exécution ce ces fonctions :

Image for post
Image for post

A suivre !

Image for post
Image for post

Above the clouds, the sky is always blue ...

Get the Medium app