3 Services AWS que j’utilise tous les jours

Your Content Goes Here

07/11/2022

6min

Table des matières

Your Content Goes Here

Copy to Clipboard

De ce fait, elle partage le quotidien de nombreux développeurs. Cependant, en fonction du développeur, ainsi que de sa mission, du fait qu’il utilise AWS pour un hobby ou pour le monde professionnel, il se trouve que ce « quotidien AWS » varie énormément.

C’est donc dans cet article que je vais vous parler de mon quotidien AWS, à savoir, les services que j’aime utiliser pour mes projets personnels.

Lambda

Le Serverless computing est, en quelque sorte devenu une norme ces dernières années. Surtout lorsqu’il s’agit de déployer dans le cloud des applications ou des workloads qui sont résiliants, scalables, rapides d’exécution, et faciles à déployer.

S’ajoute à ce concept celui des Fonctions sans serveur (ou Serverless functions). Une Fonction sans serveur, c’est, comme son nom l’indique, une fonction ou méthode développée avec un langage de programmation (Java, C#, Python etc. …), qui est exécutée lorsqu’un évènement est déclenché. Cet évènement peut être une insertion dans une base de données, ou encore un appel HTTP.

L’un des grands avantages des Fonctions sans serveur est que le développeur n’a plus à se soucier de l’infrastructure qui se cache derrière l’exécution de son code (Quelle machine? Quel port ?). Il doit juste se soucier de ce qu’il y a autour (Quelles sources de données? Quels points d’entrée?).

Les Lambdas AWS sont des Fonctions sans serveur, et en possèdent toutes ces qualités. De plus, on paie uniquement à l’exécution de la fonction. Cela peut être économique pour les développeurs comme moi, qui déploient des workloads dans le cloud pour le hobby.

Mais il existe également un avantage non négligeable pour les développeurs .NET.

En effet, si vous êtes au fait des nouveautés de .NET 5 et 6, vous savez que la tendance actuelle s’oriente sur des minimal APIs, via les top-level programs. Pour un endpoint GET, cela donne le code ci-dessous:

app.MapGet("/grenouilles", () => { return "";});
app.Run();

Remarquez ici que nous définissons un endpoint sans aucun contrôleur.

C’est là toute la puissance des minimal APIs.
Hé bien sachez que ces minimal APIs peuvent être converties en une Lambda et ce avec une seule ligne de code supplémentaire!

builder.Services.AddAWSLambdaHosting(LambdaEventSource.HttpApi);
var app = builder.Build();
app.MapGet("/grenouilles", () => { return "";});
app.Run();

Ici, l’endpoint "/grenouilles" sera ainsi appelé lorsqu’un évènement de type HTTP GET sera déclenché. Cette endpoint est donc ainsi notre fonction sans serveur.

Je vous recommande à ce sujet l’excellent article de Zied BT.

À nous donc la migration rapide d’un code legacy en un workload orienté cloud!

Attention toutefois, car les lambdas ont un temps d’exécution limité.

Il est possible que certaines applications ne soient pas prêtes à être directement migrées.

Cloud9

AWS Cloud9 est un IDE dans le cloud. Alors. Je vous vois venir dans les commentaires à des kilomètres:

Pourquoi utiliser un IDE dans le cloud si j’ai déjà Visual Studio Code ou Jetbrains Rider ?

Ce à quoi je répondrai: Vous avez totalement raison. Cependant, il subsiste des avantages non négligeables à utiliser un IDE dans le cloud.

L’avantage le plus intéressant est la création d’un environnement de développement isolé de votre propre machine.

Imaginez que vous ayez envie de tester cette dernière version de Python, ou de Java, sans avoir à installer 2 versions sur votre machine, et ainsi casser votre environnement local. C’est possible avec Cloud 9.

En effet, Cloud9 reposant sur un EC2 (une machine virtuelle AWS), vous pouvez installer virtuellement tout ce que vous voulez dessus.

Ensuite, vous vous retrouverez avec une interface comme celle-ci:

En fait, c’est avec cet environnement que j’ai pu tester les dernières fonctionnalités de .NET 7 avant de vous les présenter dans cet article.

J’y ai installé .NET 7, écrit mon code C#, et exécuté mon code.

Ainsi, plus besoin de s’embrouiller avec de multiples versions du même framework, ou de mettre à jour le PYTHONPATH pour les adeptes du 🐍.

De toute manière, comme je le relatais dans un post StackOverflow :

PYTHONPATH

…It’s almost always a mistake to set

Amplify

Terminons avec AWS Amplify. L’un des outils les plus puissants pour les développeurs front-end.

Amplify est un service d’AWS entièrement managé qui permet in fine de déployer des applications front-end. Il récupère le code d’un dépôt git.

Mais c’est aussi un outil polyvalent qui permet de compiler, transpiler, tester, et déployer votre code. Et ce, sur plusieurs environnements. Un peu comme une mini CI !

C’est également, via Amplify Studio, un formidable outil no-code pour les développeurs front-end. En effet, il permet à tout développeur front-end de développer un back-end sans code.

Ce back-end consiste en une API GraphQL entièrement managée par AWS. Tout ce que le développeur a à faire, c’est décrire son modèle de données (utilisateur, produit…). AWS se charge du reste, et le développeur n’a plus qu’à appeler cette API.

Récemment, AWS a introduit un outil dans Amplify Studio qui permet de générer du code pour un front-end à partir d’un wireframe Figma (!).

À côté de toutes ces fonctionnalités no-code, c’est avant tout un moyen extrêmement rapide de déployer un site statique, qu’il soit développé en React, Vue.js, ou même en HTML pur.

Je déploie la plupart des sites statiques de mes projets personnels avec Amplify, que j’admire pour sa simplicité et sa rapidité.

Conclusion

On peut voir ici que l’environnement nuagique d’Amazon regorge de services pour assister le développeur pendant son développement et après qu’il ait déployé son code.

Les trois services exposés dans cet article font partie de mon quotidien de développeur. Ils ont tous trois des cibles consommateur différentes (développeurs front, back, les deux…) et partagent tous le même avantage: la simplicité.