architecture serverless

Depuis trois ans, les cloud providers avancent progressivement sur le marché du serverless. Après Amazon Web Services (AWS) en 2015, Microsoft lui a emboîté le pas avec Azure Functions en 2016. Google, pour sa part, s’y est lancé en août 2018 avec Google Cloud Functions. Cette nouvelle technologie est aujourd’hui convoitée car elle offre de la flexibilité aux développeurs, de l’évolutivité pour les applications, et des coûts intéressants pour les entreprises. L’équipe de premaccess vous donne plusieurs conseils pour vous y lancer.

Qu’on se le dise : déployer une application en « serverless » ne signifie pas « sans serveur ». Une architecture « serverless » vous permet aujourd’hui de créer et d’exécuter des applications sans avoir à en gérer l’infrastructure. Ces dernières tournent toujours sur des serveurs, mais leur gestion est assurée par les cloud providers AWS, Microsoft Azure ou Google Cloud. Le service cloud fournit l’infrastructure. Vous n’avez plus à vous en soucier.

Lancée pour la première fois en 2015 par AWS, cette nouvelle architecture permet ainsi aux développeurs de consacrer davantage de temps à l’écriture de leur code propre à leurs applications.

Par ailleurs, elle permet aux entreprises de réduire véritablement les coûts puisque, pour fonctionner, ce type d’architecture n’a uniquement besoin que des ressources nécessaires à chaque requête exécutée.

Comment est composée une architecture « serverless » chez aws ?

Sur son cloud, AWS dispose d’un large éventail de micro-services faciles à appréhender et à mettre en place (base de données, puissance de calcul, service de stockage, sécurité, mise en réseau, analytics, sauvegardes etc.).

Lorsqu’elle souhaite lancer son application en « serverless », une équipe informatique :

1. construit toute sa logique métier avec AWS Lambda. L’intérêt de ce service est qu’il exécute le code en réponse à des événements et qu’il gère automatiquement les ressources de calcul nécessaires en fonction du nombre de requêtes.

2. Pour bâtir le reste de son application, cette équipe fait appel aux autres services d’AWS. Après le chargement de votre code, AWS Lambda peut associer vos fonctions à d’autres briques de micro-services du cloud pour vous faire gagner du temps. Pour le développement d’applications (applications web, applications mobiles, e-commerce, crm…), nous pouvons notamment citer les services cloud suivants :

·  Pour la gestion des bases de données : RDS ou Amazon DynamoDB

· Pour le stockage cloud, stockage de données : Amazon S3

·  Pour le routage applicatif : Amazon API Gateway

·  Pour la sécurisation et la gestion des utilisateurs : Amazon Cogito

·  Pour l’authentification des ressources : AWS Identity and Access Management (IAM)

·  Pour l’envoi d’emails : Amazon Simple Email Service

Amazon web service architecture serverless

Les avantages du cloud computing et de l’architecture « serverless »

Coût réduit

Avec ce type d’architecture, les services cloud ne sont alloués qu’à l’utilisation. Fini le maintien des serveurs même quand aucune requête n’est traitée. Cela permet donc aux équipes informatiques de développer plusieurs applications sans se soucier dans une premier temps des coûts associés. La facturation est ainsi calculée en fonction du temps d’exécution du code et des ressources informatiques consommées.

Plus de liberté pour les développeurs

En déployant en architecture « serverless », les développeurs ne sont plus responsables du maintien des environnements. Ils n’ont plus à les ajuster en fonction du trafic ou à vérifier leur système de sécurité. Ainsi, ils peuvent se concentrer sur leur cœur de métier : développer de la logique métier. Et gagner un temps considérable lors de la construction d’une application s’ils maîtrisent bien les briques de services d’AWS (gestion de la base de données, des pages, routage, authentification, etc.).

Haute disponibilité des ressources

En « serverless », Amazon Web Service contrôle vos applications et ajuste automatiquement l’allocation des ressources nécessaires. Nous parlons ici d’autoscaling. Cela est, par exemple, possible avec Amazon Aurora sans serveur. Cette brique de service permet à la base de données de démarrer, de s’éteindre, d’augmenter ou bien de réduire sa capacité automatiquement en fonction des besoins de votre application.

Les trois conseils de premaccess pour déployer une application en « serverless »

Premaccess sensibilise ses clients au serverless depuis deux ans. Sur ce terrain, son équipe d’experts en transition digitale a notamment accompagné dernièrement deux entreprises (une spécialisée en e-learning en biotechnologie, une seconde dans le tourisme de luxe) dans la création de leurs applications dans un environnement « full serverless ».

Pour ces clients, cela leur a été bénéfique en terme de coût puisqu’elles ont, grâce à cette technologie, eu un aperçu du trafic de leurs internautes et le coût associé. L’avantage du serverless est que nous pouvons tagguer les accès à ces applications et visualiser l’empreinte technique nécessaire par l’utilisation.

S’initier au « serverless » demande tout de même du temps pour bien comprendre la logique de cette architecture logicielle. Aussi, avant de déployer une application en « serverless », premaccess vous donne ces trois conseils :

1. Commencer un nouveau projet plutôt que refactoriser une ancienne application : en repartant « from scratch », vous serez plus rapides, plus efficaces. Cela vous permettra de mieux comprendre l’intérêt des micro-services d’AWS.

2. Prendre le temps de bien comprendre cette nouvelle architecture : la manière dont est structurée l’architecture « serverless » est complètement différente des autres architectures dont nous avons l’habitude en développement web. Cela nous demande donc de revoir nos méthodes de pensées. Un temps d’apprentissage est nécessaire pour y être complètement à l’aise.

architecture cloud aws accompagnement

3. Se faire accompagner par des experts dans ce domaine pour optimiser les services managés d’AWS : pour bien prendre en main les technologies cloud, l’ensemble des services managés d’AWS et optimiser le code de votre application, il est conseillé de se faire accompagner lors des premiers projets. La réduction de vos coûts vient par l’utilisation efficace des micro-services managés d’AWS. Le risque, quand nous nous lançons la première fois sur ce type de serveur, est de construire des applications en suivant nos méthodes actuelles, sans faire appel aux solutions natives de micro-services. Cela n’est pas adapté au serverless et risque de générer bien trop de requêtes, et donc de frais. Lors de la création de votre code, les experts vous indiqueront les micro-services qui peuvent vous être utiles.

En clair, s’approprier le « serverless » vous permet de construire des applications modernes avec une agilité non négligeable, avec un cycle de vie maîtrisée et un coût total réduit. Vos développeurs peuvent, grâce à cette technologie, se concentrer sur le produit sans se soucier de l’exploitation des différentes ressources. De quoi vous permettre d’être plus rapides lors de la création de nouvelles applications. Mais, pour bien optimiser cette nouvelle technologie, n’hésitez pas à vous entourer d’experts.

Alors, si vous aussi, vous souhaitez concevoir et gérer des applications en « serverless », l’équipe de premaccess est à votre disposition. Elle répondra à toutes vos questions et vous accompagnera pas à pas dans la mise en place de vos projets digitaux.

AWS Lambda, service phare du serverless sur AWS ?

AWS Lambda est un service de calcul sans serveur qui vous permet d’exécuter du code sans provisionner ou gérer des serveurs, créer une logique de dimensionnement de cluster prenant en charge la charge de travail, maintenir les intégrations d’événements ou gérer les environnements d’exécution.

Avec Lambda, vous pouvez exécuter du code pour pratiquement n’importe quel type d’application ou service backend , sans aucune tâche administrative. Il suffit de télécharger votre code sous forme de fichier ZIP ou d’image de conteneur, et Lambda alloue automatiquement et précisément la puissance d’exécution de calcul et exécute votre code en fonction de la demande ou de l’événement entrant, pour n’importe quelle échelle de trafic.

Quel langage utiliser avec AWS Lambda ?

Vous pouvez écrire des fonctions Lambda dans votre langage préféré (Node.js, Python, Go, Java, etc.) et utiliser des outils sans serveur et de conteneur, tels que AWS SAM ou Docker CLI, pour créer, tester et déployer vos fonctions.

Comment est composée une architecture « serverless » chez aws ?

Sur son cloud, AWS dispose d’un large éventail de micro-services faciles à appréhender et à mettre en place (base de données, puissance de calcul, service de stockage, sécurité, mise en réseau, analytics, sauvegardes etc.).

Lorsqu’elle souhaite lancer son application en « serverless », une équipe informatique :
1. construit toute sa logique métier avec AWS Lambda. L’intérêt de ce service est qu’il exécute le code en réponse à des événements et qu’il gère automatiquement les ressources de calcul nécessaires en fonction du nombre de requêtes.
2. Pour bâtir le reste de son application, cette équipe fait appel aux autres services d’AWS. Après le chargement de votre code, AWS Lambda peut associer vos fonctions à d’autres briques de micro-services du cloud pour vous faire gagner du temps. Pour le développement d’applications (applications web, applications mobiles, e-commerce, crm…), nous pouvons notamment citer les services cloud suivants :
·  Pour la gestion des bases de données : RDS ou Amazon DynamoDB
· Pour le stockage cloud, stockage de données : Amazon S3
·  Pour le routage applicatif : Amazon API Gateway
·  Pour la sécurisation et la gestion des utilisateurs : Amazon Cogito
·  Pour l’authentification des ressources : AWS Identity and Access Management (IAM)
·  Pour l’envoi d’emails : Amazon Simple Email Service