Aller au contenu
Home » Blog FR » #Cloud : Faire une API sans gérer de serveur, c’est possible ?

#Cloud : Faire une API sans gérer de serveur, c’est possible ?

Sur cette question, plusieurs approches sont possibles :

  • Déployer des serveurs et leurs applications.
  • Utiliser des orchestrateurs du type Kubernetes pour se simplifier le déploiement et l’administration de l’infrastructure.
  • Utiliser des clouds providers et leurs services managés

Selon les besoins, les cas d’usages et les contraintes (Financières, Légales, Techniques, Humaines), les choix peuvent être différents.

Dans ma dernière réalisation, le choix s’est porté sur l’utilisation de service managé pour des raison de rapidité, simplicité et coût.

#API

L’API réalisé permet de restituer des données collectées par des capteurs #Iot.

Les fonctions principales demandées à cette API :

  • La communication sécurisé (HTTPS)
  • L’authentification des utilisateurs (Gestion sécurisé du mot de passe, récupération)
  • La gestion des objets, des identités : Création, Lecture, Modification
  • La récupération et l’export des données mesurées :
    • En direct (JSON)
    • En différé via l’envoie d’un e-mail avec un lien de téléchargement d’un export.

La solution a été ici réalisé chez AWS, sans l’installation d’un seul serveur !

En prime, c’est Scalable, Sécurisé et Performant !

Dans ce cas, l’usage de l’API étant modéré, c’est économique si on compare à la location d’instances virtualisées.

Architecture de l’API

On utilise plusieurs services :

  • API Gateway : Cela permet d’orienter les requêtes HTTPS vers les bonnes ressources en lien avec l’authentification Cognito.
  • Cognito : Cela gère l’identité des clients (Authentification) : cela permet d’avoir sans développement une interface de création, de login et de récupération du mot de passe. De plus, pas de risques de corruption des mots passe clients, ils ne sont jamais stockés dans les données du client.
  • Les Fonctions Lambda : Le Cœur Serverless
    • C’est ici que le Serverless prend tout son sens, le seul code de l’application est écrit dans ces fonctions (en Python ou Javascript) qui permet de mettre en forme, traiter les données, utilisé les autres services.
    • Ces fonctions sont appelées par l’API Gateway, ou déclenché par d’autres services, on définit uniquement la mémoire utile, et on paye au temps d’utilisation.

Ce n’est pas magique, mais cela permet d’éviter de maintenir des serveurs pour des usages périodiques, et si la charge est importante, on peut exécuter plusieurs traitements en même temps.

Les autres services de cette API sont :

  • S3 : Pour le stockage et traitement des fichiers.
  • DynamoDB : une base No SQL pour stocker les données administratives.
  • TimeStream : une base Timeserie pour les données IoT.
  • SES : Pour gérer l’envoie de Mail sécurisé au clients finaux.

Conclusion

Ceci est simplement un exemple avec les services #AWS, il est possible de faire le même chose chez d’autres providers.

Avec des outils modernes, il est désormais possible de faire des solutions pérennes et performante en maitrisant ses couts.

Si vous avez besoin d’assistance et de réalisation sur vos architecture #Cloud #Iot,

Contactez-moi

#Cloud #Serverless #backend #AWS #API #Iot