3 Services AWS que j’utilise tous les jours

AWS est une des plateformes leader du marché en ce qui concerne le Cloud Computing.

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: