Serverless Computing : la flexibilité du Cloud Computing?

Alors que l'infrastructure IaaS et les logiciels hébergés SaaS jouaient un rôle important au début, il s'agit désormais d'une plate-forme PaaS en tant que service. Les architectures sans serveur pilotées par les événements sont une variété particulière de microservices qui sont actuellement très populaires. Forts des microservices, certains fournisseurs de cloud computing offrent la possibilité d'appeler de petites fonctions basées sur des événements et de les facturer au besoin. Ils sont également connus sous le nom de fonction FaaS en tant que service.

Ce système est souvent basé sur des solutions Container-as-a-CaaS.

Cela consolidera l'aversion avec toutes ses dépendances dans un seul fichier. Les dépendances à l'environnement sont minimisées. Parce qu'aucun serveur n'est plus facile à gérer qu'aucun serveur. 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 composants spécialisés. Cette approche est particulièrement adaptée aux installations cloud ou aux conteneurs Docker.

Pour créer des services aussi légers et purement techniques, un langage de programmation avec des temps de démarrage courts est nécessaire. En outre, l'architecture globale du système doit également être repensée. Étant donné que ces services peuvent être distribués en nombre illimité et exécutés en mode sans état, un processus de déploiement automatisé est requis, ainsi que de nombreux principes et modèles DevOps familiers. Ceux-ci incluent les douze facteurs d'un service opérationnel configurable, contrôlable et indépendant, ainsi que des modèles pour mettre en œuvre les 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 messagerie.

Il n'est pas surprenant que les offres des principaux fournisseurs de cloud computing comptent parmi les plus puissants représentants de l'informatique sans serveur. Exemples : Amazon Lambda, licence Microsoft Azure Functions MIT, Google Functions ASL et IBM OpenWhisk ASL, ainsi que http://incubator.apache.org/projects/openwhisk. html.

Amazon propose l'offre la plus ancienne et donc la plus avancée et la plus intégrée. Ils sont basés sur le modèle d'actionneur connu depuis les années 1970. La communication entre les actionneurs, appelée Lambdas sur Amazon, se fait de manière asynchrone via des événements de message, 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 que vous pouvez spécifier lors de la configuration de vos fonctions Lambda. Étant donné que 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 temps d'exécution des Lambdas sont volontairement 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. Par conséquent, les Lambda ne sont pas la réponse à toutes les demandes. Le modèle de facturation est particulièrement intéressant, puisque l'appel API est basé ici et non sur le temps de calcul ou la mémoire. 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 la journalisation de base et la mise à l'échelle automatique des services Lambda ne suffisent généralement pas. Il existe déjà des frameworks comme Serverless ou des intégrations dans des environnements de développement populaires comme Eclipse qui aident à surmonter les premiers obstacles à une utilisation productive de Lambdas.

Si vous ne souhaitez pas vous fier entièrement aux services propriétaires d'un fournisseur de cloud, vous pouvez également utiliser la variante IBM OpenWhisk disponible localement sous la licence Apache, du moins chez IBM. Cependant, si vous souhaitez tirer le meilleur parti d'un environnement cloud, vous êtes généralement lié à un seul fournisseur.

L'ère des monolithes et des grands intergiciels, tels que les portails ou les serveurs d'applications, touche à sa fin.

Les vendeurs de ces produits plus traditionnels n'étaient pas les seuls à le remarquer douloureusement. Les systèmes établis avec eux ont également déjà atteint leurs limites naturelles. Pour les besoins actuels des applications mobiles, mais aussi des applications IoT, les applications de microservice rendues possibles grâce au FaaS sont la bonne réponse.

Seuls ceux qui ont déjà fait les premiers pas avec DevOps et le Cloud Computing peuvent franchir la prochaine étape de l'évolution. Comme toujours, cela offre non seulement de nouvelles opportunités, mais aussi des défis. Cependant, les offres de cloud computing en évolution rapide offrent un support de plus en plus important et permettent la mise en œuvre de bonnes pratiques, qui peuvent facilement être utilisées dans vos propres projets.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *