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 :

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 :

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 !