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

NomSignification
InvocationUne seule exécution de la fonction
DurationTemps de l’éxécution du code, définit le prix à payer
Cold startLatence 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 limitNombre d’instances s’executant en parrallèle
TimeoutLimite de temps d’execution, quand elle est atteinte le cloud provider tue le process