Formation > Blog > DevOps > Comment gérer le serverless avec Kubernetes ?

Le Serverless dans Kubernetes c’est très simple, en tout cas sur le papier. C’est une architecture logicielle dans laquelle les développeurs (donc vous) exécutent des applications. La subtilité vient du fait que les ressources de calculs ne sont utilisées uniquement en cas d’événement. Dans cet article, nous allons voir en détail comment tout cela fonctionne.

L’équipe Ambient IT

Serverless vs architectures traditionnelles

Vous connaissez le fonctionnement classique des architectures traditionnelles : les ressources sont tout le temps fracturées entre les différents éléments présents.

Le Serverless est une petite révolution dans son genre, car il permet de ne payer que pour le temps d’exécution réel du code.

Je ne vous fais pas de dessin, c’est une approche qui vous permet une grande élasticité et une gestion des changements de charge sans égale. Si vous devez gérer des applications avec des modèles de trafic irrégulier, c’est la meilleure solution.

Pourquoi Kubernetes et le Serverless ?

Pas besoin de vous faire de rappel sur Kubernetes, c’est une plateforme d’orchestration de conteneurs pour automatiser vos déploiements, blablabla…

Ce qui est vraiment intéressant de savoir, c’est que vous pouvez parfaitement intégrer du serverless dans Kubernetes pour bénéficier d’une architecture encore plus flexible et économique.

Avantages et inconvénients du Serverless dans Kubernetes ?

Choisir le serverless sous Kubernetes c’est d’abord réduire drastiquement les coûts d’infrastructure. Les ressources sont utilisées de façon optimale.

Par contre, il faut garder en tête que le temps de réponse initial peut alors devenir plus long lors du cold start.

Quels sont les modèles Serverless pris en charge?

Kubernetes (avec les bons outils, nous aborderons le sujet dans un instant), peut potentiellement prendre en charge un large choix de modèles d’exécution, parmi lesquels :

  • Les fonctions déclenchées par des événements HTTP
  • Les messages de file d’attente
  • Les événements temporisés

Comment Kubernetes supporte-t-il le Serverless?

Si K8s ne propose pas nativement de fonctions serverless, il existe plein d’outils et autres frameworks pour le faire : Knative, OpenFaas ou Kubeless répondront à tous vos besoins en la matière.

Outils et Frameworks Serverless pour Kubernetes

Comme vu plus haut, il existe une variété d’outils disponible, mais nous allons nous concentrer sur les 3 cités dans le paragraphe précédent.

Comment installer et configurer Kubeless?

Kubeless est le framework le plus populaire pour les fonctions serverless sur Kubernetes.

Il s’installe et se configure très simplement via des commandes kubectl et des fichiers YAML spécifiques.

Comment déployer avec OpenFaaS?

Autre outil très populaire, Openfaas facilite largement le déploiement des fonctions serverless.

Pour cela, il utilise des modèles de templates et fournit une interface utilisateur maison pour vous aider. Il comprend aussi un système de mise à l’échelle automatique.

Question gestion des ressources, c’est sans aucun doute le plus efficace des outils sur le marché.

Qu’est-ce que Knative?

Knative est un ensemble de composants plus qu’une véritable application. Tous sont dédiés à l’ajout de capacités serverless pour Kubernetes.

Du déploiement à la mise à l’échelle automatique en passant par la gestion des événements, il y a tout ce que vous voulez chez Knative.

Très pratique, il fournit des mécanismes de mise à jour des fonctions serverless en continu.

Déploiement et Maintenance Serverless

Pour bien déployer vos applications serverless, il y a trois règles d’or : légères, stateless et idempotentes.

Si vous respectez bien ces 3 critères et que vous gérez correctement vos dépendances et vos configurations, vous devriez être hors de danger pour vos configurations.

Comment gérer les dépendances des fonctions ?

Pour les dépendances, vous n’avez qu’une chose à garder en tête : garantir la portabilité et la reproductibilité des fonctions serverless.

Vous aurez donc besoin d’outils essentiels comme les gestionnaires de packages.

Stratégies de déploiement recommandées

Il existe de nombreuses stratégies de déploiement serverless dans Kubernetes. Même si elles sont (presque) toutes valables, je vous conseille celles-ci :

  • Le déploiement progressif
  • Le déploiement bleu/vert
  • Les tests en production (canary)

D’expérience, elles sont les plus indiquées pour garantir la fiabilité du service.

Intégration et livraison continue (CI/CD)

Intégration continue pour les fonctions Serverless

L’intégration continue (CI pour les intimes) est la clé pour automatiser les tests et le déploiement des fonctions Serverless.

Il vous faudra encore d’autres outils tels que Jenkins, GitLab CI ou GitHub Actions. Ils s’intègrent tous parfaitement à Kubernetes.

Comment mettre en place la livraison continue (CD)?

Autre facette de la pièce qu’est le concept CI/CD, la livraison continue (CD) implique que les fonctions serverless sont déployées automatiquement après chaque modification.

Encore une fois, il vous faut des outils adaptés : ArgoCD ou Flux sont les références dans ce domaine.

Conclusion

Pour faire simple, une bonne gestion du serverless sur Kubernetes se résume à

  • Une compréhension approfondie des outils disponibles
  • Une mise en œuvre des meilleures pratiques de sécurité
  • Une mise en œuvre du CI/CD
  • Une gestion efficace des coûts

Le serverless dans Kubernetes est encore en pleine évolution et l’adoption croissante de ces méthodes devrait conduire, logiquement, à leur amélioration. Quoi qu’il en soit, ces technologies ont un bel avenir alors n’hésitez-pas à les adopter au plus vite !

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp