Neon dévoile une nouvelle approche du développement de bases de données : Neon PostgresSQL. Neon permet de réduire les coûts de démarrage, d'arrêt, de création et de clonage des bases de données de plusieurs heures à quelques secondes.Postgres reste l'une des bases de données de développement les plus populaires jamais créées. Alors que MySQL a perdu de son éclat après son rachat par Oracle, Postgres continue de gagner la confiance des développeurs. En 2023, elle est arrivée en tête du sondage StackOverflow Developers Survey et, la même année, a été élue SGBD de l'année par DBEngines. Le mème internet actuel est "Just Use Postgres" pour tout.
Malgré sa popularité, Postgres souffre des deux problèmes qui affectent presque toutes les bases de données relationnelles. Il est difficile d'augmenter ou de diminuer la taille de la base de données sans interruption. Pire encore, il faut beaucoup de temps pour rétablir les opérations de production lorsque des bogues logiciels affectent les données.
En effet, avec Postgres, il est difficile de créer un environnement de développement très fidèle, car il faut copier l'état complet de la base de données. De plus, le maintien de plusieurs copies des données et du schéma pour chaque développeur est une véritable plaie. La base de données devient le point névralgique du développement pour la plupart des équipes et constitue invariablement le goulot d'étranglement qui limite la vélocité des développeurs.
Les besoins des développeurs
Lorsque l'équipe d'ingénieurs de Neon a abordé ces questions, elle savait qu'elle devait résoudre plusieurs problèmes liés au cycle de vie actuel du développement des bases de données :
- Ils voulaient que la création d'un cluster Postgres soit rapide (moins d'une seconde).
- Ils voulaient que les clusters Postgres soient capables d'évoluer automatiquement vers le haut ou vers le bas en fonction de la charge. Vous n'avez pas à vous soucier d'un provisionnement excessif ou insuffisant.
- Ils voulaient pouvoir créer des branches avec des données complètes copiées instantanément afin que les développeurs puissent travailler indépendamment tout en étant capables de collaborer efficacement.
- Ils voulaient pouvoir restaurer un point dans le temps en quelques secondes au lieu d'heures ou de jours.
Presque toutes les applications ont besoin d'une base de données, et alors que les outils et les flux de travail des développeurs ont évolué avec des plateformes comme GitHub et Vercel, les bases de données n'ont pas évolué pour correspondre à l'expérience des développeurs de ces systèmes. L'évolution de l'expérience des développeurs autour de la base de données nécessite de repenser fondamentalement l'architecture de la base de données. Mais il ne s'agit pas d'un moteur "regardez notre nouvelle base de données cool". les développeurs aiment et veulent utiliser l'authentique logiciel open-source Postgres.
C'est pourquoi, chez Neon, ils ont cherché à modifier l'expérience de développement sur Postgres sans perdre tout ce qui fait la qualité de Postgres.
Nous avons emprunté une idée à Amazon Aurora, la séparation du stockage et de l'informatique, et nous ne parlons pas de la simple utilisation d'un disque connecté au réseau comme EBS. Une véritable séparation du stockage et du calcul a ouvert la possibilité de faire évoluer les deux parties du service de manière indépendante. Contrairement à AWS Aurora, nous avons décidé de mettre en open source toutes les modifications apportées à Postgres et de les envoyer en amont, ainsi que de mettre en open source notre stockage natif dans le nuage.
Nous avons pris des décisions architecturales qui garantissent à nos utilisateurs une expérience complète de Postgres, y compris les extensions, les éléments internes, la ligne de commande et les outils de gestion. Tout ce qui fonctionne sur site devrait fonctionner dans notre service en nuage.
Nous avons pris des décisions architecturales qui garantissent à nos utilisateurs une expérience complète de Postgres, y compris les extensions, les éléments internes, la ligne de commande et les outils de gestion. Tout ce qui fonctionne sur site devrait fonctionner dans notre service en nuage.
Un autre avantage de la séparation du stockage et du calcul est qu'on dispose d'une toute nouvelle implémentation de stockage natif dans le nuage et qu'il est possible de "faire des choses" dedans. Le contrôle du stockage permet d'implémenter le branching, une fonctionnalité phare qui améliore l'expérience des développeurs dans la création d'applications de bases de données.
Qu'est-ce que cela signifie pour l'utilisateur ?
Cela signifie qu'on peut créer des branches à tout moment et démarrer une instance de calcul pointant vers cette version de base de données. Ainsi, chaque développeur peut travailler sur une branche différente...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.
