Qu'est-ce que le calcul sans serveur ?
L'informatique sans serveur est un modèle de développement d'applications dans lequel vous pouvez créer et déployer des applications sur une infrastructure de serveur gérée par un tiers. Toutes les applications nécessitent des serveurs pour fonctionner. Mais dans le modèle sans serveur, un fournisseur de cloud gère le travail de routine ; il fournit, met à l'échelle et assure la maintenance de l'infrastructure sous-jacente. Le fournisseur de cloud gère plusieurs tâches, telles que la gestion du système d'exploitation, les correctifs de sécurité, la gestion du système de fichiers et de la capacité, l'équilibrage de charge, la surveillance et la journalisation. Vos développeurs peuvent ainsi se concentrer sur la conception des applications tout en bénéficiant des avantages d'une infrastructure de serveur rentable, efficace et extrêmement évolutive.
Pourquoi l'informatique sans serveur est-elle importante ?
Au début d'Internet, quiconque souhaitait exécuter une application Web devait acheter et entretenir des serveurs physiques. Les entreprises stockent généralement leurs serveurs physiques dans des centres de données sur site ou dans des installations de colocation. Cela pouvait être coûteux, car la plupart des applications n'utilisaient qu'une infime fraction des ressources matérielles du serveur.
Le modèle de cloud computing a initialement résolu ce problème en permettant aux clients de créer des serveurs virtuels ou des instances sur le matériel du fournisseur de cloud. Cependant, les clients devaient encore provisionner, configurer, mettre à jour et mettre à l'échelle leurs serveurs virtuels.
En réponse à ces problèmes, les fournisseurs de cloud ont commencé à proposer des technologies sans serveur afin d'accroître l'agilité et d'optimiser encore les coûts. Grâce à l'informatique sans serveur, vos développeurs peuvent exécuter du code, gérer des données et intégrer des applications sans se soucier des tâches de gestion de l'infrastructure.
L'adoption de la technologie sans serveur présente plusieurs avantages, que nous décrivons ci-dessous.
Amélioration de la productivité des développeurs
Vos équipes de développement peuvent se concentrer sur la création d'applications au lieu de les configurer. La réduction des frais d'exploitation signifie que vos applications sont mises sur le marché plus rapidement. Vos développeurs peuvent répondre aux commentaires des clients et publier fréquemment des modifications au code de l'application.
Capacité de mise à l'échelle efficace
Les fournisseurs de cloud proposent une fonctionnalité d'autoscaling dans leurs environnements sans serveur. Vos applications sans serveur se mettent automatiquement à l'échelle, de zéro à la demande maximale. Vos développeurs n'ont pas à penser à l'utilisation lorsqu'ils écrivent du code.
Réduire les coûts
Vous ne payez que pour le processeur, la mémoire et les autres ressources informatiques nécessaires à l'exécution de votre code. Vous ne payez rien pour des ressources inutilisées. Ce modèle de facturation basé sur le paiement à la valeur garantit une utilisation optimale des ressources et aucun gaspillage dû à un surapprovisionnement.
Quels sont les avantages de l'informatique sans serveur ?
Il existe de nombreuses applications et systèmes dans lesquels l'informatique sans serveur peut être utile.
Développement d'applications sans serveur
L'architecture sans serveur est idéale pour les applications asynchrones et sans état qui n'enregistrent pas les données des clients entre les sessions. Les chatbots, les planificateurs de tâches et les applications IoT sont des exemples d'applications sans serveur. Par exemple, Coca-Cola a utilisé AWS pour développer une application mobile pour son distributeur de boissons sans contact en seulement 100 jours. Coca-Cola a utilisé des blocs de construction sans serveur tels qu'AWS Lambda.
Traitement par lots
Les applications de traitement par lots exécutent périodiquement des tâches de données répétitives et volumineuses, telles que les sauvegardes, le filtrage et le tri. Le traitement par lots convient parfaitement aux environnements sans serveur qui se mettent à l'échelle massivement lorsque cela est nécessaire et ne coûtent rien lorsqu'ils ne sont pas utilisés.
Par exemple, Liberty Mutual a utilisé AWS pour consolider ses différents secteurs d'activité mondiaux au sein d'un système centralisé appelé Financial Central Services (FCS). Celui-ci a utilisé AWS Step Functions pour créer une application sans serveur capable de traiter 100 millions de transactions en une seule fois à la fin de chaque mois.
Analyses de données en temps réel
L'informatique sans serveur est idéale pour les moteurs de streaming en temps réel afin d'améliorer la réactivité des clients. Les applications sans serveur peuvent gérer de grandes quantités de données en streaming provenant de centaines de milliers de sources tout en bénéficiant d'une faible latence et d'une bande passante élevée. Ainsi, vous pouvez obtenir des informations en quelques secondes au lieu de quelques minutes.
Par exemple, Genentech utilise la fonctionnalité sans serveur AWS pour l'analyse des données cliniques. Les chercheurs peuvent désormais accomplir en quelques heures des tâches qui prenaient auparavant des semaines.
Automatisation des processus métier
Vous pouvez utiliser l'approche sans serveur pour automatiser les processus métier fastidieux et chronophages. Vos développeurs peuvent se concentrer sur la traduction de la logique métier en code d'application sans avoir à gérer les serveurs.
Par exemple, Taco Bell a utilisé AWS pour créer des applications sans serveur afin d'effectuer des transformations de logique métier et de données. Ils ont fourni des informations en temps réel sur les menus et les restaurants aux partenaires de livraison de Taco Bell. Les investissements sans serveur ont aidé la marque à évoluer rapidement pour répondre à la demande des consommateurs en matière de livraison pendant la pandémie de COVID-19.
Comment fonctionne l'architecture sans serveur ?
Toute application possède deux grands domaines de fonctionnalités : le frontend et le backend. Le frontend inclut tous les éléments avec lesquels vos utilisateurs finaux interagissent, tels que la mise en page visuelle, les boutons et le texte d'affichage. Le backend inclut des fonctionnalités auxquelles vos utilisateurs ne peuvent pas accéder, comme le traitement et le stockage des données.
Par exemple, pensez à une application de réservation de vols sur votre appareil mobile. Le frontend est l'interface utilisateur de votre application, dans laquelle vous pouvez choisir des dates et demander une liste des vols disponibles. Votre demande est envoyée au backend, qui recherche la base de données et renvoie des informations sur tous les vols disponibles dans la période que vous avez choisie. Le schéma suivant montre l'architecture traditionnelle.
Dans une architecture sans serveur, les développeurs déploient le code principal dans l'infrastructure cloud fournie par les fournisseurs de cloud. La clé des applications sans serveur est l'architecture basée sur les événements— un modèle d'architecture moderne créé à partir de petits services découplés qui publient, consomment ou acheminent des événements. Les événements sont des messages envoyés entre les services.
Cette architecture facilite la mise à l'échelle, la mise à jour et le déploiement indépendant de composants distincts d'un système. Le schéma suivant montre un microservice sans serveur piloté par des événements.
Ensuite, nous donnons un aperçu du fonctionnement de l'architecture sans serveur.
Fonctions
Les fonctions sont de petites unités de code discrètes qui exécutent une seule tâche. Une fonction nécessite des ressources de calcul telles que le processeur et la mémoire pour fonctionner. Le fournisseur de cloud alloue ces ressources uniquement lorsque cela est nécessaire. Cela crée un environnement temporaire pour l'exécution de la fonction sans serveur.
Certains événements peuvent déclencher ou faire fonctionner l'unité de code. Par exemple, un événement peut être exécuté si un utilisateur sélectionne un bouton dans une application. La demande déclencherait une fonction qui lit la base de données et renvoie les informations pertinentes à l'utilisateur.
Requêtes de mise à l'échelle
Plus une fonction reçoit de requêtes, plus elle a besoin de ressources pour s'exécuter. La plateforme sans serveur surveille la charge et continue d'allouer les ressources du cloud à une échelle quasi infinie. Une seule fonction sans serveur peut ainsi gérer un ou un million de requêtes sans modifier le code.
Une fois qu'une fonction cesse de recevoir des demandes, le fournisseur de cloud démonte l'infrastructure associée pour réduire les coûts. Il alloue des ressources uniquement lorsque cela est nécessaire. S'il n'y a pas d'utilisation, l'environnement peut se mettre à l'échelle zéro.
Quels sont les types d'architecture sans serveur ?
Dans une architecture sans serveur, le fournisseur de cloud gère plusieurs petites et grandes tâches dorsales pour votre application. Vous pouvez déployer du code personnalisé ; le fournisseur de cloud allouera les ressources de manière dynamique chaque fois que votre code s'exécute. La plate-forme cloud peut également fournir des fonctionnalités de backend que vous pouvez utiliser directement sans écrire de code à partir de zéro.
Nous expliquons ensuite les deux types d'architectures sans serveur.
Fonctionnement en tant que service
La fonction en tant que service (FaaS) est une architecture sans serveur que les développeurs peuvent utiliser pour écrire des fonctions dorsales personnalisées et déployer le code de la fonction directement dans l'infrastructure cloud. Lorsqu'une fonction est appelée, le fournisseur de cloud exécute la fonction sur un serveur actif existant ou lance un nouveau serveur si nécessaire. Ces fonctions sont appelées fonctions sans serveur car leur processus d'exécution est soustrait à la portée des développeurs. Les développeurs peuvent écrire et déployer du code sans se soucier de savoir comment et où il s'exécute.
Backend en tant que service
Le backend en tant que service (BaaS) permet aux développeurs d'accéder aux fonctions du backend à l'aide d'une API. Les API sont des mécanismes qui permettent à deux composants logiciels de communiquer entre eux à l'aide d'un ensemble de définitions et de protocoles.
Dans leur environnement sans serveur, les fournisseurs de cloud fournissent un accès basé sur des API à des bases de données supplémentaires de chiffrement, d'authentification et accessibles dans le cloud. Ils peuvent également donner accès à d'autres services et applications tiers. Ces fonctions sans serveur sont préécrites et peuvent être appelées directement dans le code.
Qu'est-ce que la stratégie « serverless first » ?
L'architecture sans serveur repose sur les principes suivants :
- Aucune gestion de serveur
- Des services payants
- Dimensionnement continu
- Tolérance aux pannes intégrée
Une stratégie « serverless-first » donne la priorité à ces principes tout au long des applications, des opérations et des cycles de développement d'une organisation. Un développeur sans serveur ou une entreprise privilégiant la technologie sans serveur travaille à la création en utilisant ces principes avant tout.
Mais l'informatique sans serveur ne convient pas à toutes les charges de travail. Vous pouvez intégrer des technologies non sans serveur comme architecture de support selon vos besoins.
L'architecture sans serveur est-t-elle sécurisée ?
La plupart des fournisseurs de cloud adoptent un modèle de sécurité partagé. Le fournisseur de cloud est responsable de la sécurité du cloud, tandis que les clients sont responsables de la sécurité dans le cloud.
Avec la technologie sans serveur, le fournisseur de cloud gère de nombreuses couches d'infrastructure supplémentaires, notamment les systèmes d'exploitation et les réseaux. Les clients doivent respecter les principes du moindre privilège et les meilleures pratiques en matière de sécurisation d'une application sans serveur.
Par exemple, dans les solutions AWS FaaS telles qu'AWS Lambda, vous pouvez sécuriser chaque ressource avec des autorisations granulaires à l'aide d'outils familiers tels qu'AWS IAM Identity Center. Cela peut vous aider à renforcer la sécurité de vos applications sans serveur.
Comment AWS peut-il répondre à vos besoins en matière d'informatique sans serveur ?
Amazon Web Services (AWS) propose de nombreuses offres pour soutenir votre informatique sans serveur.
La technologie sans serveur sur AWS propose également des technologies que vous pouvez utiliser pour exécuter du code, gérer des données et intégrer des applications sans avoir à gérer de serveurs. Les technologies sans serveur AWS offrent un autoscaling, une haute disponibilité intégrée et un modèle de facturation à l'utilisation qui permettent d'augmenter l'agilité et d'optimiser les coûts. Ces technologies éliminent également les tâches de gestion de l'infrastructure, telles que l'approvisionnement en capacité et l'application de correctifs, ce qui vous permet de vous concentrer uniquement sur l'écriture du code qui sert vos clients.
Les applications sans serveur commencent par AWS Lambda, un service de informatique piloté par les événements intégré de manière native à plus de 200 services AWS. Nous disposons également d'un grand nombre de services de soutien supplémentaires, tels que les suivants :
- AWS Fargate pour créer des applications sans serveur est compatible à la fois avec Amazon Elastic Container Service (Amazon ECS) et Amazon Elastic Kubernetes Service (Amazon EKS)
- Amazon Aurora sans serveur pour créer des bases de données sans serveur qui mettent à l'échelle automatiquement la capacité en fonction des besoins de vos applications
- AWS AppSync pour accélérer le développement des applications grâce aux API GraphQL évolutives
Commencez à utiliser sans serveur sur AWS en créant un compte dès aujourd'hui.