bluebay2014 - Fotolia
Serverless vs microservices : lequel choisir en fonction de votre projet
Le serverless et les microservices peuvent certes fonctionner de pair, mais ils ont leurs propres qualités qui se révèleront en fonction des cas d’usage.
La recherche d'une plus grande agilité, de meilleures performances et d'évolutivité a donné naissance à de nouvelles technologies. Les microservices et le serverless sont de celles-ci. Bien que ces deux technologies partagent certaines caractéristiques - et les développeurs peuvent les utiliser ensemble - il existe toutefois plusieurs différences. Et, parfois, l'un est plus adapté que l'autre pour certaines tâches. Pour savoir lequel utiliser, il convient d’apprendre comment ces deux types d'architecture fonctionnent, se distinguent ou s’opposent.
Les microservices sont les mieux adaptés aux applications complexes et permanentes qui nécessitent d’importantes ressources et une gestion très présente. Il est possible de migrer une application monolithique existante vers les microservices, ce qui facilite le développement modulaire de fonctionnalités et leur déploiement dans le cloud. Les microservices sont également un bon choix si on souhaite créer des sites de commerce électronique. Ils peuvent en effet conserver l'information tout au long d'une transaction et répondre aux besoins d'une clientèle 24 heures sur 24, 7 jours sur 7.
De leur côté, les fonctions serverless ne s'exécutent qu'en cas de besoin. Une fois l'exécution terminée, l'instance de compute qui exécute le code se désactive elle-même. Le serverless s'applique aux applications pilotées par des événements, en particulier si ces événements sont sporadiques et que leur traitement n'exige pas beaucoup de ressources. Le serverless représente un bon choix lorsque les développeurs ont besoin d'un déploiement rapide. Une bonne utilisation peut porter sur une tâche planifiée qui a besoin d'effectuer une certaine agrégation de données et s'exécutera seulement pendant quelques secondes.
En règle générale, il convient de choisir le serverless si vous avez besoin de capacités de dimensionnement automatique et de coûts d'exécution réduits, et les microservices si vous avez besoin de flexibilité et souhaitez migrer une application existante vers une architecture moderne.
Mais il existe aussi d’autres différences.
Gestion des opérations IT
Une DSI est plus susceptible d'être responsable des coûts opérationnels d'une application de microservices - déploiement, configuration, support, maintenance et surveillance - que d'une application serverless. Bien qu'il soit techniquement possible d'utiliser des ressources internes pour le serverless, ce modèle repose le plus souvent sur un fournisseur de cloud qui exécute toutes les tâches de gestion, de planification et de support de l'infrastructure sous-jacente.
Les fonctions
L'architecture serverless s’adosse à des fonctions. Il s’agit d’une procédure nommée qui exécute un service distinct et retourne une valeur à l'application. Typiquement, un microservice est plus grand qu'une fonction serverless. Et, contrairement à une fonction serverless, un microservice peut exécuter plus d'une fonction. En d'autres termes, un microservice peut être équivalent à une ou plusieurs fonctions serverless.
La tarification
Le coût peut être un facteur de différenciation clé entre le serverless et les microservices. Ceci est lié à la différence mentionnée précédemment, à savoir que le serverless ne fonctionne que lorsque l'application doit exécuter une tâche, alors que les microservices fonctionnent en continu. Les services serverless, comme AWS Lambda, fonctionnent selon un modèle de paiement à l'utilisation. Le fournisseur ne facture que pour la période pendant laquelle le serveur exécute la fonction. Bien qu'il soit relativement bon marché de provisionner des microservices sur des containers, vous payez pour que l'instance fonctionne 24/7, même s'il n'y a pas de workload.
Est-ce que le serverless et les microservices peuvent fonctionner de pair ?
Parfois choisir entre le serverless et les microservices n’est pas nécessaire, car certaines applications reposent sur les deux. Ces 2 technologies s'intègrent et se complètent. Vous pouvez choisir de déployer les microservices dans le cadre d'une architecture serverless ou de les héberger dans des containers. N'oubliez pas de tenir compte des problèmes de portabilité, car les applications serverless ne peuvent être déployées que sur l'infrastructure de leurs fournisseurs respectifs.