L’informatique sans serveur : la flexibilité du cloud computing ?

Alors que l'infrastructure IaaS et les logiciels hébergés SaaS ont joué un rôle majeur au début, il s'agit maintenant de PaaS Plateforme en tant que service. Les architectures sans serveur basées sur des événements constituent une variété spéciale de micro-services actuellement très populaires. Encouragés par les micro-services, certains fournisseurs de cloud computing offrent la possibilité d'appeler de petites fonctions en fonction des événements et de les facturer selon la demande. Ils sont également connus sous le nom de FaaS Fonction en tant que service.

Ce système est souvent basé sur des solutions de type Conteneur en tant que service CaaS.

Cela permettra de regrouper l'aversion avec toutes ses dépendances dans un seul fichier. Les dépendances à l'égard de l'environnement sont réduites au minimum. Parce qu'aucun serveur n'est plus facile à gérer que pas de serveur du tout. Qui a besoin de serveurs quand il y a des services ? Les tâches transversales telles que la sécurité ou la surveillance sont mises en œuvre par des composantes spécialisées. Cette approche est particulièrement adaptée aux installations en nuage ou aux conteneurs de docker. Afin de créer des services aussi légers, purement axés sur les aspects techniques, il faut un langage de programmation avec des temps de démarrage courts. En outre, l'architecture du système global doit également être repensée. Comme ces services peuvent être distribués en nombre illimité et fonctionner en mode apatride, un processus de déploiement automatisé est nécessaire, ainsi que de nombreux principes et modèles familiers de DevOps. Il s'agit notamment des douze facteurs d'un service configurable, contrôlable et fonctionnant de manière indépendante, ainsi que des modèles de mise en œuvre des quatre principes d'une architecture réactive.

Les systèmes réactifs peuvent répondre aux critères de réactivité, de résilience, d'élasticité et de messages.

Il n'est pas surprenant que les offres des principaux fournisseurs de cloud computing soient parmi les plus importants représentants de l'informatique sans serveur. On peut citer à titre d'exemple : Amazon Lambda, Microsoft Azure Functions licence MIT, Google Functions ASL et IBM OpenWhisk ASL ainsi que http://incubator.apache.org/projects/openwhisk.html. L'offre la plus ancienne, et donc la plus avancée et la plus intégrée, est proposée par Amazon. Ils sont basés sur le modèle d'actionneur connu depuis les années 70. La communication entre les actionneurs, appelés Lambdas en Amazonie, se fait de manière asynchrone par le biais d'événements de messages, pour lesquels ils peuvent s'enregistrer.

Les lambdas peuvent être créés dans différents langages de programmation, JavaScript avec node.js, Java, ou Python.

Pour de nombreux services AWS à intégrer, il existe des événements prêts à l'emploi qui peuvent être spécifiés lors de la configuration de vos fonctions Lambda. Comme de nombreux événements sont également disponibles sous forme de flux, des applications en temps réel peuvent être créées avec eux. D'autant plus que les ressources et les délais d'exécution des Lambdas sont délibérément limités, ce fait doit être pris en compte dès le début de la mise en œuvre et également testé dans la pratique. C'est pourquoi les Lambdas ne sont pas la réponse à toutes les demandes. Le modèle de facturation est particulièrement intéressant, puisque l'appel API et non le temps de calcul ou la mémoire sont ici la base. Pour la mise en œuvre d'exigences non-fonctionnelles, telles que la mise à l'échelle, la sécurité, la gestion du cycle de vie, la mise en cache ou la surveillance, on dépend d'autres services AWS, car les services de base de journalisation et de mise à l'échelle automatique de Lambda ne sont généralement pas suffisants pour cela. Il existe déjà des cadres comme Serverless ou des intégrations dans des environnements de développement populaires comme Eclipse qui aident à surmonter les premiers obstacles à l'utilisation productive de Lambdas. Si vous ne voulez pas dépendre entièrement des services propriétaires d'un fournisseur de cloud, vous pouvez également utiliser la variante IBM OpenWhisk disponible sous la licence Apache en local, du moins avec IBM. Toutefois, si vous souhaitez profiter pleinement d'un environnement en nuage, vous êtes généralement lié à un seul fournisseur.

L'époque des monolithes et des grands middleware comme les serveurs d'applications ou de portails touche à sa fin.

Les fournisseurs de ces produits plus traditionnels n'ont pas été les seuls à devoir le remarquer douloureusement. Les systèmes mis en place avec eux ont également déjà atteint leurs limites naturelles. Pour les besoins d'aujourd'hui à travers les applications mobiles, mais aussi les applications IdO, les applications de micro-services telles qu'elles sont possibles avec FaaS sont la bonne réponse. Seuls ceux qui ont déjà fait les premiers pas avec DevOps et le Cloud Computing peuvent passer à l'étape suivante de l'évolution. Comme toujours, cela offre non seulement de nouvelles opportunités, mais aussi des défis. Toutefois, les offres de cloud computing, qui évoluent rapidement, offrent un soutien toujours plus performant et permettent de mettre en œuvre les meilleures pratiques, qui peuvent être facilement utilisées dans vos propres projets.