5 services AWS natifs capables de créer une plate-forme sans serveur de bout en bout

La construction d’un système logiciel automatisé signifiait la configuration de plusieurs serveurs avec une configuration CPU dédiée, de la mémoire, du stockage et d’autres ressources pendant de nombreuses années. Ensuite, une équipe d’administrateurs a été formée pour gérer ces systèmes. Ensuite, l’équipe de développement a repris l’infrastructure et a commencé à créer des processus qui connectent les serveurs.

Ce processus peut être compliqué car il implique de nombreux groupes différents travaillant ensemble vers un objectif commun. Ces conflits d’intérêts peuvent alors poser problème.

Cela peut aussi être assez coûteux. Cela nécessite que vous ayez des administrateurs sur votre liste de paie. Les serveurs, qui fonctionnent en continu, consomment des ressources même s’ils ne sont pas utilisés.

Pour maintenir les meilleures performances au fil du temps, vous avez besoin d’une solution de mise à l’échelle automatique qui met automatiquement à l’échelle les ressources du serveur.

La plate-forme cloud présente un avantage : elle vous permet de créer une architecture de bout en bout sans avoir besoin de configurer un cluster de serveurs. D’un point de vue administratif, il n’y a rien à maintenir.

Il s’agit d’une option rentable pour les startups et les phases de produit minimum viable (MVP) des projets. C’est un bon point de départ s’il est difficile de prévoir les futures charges de production et l’activité des utilisateurs. C’est là qu’il peut être difficile de déterminer la configuration des serveurs de cluster.

L’automatisation des processus via des services cloud sans serveur est ce qui distingue l’architecture sans serveur. Il connecte les services et produit des résultats similaires aux serveurs de cluster traditionnels.

Il s’agit d’un exemple de construction d’une telle architecture en utilisant uniquement des services AWS natifs.

Récupérer le flux de services sans serveur

Imaginez que vous souhaitiez créer une plate-forme pour rassembler diverses données et images (ou photos) de l’infrastructure de certains actifs concrets (il peut s’agir de n’importe quel actif de fabrication ou de service).

  • Afin de rendre possible les analyses futures, il est nécessaire que les données entrantes soient d’abord ingérées.
  • Après l’application des règles métier, une procédure dorsale enregistre les sorties calculées sous forme d’informations normalisées dans une base de données relationnelle.
  • Une application frontale qui affiche des données propres normalisées permet aux utilisateurs de visualiser les résultats.

Examinons quels composants l’architecture pourrait inclure.

Compartiments AWS S3

Source : aws.amazon.com

Les compartiments Amazon S3 sont un excellent moyen de stocker des fichiers ou des images dans le cloud AWS. Le prix du stockage sur le godet S3 est remarquablement bas. De plus, l’introduction d’une politique de cycle de vie de compartiment S3 réduit encore ce prix.

Une telle stratégie déplacera automatiquement les fichiers plus anciens dans différentes classes de compartiments S3, telles qu’une archive ou un accès aux archives approfondies. Les classes diffèrent également par la vitesse du temps d’accès, mais pour les anciennes données, ce sera moins un problème. Il sert principalement à accéder aux données archivées en cas d’événement urgent plutôt qu’aux besoins d’exploitation standard.

  • Vous pouvez organiser vos données dans des sous-dossiers.
  • Vous devez définir des restrictions d’autorisations appropriées.
  • Ajoutez des balises aux compartiments pour les rendre faciles à identifier et pour une utilisation éventuelle dans les politiques de compartiment S3 dynamiques.
  • Le compartiment est sans serveur de par sa conception. C’est simplement un espace de stockage pour vos données.

Un compartiment S3 est sans serveur de par sa conception. C’est simplement un espace de stockage pour vos données.

Base de données AWS Athena

Source : aws.amazon.com

Athena facilite la création d’un lac de données de base AWS. Il s’agit d’une base de données sans serveurs qui utilise un bucket S3 pour stocker ses données. L’organisation des données est maintenue par des formats de fichiers structurés tels que les fichiers parquet ou CSV (valeurs séparées par des virgules). Le compartiment S3 contient les fichiers et Athena s’y réfère chaque fois que les processus sélectionnent les données de la base de données.

Sachez simplement qu’Athena ne prend pas en charge diverses fonctionnalités autrement considérées comme standard, par exemple, les instructions de mise à jour. C’est pourquoi vous devez considérer Athéna comme une option très simple.

Cependant, il prend en charge l’indexation et le partitionnement. Il peut également évoluer horizontalement très facilement, car cela est aussi complexe que l’ajout de nouveaux compartiments à l’infrastructure. Pour une création de lac de données simple mais fonctionnelle, cela peut encore suffire dans la plupart des cas.

Pour de bonnes performances, il est essentiel de sélectionner la meilleure conception de données en mettant l’accent sur l’utilisation future. Il est essentiel d’être très clair sur la manière dont vous souhaitez sélectionner les données. Il est difficile de recréer des tables plus tard une fois qu’elles existent déjà et qu’elles contiennent beaucoup de données.

Athena DB est un excellent choix et convient parfaitement à votre objectif si vous cherchez à créer un pool de données simple et immuable, facile à mettre à l’échelle horizontalement dans le temps.

Base de données AWS Aurora

Source : aws.amazon.com

Athena DB excelle dans le stockage de données non conservées. C’est ainsi que vous souhaitez stocker votre contenu original pour maximiser sa réutilisation future, après tout. Cependant, il est lent de fournir des résultats sélectionnés à une application frontale.

L’une des meilleures options, principalement du point de vue d’une configuration facile à exécuter, est la base de données Aurora exécutée en mode sans serveur.

