Le serverless permet d’exécuter des applications sans avoir à gérer de serveurs. Le “Function as a Service” ou FaaS est un modèle d’exécution qui consiste à considérer ses applications comme des fonctions dans un environnement serverless, sans se soucier de l’infrastructure sous-jacente.
Les offres managées FaaS font partie des services de base que propose la grande majorité des fournisseurs cloud. D’un fournisseur à un autre, la manière d’utiliser ces services est différente, augmentant le risque de vendor locking.
À travers ce talk, nous verrons ce qu’est le serverless au juste. Comment, grâce à des outils comme OpenFaaS, nous pouvons disposer de sa propre plateforme déployée sur Kubernetes, et ce même sur son poste de développement. Nous découvrirons aussi, comment les équipes de développement gagnent en autonomie grâce à ce modèle, en reproduisant des environnements ISO dès le poste de développement et en ayant accès aux mêmes fonctionnalités qu’en production.
v3-Serverless - Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes.pdf
1. Serverless
6 février 2024
Éviter le vendor locking en construisant sa propre
plateforme FaaS avec OpenFaaS et Kubernetes
Katia HIMEUR
2. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Qui suis-je ?
2
3. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Qui suis-je ?
• 🪪 Katia HIMEUR
• ☁ CTO & Cofondatrice de Cockpit io
• 🏢 Conseil, Build et Formations autour des sujets Cloud et DevOps
• 💻 Informaticienne
• 👩💻 Consultante SRE/Cloud/DevOps depuis plusieurs années
❤ #Cloud #DevOps #Containers #Serverless #GitOps #IaC #CICD ❤
3
4. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Qu’est-ce que le serverless ?
4
5. Qu’est-ce que le Serverless ?
• Informatique sans serveur (🇫🇷)
• Paradigme du Cloud
Computing
• Serveurs managés par les
fournisseurs de services
5
Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
6. Qu’est-ce que le Serverless ?
• Informatique sans serveur (🇫🇷)
• Paradigme du Cloud
Computing
• Serveurs managés par les
fournisseurs de services
6
Mais il y a des
serveurs !
Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes
Katia HIMEUR
7. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
CNCF Serverless Landscape
7
8. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Exemples de services
serverless
8
9. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Compute serverless
9
AWS Fargate Azure Container Apps Google App Engine
Scaleway Serverless
Containers
10. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Bases de données serverless
10
Amazon DynamoDB Azure SQL Database
11. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
API Gateways serverless
11
Amazon API Gateway Google API Gateway
12. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Functions as a Service
12
AWS Lambda Azure Functions
Google Cloud
Functions
Scaleway Serverless
Functions
13. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Function as a service
(FaaS)
13
14. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Function as a Service (FaaS)
• Appelée par abus de langage : Serverless
• Permet de considérer une application comme un ensemble de
fonctions
• Fonction exécutée uniquement lorsqu’elle est invoquée
• Autre nom : Event-driven computing
14
15. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Comment fonctionne le
FaaS ?
15
16. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Comment fonctionne le FaaS ?
16
17. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Avantages du serverless
17
18. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Avantages du serverless
• Scalabilité
• Haute disponibilité
• Autonomie pour les équipes de développement
• Réduction
• Coûts
• Capacités inutilisées (Idle capacity)
• Temps de maintenance
• Time to market
18
19. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Le FaaS est suffisant pour
une application en prod ?
19
21. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
De quoi avons-nous besoin ?
21
22. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
De quoi avons-nous besoin ?
FaaS
API
Gateway
Database
Developer
tools
Stockage Message
Queuing
Monitoring
22
23. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Pourquoi construire sa propre
plateforme serverless ?
23
24. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Pourquoi construire sa propre plateforme serverless ?
• Vendor locking
• Multi-cloud
• Environnement de développement
• Infrastructure on premise
24
25. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
De quoi avons-nous besoin ?
25
26. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
De quoi avons-nous besoin ?
26
27. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Pourquoi Kubernetes ?
27
28. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Pourquoi Kubernetes ?
• Standard éprouvé du marché
• Extensible
• Écosystème riche et dynamique
• Offres managées ou on premise
• Fonctionnalités intéressantes : Autoscaling, networking…
28
29. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Pourquoi OpenFaas ?
29
30. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Pourquoi OpenFaaS ?
• Plateforme open source & cloud agnostic
• Déployable sur Kubernetes ou en Single Host
• Adapté pour les fonctions, les microservices ou les monolithes
• Prise en main rapide
• Excellente expérience pour les équipes de développement
30
31. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Stack OpenFaas
31
32. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Stack OpenFaaS
32
OpenFaaS Gateway
API REST pour
manager les
fonctions, les
métriques et le
scaling
NATS
Système de
communication,
utilisé pour le
queuing et
l’exécution
asynchrone
Prometheus
Pour les métriques
et l’autoscaling
33. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Ce qu’il faut savoir
d’OpenFaaS
33
34. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Ce qu’il faut savoir d’OpenFaaS
• Unité d’exécution d’une fonction : Le pod
• Chaque fonction est transformée en un artefact immuable : Une
image de conteneur
• Une fonction est déployable via : REST API, UI ou CLI
• La gateway est accessible via REST API, UI ou CLI
• Le scaling est porté par Kubernetes
34
35. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Autoscaling
35
36. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Autoscaling
AlertManager based autoscaling
• OpenFaaS community Edition
• Règle d’autoscaling appliquée à toutes les fonctions
• AlertManager se base sur le nombre de requêtes par seconde
• Prometheus fournit les métriques
36
37. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Autoscaling
OpenFaaS Pro Autoscaler
• Zero-scale
• 3 modes de scaling
• Basé sur la capacité : Les connexions en cours simmultanées
• RPS : Nombre de requêtes complétées en une seconde
• CPU
37
38. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Triggers
38
40. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Watchdog
40
41. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes
Katia HIMEUR
Watchdog
• Démarre et monitore les fonctions OpenFaaS
• Transforme les binaires en fonctions
• Devient l’init process
• Dispose d’un serveur HTTP embarqué
41
42. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Place à la démonstration
42
43. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Mon environnement local
Cluster
K8S
Docker
43
faas-cli Arkade
44. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Workflow OpenFaas
44
45. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Workflow OpenFaaS
45
46. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Quelques cas d’usage
46
47. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Quelques cas d’usage
• Applications “Serverless”
• Cron jobs
• Invocation des fonctions par RabbitMQ
• Invocation des fonctions via des événements Minio (S3 Object storage)
47
48. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Conclusion
48
49. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Conclusion
• Les o
ff
res managées sont pertinentes dans beaucoup de contextes
• Construire sa propre plateforme peut être nécessaire
• OpenFaaS est une bonne option “clé en main”
• OpenFaaS est plus facile à appréhender que Knative
49
50. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Pour aller plus loin
50
51. Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes Katia HIMEUR
Pour aller plus loin
• Workshop OpenFaaS : https://gitlab.com/cockpit-io-public/openfaas-
workshop
51