Mior Agency

L’essor des bases de données sans serveur (Partie 1) — Smashing Magazine

En tant que développeurs front-end, nous comprenons le rôle critique Les données joue dans notre travail quotidien. Il peut provenir d’une API externe, d’un CMS ou même d’un tableur. Mais à Dieu ne plaise, nous devons parler de la création de bases de données.

Ces jours sont révolus. Avec la popularité croissante des bases de données sans serveur, il n’a jamais été aussi facile de créer une architecture complète avec une mise à l’échelle verticale et horizontale, une haute disponibilité et une cohérence à toute épreuve.

Pour profiter pleinement des avantages d’une telle architecture, il est essentiel de comprendre quelles décisions sont prises pour toi. De la même manière que le mantra « apprendre JavaScript, pas un framework » est devenu populaire, nous devons également comprendre les concepts derrière l’architecture de base de données afin de les utiliser de manière fiable. Alors, bienvenue dans la première partie de notre « Bases de données pour les développeurs front-end » série.

Cette série ne fera pas de vous un expert des systèmes distribués ou la capacité d’assumer un rôle d’administrateur de base de données, mais elle vous éclairera sur les concepts, les termes et les acronymes auxquels vous serez confrontés lorsque vous vous préparerez à choisir votre prochaine pile. . Considérez-le comme une introduction aux bases de données (sans serveur). Espérons que cela vous poussera dans le terrier du lapin et vous donnera la confiance nécessaire pour participer à des conversations afin de peser le pour et le contre des différentes solutions.

Feuilles de calcul et systèmes de gestion de contenu

Quoi?! Feuilles de calcul? OK, oui. L’interface utilisateur (toi et moi, ou U et moi, ou UI) est assez similaire à celle d’une base de données. Les feuilles de calcul vous donnent un tableau dans lequel stocker des données. Dans certains cas, ils vous permettront uniquement de définir des types de données spécifiques par colonne. Les familiarités sont là, mais les feuilles de calcul se terminent brusquement une fois que nous ouvrons le capot.

La disponibilité est discutable : les feuilles de calcul ne sont pas destinées à assister à contenu, seulement boutique Contenu. Pour commencer, ils ne pousseront pas une application à mesure qu’elle évolue et peuvent ne pas suivre certaines meilleures pratiques lorsqu’il s’agit d’assurer l’intégrité des données. Jusqu’à très récemment, ils constituaient le moyen le plus rapide de démarrer avec une couche de données. Mais maintenant, cela n’a pas de sens pour une application Non pour utiliser une base de données réelle (sans serveur) (plus à ce sujet plus tard).

UN Système de gestion de contenu (CMS) est un autre type de base de données. Le « contenu » est un type spécial de données dans lequel le CMS est spécialisé. Il fournira à l’utilisateur (développeur) suffisamment d’abstractions pour faciliter la gestion de ces données au point où la base de données sous-jacente n’est pas un problème. Vous gérez la délivrabilité, la disponibilité et l’intégrité de vos données. Mais plus l’abstraction est lourde, plus le compromis est important. Les types de données sont limités à ce que le CMS vous fournira, et la plupart imposent même leur propre architecture pour gérer les relations, les requêtes, les types, etc. Bien sûr, il existe encore des cas d’utilisation significatifs et viables pour les CMS, et ils ne vont nulle part. Donc, tant que vous êtes sûr que c’est son cas d’utilisation, vous serez bien avec un.

douleurs de croissance

Si vous choisissez l’itinéraire plus simple et « abstrait » d’une feuille de calcul ou d’un CMS comme source de vérité, et que vos données commencent à se diversifier, des obstacles apparaîtront. Le premier problème avec une feuille de calcul concerne généralement l’API sous-jacente, souvent non conçue pour le trafic de la plupart des applications de taille moyenne, puis il y a les premières conversations de refactorisation.

Avec un CMS, les API ne sont généralement pas le problème, mais la gestion des données peut l’être. Au fur et à mesure qu’une application se développe et que les données se diversifient, certaines d’entre elles finissent par ne plus être Contenu plus et peut être plus lié à la logique de l’application.

Lorsque les données ne sont pas contenues, leur gestion dans un CMS n’est pas idéale. Il est moins flexible et ne s’intègre souvent pas dans le flux de travail de l’équipe propriétaire. Désormais, bien qu’il soit parfaitement possible que d’autres bases de données et CMS coexistent, il appartient aux développeurs de comprendre les avantages et les inconvénients de chaque solution et de décider ce qui convient le mieux à la livraison de leurs applications et à l’expérience utilisateur.

Plus après le saut! Continuez à lire ci-dessous ↓

L’administration de la base de données est difficile

En tant que développeurs front-end, la première fois que nous parlons de bases de données est généralement une conversation « relationnelle vs non relationnelle ». Dès lors, alors que nous essayons de comprendre les différences, nous entendons vaguement une myriade de termes, comme ACID, BASE et même CAP Theorem. Cet article ignorera une explication détaillée de ces différences. Nous les verrons mieux dans la suite de cette série. Pour l’instant, disons simplement que les bases de données « non relationnelles » imposent cohérence éventuelle dans une application.

La cohérence éventuelle peut également être dévoilée dans une discussion plus longue, mais prenons-la comme ceci :

La cohérence éventuelle signifie que, sous certaines conditions particulières, les données reçues sont obsolètes.

Comme les commentaires sur un article de blog, ils n’affecteront pas votre application si quelques secondes après un écrivez vous ne voyez toujours pas le dernier. Mais les mises à jour de mot de passe doivent être fortement cohérent toujours pas finalement cohérent.

Bien sûr, ce ne sont pas les seules différences. Les performances des requêtes sont différentes entre chaque type de base de données. On peut imaginer qu’à terme être cohérent permet d’être plus rapide lis parce qu’il y a moins de sécurité impliquée.

Plus de douleurs de croissance

Une fois que la base de données est décidée, l’application peut croître régulièrement et en douceur pendant un certain temps. À mesure qu’une application se développe, la complexité des données augmente et, à mesure que la complexité des données augmente, la base de données devient plus lente. À grande échelle, comment rendre une base de données plus rapide ?

  • Ajouter plus de ressources à un seul serveur ? (échelle verticale)
  • Comment les données sont-elles répliquées sur un groupe de machines ?
    • Divisez-vous votre base de données en partitions plus petites (fragments) ? (échelle horizontale, plus à ce sujet dans la partie 2)
  • Ajoute-t-il une base de données en mémoire plus rapide à l’avant pour les requêtes courantes ? (magasin clé-valeur)

Ce ne sont pas des questions faciles à répondre. Cela dépend de la base d’utilisateurs, du type de données, de la quantité, de la fréquence et de l’origine des requêtes. Votre base de données a-t-elle beaucoup de lectures ou beaucoup d’écritures ? Et bien qu’il existe une multitude de facteurs qui affectent cette décision, il y a aussi un coût élevé associé à la prise d’une mauvaise décision.

De plus, certains cas d’utilisation peuvent même nécessiter une récupération plus facile des données à partir du domaine de l’utilisateur. Un moteur de recherche n’est pas un problème facile à résoudre, et nécessite souvent un type de base de données supplémentaire pour indexer correctement vos données (s’il devient fragmenté, c’est encore plus difficile). Avoir tout cela autour de vos données utilisateur apporte également tout un ensemble d’outils pour les rendre maintenables.

De plus, garder un œil sur nos bases de données (désormais « infrastructure de données » si nous avons un moteur de recherche dans le mix) nécessite un haut niveau d’observabilité et OLAP (traitement analytique en ligne). Cela introduit un nouveau niveau de complexité !

Comme vous l’avez peut-être remarqué, il y a beaucoup d’enjeux associés à la création, à la maintenance et à la croissance d’une base de données. Des décisions qui peuvent faire ou défaire une demande, des décisions coûteuses à annuler et qui doivent être prises relativement tôt.

Les bases de données sans serveur sont amusantes

En raison de toute la complexité mentionnée ci-dessus, de nombreux investisseurs et incubateurs ont les yeux rivés sur les startups créant des bases de données sans serveur. Il s’agit d’une toute nouvelle catégorie de bases de données. Les concepts du traditionnel s’appliquent toujours, mais d’une manière différente.

Bases de données sans serveur

Pour comprendre ce qu’est réellement une « base de données sans serveur », nous devons d’abord déconstruire le terme. C’est une blague courante que « sans serveur » est un abus de langage. Pourtant, l’objectif d’une architecture sans serveur est d’abstraire du consommateur (développeur) la complexité de la gestion de la fiabilité du site et de la maintenance du serveur fournie par un fournisseur sans serveur, tel que Netlify, Vercel, Amazon Web Services (AWS) et bien d’autres. les autres. . J’ai tendance à aimer la définition de Xata de « base de données sans serveur ».

Une « base de données sans serveur » fait pour les bases de données ce qu’elle fait pour les serveurs. La complexité disparaît (à des degrés divers selon la plateforme choisie). Certains, comme Supabase et Firebase, offriront une multitude de fonctionnalités sans serveur pour correspondre à votre base de données ; d’autres, comme AWS Aurora ou PlanetScale, se concentrent sur la facilité d’utilisation et d’évolutivité des bases de données PostgreSQL et MySQL. Et enfin, il y en a d’autres qui font entièrement abstraction de la base de données, comme Xata. Ils vous offrent un SDK de type ORM, conservent la base de données derrière une API et peuvent offrir un ensemble complexe de fonctions de base de données, surmontant les limitations actuelles des bases de données relationnelles et non relationnelles traditionnelles.

Une fois que nous arriverons à la prochaine partie de cette série, nous parlerons des différents types de bases de données. Ensuite, vous êtes prêt à ouvrir le capot de toute offre de base de données sans serveur que vous souhaitez et à comprendre les différences par vous-même. En attendant, restons superficiels.

Batteries incluses

Ne prenez pas le préfixe « sans serveur » à la légère ; ces bases de données sont d’une race différente. Elles sont capables d’offrir des garanties et des performances que les bases de données « traditionnelles » demandent un effort pour atteindre, parfois même pas. En effet, dans les bases de données sans serveur, le travail est déjà fait, mais pas par votre équipe.

De la même manière, « sans serveur » signifie que vous n’avez pas besoin de gérer votre serveur, « base de données sans serveur » signifie que vous n’avez pas besoin de gérer votre base de données. La plateforme s’en chargera pour vous.

Pour cette raison, les décisions concernant l’évolutivité et la délivrabilité sont souvent prises en dehors de votre équipe. Ce que votre équipe obtient, c’est l’assurance que toute demande recevra une réponse rapide et que les données respecteront les garanties de cohérence. Encore une fois, différentes solutions ont des compromis différents. Il est important de vérifier ce que chaque offre impose avant de se lancer.

À la prochaine

J’espère que cela a suffi à piquer votre curiosité. Ceci est le premier article d’une série en 3 parties. Dans ce qui suit, nous couvrirons des informations plus détaillées sur les bases de données réellement ils sont. Plus précisément, nous examinerons :

  • régimes,
  • Théorèmes et modèles,
  • types de bases de données,
  • Quoi que vous suggériez dans les commentaires ci-dessous!

Toutes ces connaissances nécessaires vous permettront de choisir la meilleure solution pour votre application. Comprendre les avantages et les inconvénients des différentes solutions sans serveur et s’entourer de l’aide appropriée est essentiel pour configurer votre application avec succès. Rejoins moi si tu as besoin de quoi que ce soit entre-temps. Sinon, rendez-vous dans quelques jours !

Lectures complémentaires dans le magazine Smashing

éditorial écrasant
(Oui oui)

Laissez un commentaire

Derniers Posts
Une Question ? Un Projet ?
Quel que soit votre projet, MIOR AGENCY vous écoute, analyse vos besoins et propose des pistes de travail en conséquence. Vous avancez avec sérénité et confiance.