Aurora est loin d’être une base de données de base. C’est l’une des solutions de bases de données relationnelles natives les plus avancées d’AWS. Il s’agit également d’une solution de base de données relationnelle native très complexe qui s’améliore à chaque version.

Aurora est unique car il peut fonctionner en mode sans serveur, ce qui le distingue des autres services relationnels. Voici comment fonctionne le mode :

  • Pour configurer le cluster Aurora, utilisez la console AWS. Vous devrez spécifier les niveaux standard de CPU et de RAM ainsi que l’intervalle maximal de la fonctionnalité de mise à l’échelle automatique. Cela affectera les performances que le cluster Aurora peut ajouter ou supprimer dynamiquement. En fonction de l’utilisation actuelle de la base de données, AWS décide d’augmenter ou de réduire.
  • Le cluster Aurora ne démarrera que si l’utilisateur ou le processus lance une demande réelle. Par exemple, lorsque le traitement par lots planifié démarre. Ou si l’application effectue un appel d’API back-end pour récupérer des données à partir d’une base de données. La base de données s’ouvrira automatiquement et restera active pendant une durée prédéterminée après la fin des processus de demande.
  • Le cluster Aurora s’arrêtera automatiquement s’il n’y a plus de travail dans la base de données.

Pour le souligner une fois de plus, la base de données Aurora sans serveur ne s’exécute que lorsqu’elle doit effectuer un travail réel. Le cluster démarré automatiquement s’arrêtera à nouveau s’il ne traite aucun travail. Le travail réel est ce que vous payez et non votre temps d’inactivité.

L’Aurora sans serveur est entièrement géré par AWS et ne nécessite pas d’administrateur.

Amplifier AWS

Amplify offre une plate-forme sans serveur pour le déploiement rapide d’applications frontales réalisées avec les bibliothèques JavaScript et React. Il n’est pas nécessaire de configurer des serveurs de cluster. Utilisez la console AWS pour déployer le code directement ou utilisez un pipeline DevOps automatisé.

Vous pouvez appeler des API back-end pour accéder aux données stockées dans les bases de données. Ces appels vous permettent d’accéder aux données réelles dans l’application frontale. L’optimisation principale des performances sur le back-end doit être effectuée par l’équipe. Vous pouvez encore réduire davantage la possibilité d’une réponse lente dans l’interface utilisateur si vous concevez directement des instructions de sélection efficaces dans les appels d’API.

Fonctions d’étape AWS

Source : aws.amazon.com

Même si tous les principaux composants d’un système sont sans serveur, cela ne garantit pas une architecture entièrement sans serveur. Cela n’est possible que si tous les traitements par lots entre les composants sont sans serveur.

Les fonctions AWS Step fournissent la meilleure solution sur le cloud AWS. Une liste connectée de fonctions AWS Lambda constitue la fonction d’étape. Ces fonctions créent un organigramme qui a des états de début et de fin clairs. Une fonction lambda, généralement écrite en langage Python ou Node JS, est un morceau de code exécutable qui traite tout ce qui est nécessaire.

Voici un exemple de la manière dont vous pouvez exécuter une fonction d’étape :

  • AWS déclenche une fonction lambda automatique chaque fois qu’un nouveau fichier arrive dans le dossier S3. Après avoir analysé le fichier, le lambda le charge dans Athena. Le lambda stocke ses résultats soit au format CSV sur un compartiment S3 (ou dans une table de suivi de base de données) avant de se fermer.
  • Ce résultat est ensuite utilisé par le lambda suivant pour effectuer les étapes suivantes. Cela peut inclure l’appel d’un modèle d’apprentissage automatique et la transformation d’un sous-ensemble des nouvelles données en tables normalisées. La dernière étape peut être de charger les données dans la base de données Aurora.
  • Une fonction d’étape relie ces lambdas ensemble pour former un flux par lots. Il est même possible d’avoir une autre fonction d’étape exécutée à la place d’une étape d’une autre fonction d’étape racine. De cette façon, il est possible de couvrir de nombreux scénarios.
  • Ce flux sans serveur a un inconvénient majeur : chaque fonction lambda ne peut s’exécuter que pendant 15 minutes au maximum. Par conséquent, diviser le flux en fonctions lambda plus petites peut rendre cela moins problématique.

    Il est possible d’appeler plusieurs fonctions lambda simultanément en une seule étape, ce qui signifie essentiellement paralléliser une étape avec plusieurs lambdas exécutées simultanément. Attendez simplement que tous les traitements lambda parallèles soient terminés avant de continuer. Ensuite, passez au traitement lambda suivant.

    Derniers mots

    L’architecture sans serveur offre une opportunité unique de créer une plate-forme cloud qui couvre l’ensemble du paysage système. Cette plate-forme est évolutive horizontalement et a de faibles coûts d’exploitation.

    C’est la solution idéale pour les projets à budget limité. C’est une excellente option d’exploration, généralement lorsque personne ne connaît la réalité de la charge de production. Ceci est particulièrement important une fois que vous avez réussi à intégrer tous les utilisateurs. Il est possible pour les équipes de projet d’avoir toujours une vue d’ensemble du fonctionnement du système. Vous pouvez bénéficier de tous ces avantages sans avoir à accepter de compromis.

    Cette couverture ne sera pas adéquate pour tous les cas, en particulier ceux qui impliquent une utilisation élevée du processeur. Cependant, le cloud AWS évolue constamment en termes de cas d’utilisation sans serveur. C’est généralement une bonne idée de mener des recherches approfondies avant de choisir l’option sans serveur pour votre prochain projet de cloud AWS.

    Ensuite, découvrez les meilleures bases de données sans serveur pour les applications modernes.