DEV Community

Karim
Karim

Posted on • Originally published at deep75.Medium on

Serverless : Exécuter ses containers directement comme des fonctions avec Fission et Rancher RKE2 …

Dans des articles précédents, j’avais réalisé un focus sur Fission, une plateforme permettant d’initier des fonctions à courte durée de vie dans n’importe quel langage et permettant de les associer à des requêtes HTTP (ou à d’autres déclencheurs d’événements). Avec Fission on aborde donc le domaine du Serverless Computing , un modèle de conception cloud natif, basé sur une architecture ne nécessitant pas de gestion de serveurs pour créer et exécuter des applications.

Dans la lignée des services Cloud visant à faciliter le recours à des services innovants en limitant les investissements de capital, le serverless est un vrai choix stratégique, avec des enjeux liés à la stratégie fournisseur et au service rendu aux utilisateurs.

On peut donc déployer des fonctions instantanément avec une seule commande. Il n’y a pas de conteneurs à construire, ni de registres Docker à gérer …

Fission

Je pars donc d’un serveur à la demande sur la plateforme Equinix Metal comme base de départ :

Installation de Rancher RKE2 pour initier un cluster Kubernetes sur ce serveur. En rappel, RKE2, également connue sous le nom de RKE Government, est la distribution Kubernetes de nouvelle génération de Rancher.

Il s’agit d’une distribution Kubernetes entièrement conforme qui se concentre sur la sécurité et la conformité au sein du secteur du gouvernement fédéral américain.

RKE2 - Rancher's Next Generation Kubernetes Distribution

et installation du client Kubectl pour interagir avec ce cluster en fonctionnement localement sur ce serveur :

Par la suite, j’installer Nginx en tant qu’Ingress Controller sur ce cluster :

Installation Guide - NGINX Ingress Controller

ainsi que Cert-Manager chargé de la gestion des certificats X.509 pour un cluster Kubernetes :

Il est alors possible d’installer le serveur Rancher 2.6.X sur ce cluster pour pouvoir le manager plus simplement. Pour cela installation de Helm3 :

Installing Helm

Installation du serveur Rancher via Helm …

Install/Upgrade Rancher on a Kubernetes Cluster

Le serveur Rancher est disponible via le domaine Wild Card défini avec l’installation du Chart :

avec des informations de base sur le cluster Kubernetes en exécution :

voire détaillée :

Activation du monitoring du cluster via Prometheus et Grafana dans le Marketplace fourni au sein du serveur Rancher :

Monitoring and Alerting

Je peux donc passer à l’étape suivante correspondante à l’installation de Fission :

Installing Fission

La plateforme Fission est disponible et le client Fission est téléchargé depuis son dépôt sur GitHub :

Lancement à ce niveau d’un container comme une fonction dans Fission :

Running container as functions

Pour que ce container soit accessible depuis Nginx Ingress Controller, je crée la route correspondante :

Exposing Functions With Ingress

Et effectivement, le container qui expose un site web de démo sur le port TCP 80 via Nginx et l’adresse IP publique du serveur physique, est accessible sur

http://136.144.48.141/website :

Autre démonstration via le sempiternel démonstrateur FC :

Naturellement, via Grafana et Prometheus je dispose des infos de monitoring sur l’ensemble de la plateforme installée ici :

Le tout pour une consommation plus que raisonnable sur ce serveur physique …

Il a donc été possible de tenter de mimer des plateformes comme Google Cloud Run via ces outils Open Source sur son propre serveur physique …

D’autres dispositifs d’observabilité sont possibles avec Fission comme Linkerd :

Observability with Linkerd

Tracing with OpenTelemetry

Selon Forrester, le pourcentage de développeurs déclarant que leur organisation utilise des conteneurs est passé de 33 % en 2020 à 42 % en 2021. Dans le même temps, l’utilisation du serverless est passée de 26 % en 2020 à 32 % en 2021.

Les prévisions du Forrester pour 2022...

Selon ses prévisions, en 2022, plus de la moitié des entreprises déclareront avoir adopté des développements « cloud-native ».

Mais pour Forrester, « plus important encore, les entreprises vont bien davantage pratiquer « replatforming » et « refactoring » pour fonder leurs stratégies sur le cloud-native plutôt que de le superposer à leurs plans existants ».

Mais cette utilisation du Serverless ne se fera probablement pas sans containers 😉 …

À suivre !

Discussion (0)