Les développeurs mènent une lutte sans fin pour se libérer des tâches administratives et récurrentes afin de pouvoir se concentrer sur ce qu'ils font le mieux : écrire du code. Les développeurs passent ainsi 41 % de leur journée de travail à la maintenance de l'infrastructure au lieu d'innover ou de lancer de nouveaux produits sur le marché.
Dans un monde idéal, les développeurs ne se soucieraient pas des tâches non codées telles que la gestion d'un hôte ou d'un conteneur, le provisionnement des serveurs ou tout ce qui a trait aux serveurs « BareMetal ». C'est pourquoi nous avons créé Serverless instances, qui reprend la flexibilité caractéristique de l'architecture serverless et l'associe à une plate-forme de base de données d'application flexible construite sur le modèle de document.
Il faut savoir que le marché mondial des architectures serverless était évalué à 7 milliards de dollars en 2020. Et il devrait atteindre 37 milliards de dollars d’ici 2028, soit un taux de croissance de 22 % en une seule année.
Qu'est-ce que l'architecture Serverless ?
Serverless est la prochaine étape incontournable dans le parcours du développeur. Le processus Serverless doit alors être très simple. Les utilisateurs choisissent un fournisseur de services cloud et une région, ils donnent un nom à leur base de données et c'est tout ce qu'ils ont à faire.
Ils doivent créer une base de données ou créer ce que nous appelons une instance sans serveur Atlas. Mais cela ne fait que leur donner un point d'accès qui se comporte comme un point d'accès normal sans serveur. Ils n’ont cependant pas à se préoccuper du nombre de processeurs, de la capacité de stockage ou de tout autre élément.
Et c'est ce que les développeurs ont demandé. C'est pour cela qu’il est nécessaire de continuer à le rendre plus facile d’utilisation, à le rendre quasi « magique », c’est-à-dire avec une technologie compréhensible.
L'essor de l'informatique sans serveur remonte à l'introduction des fonctions cloud sans serveur comme AWS Lambda, qui permettaient aux développeurs de démarrer et d'arrêter leurs applications avec de simples appels API. Les développeurs pouvaient exécuter du code sans avoir à provisionner du matériel pour cela. Ce concept a ensuite été étendu à d'autres parties de la pile, notamment les bases de données.
Serverless architecture permet aux développeurs de créer des applications dans le cloud sans avoir à faire tourner un serveur. Bien que l'application s'exécute en fait sur un serveur, le déploiement et la gestion du serveur sont abstraits du développement de l'application.
Serverless architecture libère les développeurs de l'obligation de penser à l'approvisionnement des serveurs, comme la mise à l'échelle pour répondre à des charges de travail croissantes ou le sur-approvisionnement et le paiement des ressources inutilisées. Les architectures sans serveur n'utilisent dynamiquement que ce dont elles ont besoin, et les clients ne sont facturés que pour ce qu'ils utilisent.
Avec serverless architecture, les décisions relatives à la configuration de l'infrastructure et à la gestion des capacités ne sont pas prises en compte. Si un développeur a une idée d'application, l'architecture sans serveur lui évite d'avoir à planifier les ressources dont il pourrait avoir besoin le premier jour. Il peut simplement choisir sa base de données et sa pile de développement et commencer à développer.
Une fois qu'une application est en ligne et qu'elle attire des clients, les développeurs doivent généralement la peaufiner et décider s'il est nécessaire de l'étendre ou de la réduire en permanence en fonction du marché ou des demandes des clients. Avec l'architecture sans serveur, le réglage fin se fait automatiquement et il y a toujours suffisamment de ressources pour répondre à la demande.
Serverless Architecture présente deux caractéristiques essentielles :
- Mise à l'échelle adaptative et flexible - Vous pouvez augmenter ou réduire la taille de votre entreprise en fonction de votre charge de travail, y compris jusqu'à zéro.
- Tarification dynamique en fonction de la consommation - Parce qu'elle évolue en fonction de vos besoins, vous ne payez que ce que vous utilisez. Vous ne gaspillez pas de ressources sur du matériel inactif.
Serverless architecture réduit les barrières à l'entrée pour le développement d'applications. De plus, au fil du temps, il y a moins de maintenance permanente et moins de besoin d'optimiser continuellement pour s'assurer que les ressources sont suffisantes pour alimenter l'application.
Cas d'utilisation du Serverless
L'informatique Serverless est bien adaptée aux poussées soudaines de la demande. Les charges de travail importantes qui s'exécutent rarement ou de manière imprévisible sont également idéales pour l'architecture sans serveur. Le processus Serverless vous évite d'avoir à gérer les facteurs inconnus qui surviennent naturellement lors du développement d'applications, comme lorsque vous ne savez pas à quelle échelle de charge de travail vous attendre. Il vous permet de décomposer la logique de l'application en fonctions distinctes et de construire un petit élément de fonctionnalité personnalisée dans un flux d'autres services. Il permet également d'héberger un back-end d'application complet sur une plateforme gérée et de connecter un nombre illimité d'appareils finaux (mobiles et IoT) à ce back-end.
Il existe des scénarios dans lesquels l'architecture sans serveur ne doit pas être utilisée, par exemple si vous n'êtes pas déjà dans le cloud. Pour l'informatique haute performance, il peut être plus économique de fournir en masse les serveurs dont vous avez besoin pour gérer les charges de travail. Les fonctions à long terme peuvent également faire augmenter le coût de l'informatique sans serveur. Et la latence peut être un problème lorsque les architectures Serverless démarrent à froid.
Le futur du Serverless
Il n'y a pas si longtemps, toutes les voitures étaient équipées de transmissions manuelles. Puis, dans les années 50 et 60, les transmissions automatiques sont devenues plus populaires, tandis que les transmissions manuelles sont restées le choix d'une part de plus en plus réduite d'irréductibles. Dans un avenir pas très lointain, on peut imaginer que l'architecture Serverless sera l'équivalent de la transmission automatique pour les développeurs, une fois qu'ils auront réalisé à quel point il est facile de commencer à construire et à quel point la maintenance continue est réduite. On peut également imaginer un avenir analogue à celui des voitures automatisées - un avenir NoOps - où le matériel et la gestion de la capacité sont entièrement abstraits, et où les développeurs se concentrent exclusivement sur la création de fonctionnalités, de microservices et d'une véritable différenciation. D'ici là, de nombreuses organisations continueront à s'orienter davantage vers l'informatique sans serveur pour le développement rapide d'applications, les fonctions basées sur des événements et les pics de demande, tandis que d'autres insisteront sur les conteneurs dédiés pour les charges de travail avec des modèles d'utilisation prévisibles.
Par Andrew Davidson, VP Produit Management chez MongoDB