|
Les applications basées sur les données couvrent un large éventail de complexités, des microservices simples aux systèmes basés sur les événements en temps réel sous une charge importante. Cependant, comme toute équipe de développement et/ou DevOps chargée d'améliorer les performances en attestera, rendre les applications basées sur les données rapides à l'échelle mondiale n'est pas « trivial ».
Les architectures d'application modernes telles que JAMstack imposent la séparation des préoccupations en déplaçant les données et les exigences de persistance vers l'API. Séparer proprement le contenu statique, la logique métier et la persistance des données permet à chacun d'être mis à l'échelle et géré indépendamment.
De nombreuses entreprises se concentrent également sur le découplage de leurs applications monolithiques pour utiliser des microservices et se déploient souvent dans des environnements sans serveur. Ce passage à plus de découplage pour un meilleur isolement environnemental peut également fournir une meilleure agilité régionale en ce qui concerne l'endroit où la logique métier est déployée et la façon dont elle est mise à l'échelle. Les applications peuvent désormais être déployées à l'échelle mondiale en une seule action CI/CD.
La couche de données pose cependant une plus grande complexité. Il existe des défis pratiques tels que la cohérence transactionnelle, la haute disponibilité et les performances des requêtes sous charge. Il existe des contraintes telles que le respect des PII et les exigences de conformité. Et il existe des limites insurmontables telles que celles que les lois de la physique imposent à la latence.
Mise en cache des applications
De nombreuses équipes de développement se tournent vers la mise en cache pour résoudre ces problèmes au niveau de la couche d'application, en s'appuyant sur des couches de persistance comme Redis ou des systèmes maison. Le concept est simple :stocker les données demandées par le client pendant un certain temps et si nous les revoyons, nous les avons prêtes à servir la prochaine demande sans recourir à la base de données d'origine. Concevoir une bonne stratégie de mise en cache comporte son propre ensemble de défis :quelles données mettre en cache, comment les mettre en cache et quand. Et peut-être plus important encore, quoi, comment et quand supprimer les données du cache. La stratégie de mise en cache doit être bien définie, comprise et utilisée pour chaque nouvel ensemble de fonctionnalités ajouté à l'application, parmi les développeurs et éventuellement les équipes départementales. Le temps et la complexité du développement sont le coût.
Réplicas en lecture de base de données
Alternativement, de nombreuses entreprises résolvent les problèmes de latence et de mise à l'échelle avec des réplicas en lecture de base de données. Les réplicas en lecture sont des instances en lecture seule de la base de données principale et sont automatiquement maintenus synchronisés (de manière asynchrone) lorsque des mises à jour sont apportées à la base de données principale. Concevoir une solide stratégie de réplication en lecture est une tâche ardue pleine de ses propres coûts et complexités subtils et moins subtils.
Une grande partie de cette complexité peut être apprivoisée avec ScaleGrid. Des répliques en lecture entièrement gérées peuvent être déployées en un clic depuis ScaleGrid (avec prise en charge de la haute disponibilité) dans tous les principaux clouds et régions, le principal avantage étant que les données sont automatiquement synchronisées avec la base de données principale.
Cependant, les réplicas en lecture ne peuvent pas échapper à la nécessité d'exécuter plusieurs, voire plusieurs, serveurs de base de données et leur coût associé.
Une approche différente :PolyScale.ai Edge Cache
PolyScale est un cache périphérique de base de données qui adopte une approche différente. Le cache de PolyScale offre deux avantages principaux :une latence de requête améliorée et une charge de travail de base de données réduite. Décomposons cela un peu :
Latence régionale est résolu un peu comme un CDN ; PolyScale fournit un réseau périphérique mondial de points de présence (PoP) et stocke les réponses aux requêtes de la base de données à proximité du client d'origine, ce qui accélère considérablement les réponses.
Performances des requêtes de lecture est considérablement amélioré puisque PolyScale répondra à toute demande de base de données mise en cache en moins de 10 ms, quelle que soit la complexité de la requête. De plus, étant donné que les requêtes de lecture sont servies à partir de PolyScale, cette charge n'affecte jamais la base de données d'origine.
Mise en œuvre
PolyScale peut être implémenté sans écrire de code ni déployer de serveurs en quelques minutes. Mettez simplement à jour la chaîne de connexion du client de base de données (qu'il s'agisse d'une application Web, d'un microservice ou d'un outil de BI tel que Tableau) avec le nom d'hôte PolyScale. Le trafic de la base de données passera ensuite par le réseau périphérique et sera prêt pour la mise en cache.
Étant compatible avec MySQL et Postgres, PolyScale est complètement transparent pour les clients de base de données, donc rien ne change avec votre architecture actuelle. Aucune migration, aucune modification de la transactionnalité et aucune modification de votre langage de requête actuel. Vraiment plug and play.
Comment ça marche ?
Le réseau mondial de PolyScale proxie et met en cache les protocoles de connexion de base de données natifs afin qu'il soit transparent pour tout client de base de données. Les requêtes sont inspectées et lues (SQL SELECT
) peuvent être mis en cache géographiquement proches de l'origine de la demande pour des performances accélérées. Tout autre trafic (INSERT
, UPDATE
et DELETE
) passe de manière transparente à la base de données source.
L'IA de PolyScale est sur la voie de l'automatisation complète. Plutôt que de configurer le cache selon les besoins, la plate-forme mesurera le flux de trafic et ajustera en permanence les propriétés de mise en cache pour fournir des performances optimales. Vous pouvez en savoir plus sur le modèle de mise en cache PolyScale AI ici.
Conclusions
PolyScale.ai fournit une approche moderne et prête à l'emploi des performances et de la mise à l'échelle au niveau des données. La plate-forme PolyScale est sur la voie d'une automatisation complète où, une fois connectée, elle gérera intelligemment la mise en cache des données pour des performances optimales.
Étant donné que PolyScale est compatible avec votre base de données actuelle, aucune modification n'est nécessaire pour mettre à l'échelle les lectures globalement en quelques minutes. Essayez-le !