Définition
Une architecture serverless est une architecture proposée par les cloud provider. Ce type d’architecture pay as you go ne nécessite pas de se soucier de divers problématiques liées à la gestion de serveur tel que la configuration, la maintenance, le scaling etc.
Quand on execute des processus dans un environnement serverless on part du principe qu’il ne sera disponible que pour une seule invocation. On va donc faire des traitements courts et garder les résultats dans une base de données externe.

Avantages et inconvénients
Ce genre d’architecture permet de réduire les coûts et d’augmenter la scalabilité et la productivité, cependant elle apporte évidemment d’autres challenges comme la gestion de la sécurité, la perte de contrôle sur la stack sous-jacente, la législation, la performance etc..
DANGER
Faire le choix d’une architecture serverless nous bloque chez un cloud provider (Vendor Lock-in) donc il faut y réfléchir en amont
NOTE
Il est possible de mixer serverless et machines virtuelles, en effet les machines virtuelles s’avèrent plus appropriées pour les tâches continues.
Il est donc possible que 80% des workloads se fassent sur des achines virtuelles et que du serverless soit utilisé de temps en temps pour certains traitements.
Concepts importants
| Nom | Signification |
|---|---|
| Invocation | Une seule exécution de la fonction |
| Duration | Temps de l’éxécution du code, définit le prix à payer |
| Cold start | Latence produite quand sa fonction est exécutée après un long délai, le délai est lié au fait qu’il faut démarrer un nouvel environnement |
| Concurrency limit | Nombre d’instances s’executant en parrallèle |
| Timeout | Limite de temps d’execution, quand elle est atteinte le cloud provider tue le process |