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

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 :

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

accompagné du fichier cloud-init :

Les différents Scale Sets sont disponibles :



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 :

accompagné de son volume pour le runtime Docker :


Je configure le serveur Rancher :



pour créer les quatre clusters Kubernetes :






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

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




Mes quatre clusters sont actifs :


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




Dans Outscale, j’en profite pour déployer un Docker Registry Privé avec Harbor :

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

suivi de son installation via le fichier de configuration harbor.yml
$ tar xvf harbor-online-installer-<version>.tgz$ sudo ./install.sh --with-clair

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 :

dont on on trouve le fonctionnement détaillé ici :
et en démo ici :
Il est présent dans un dépôt scanné avec Clair :


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


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


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

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 :



Ce dernier est accessible :



avec ces performances correctes :

Le tout est observable depuis Grafana via le serveur Rancher :



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

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



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


selon ce principe :

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

A suivre !