MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Stimuler les performances dans une configuration de cloud hybride

Un cloud hybride fait référence à un environnement mixte de calcul, de stockage et de services composé d'une infrastructure sur site, de services de cloud privé et d'une orchestration de cloud public entre les différentes plates-formes. L'utilisation d'une combinaison de clouds publics, d'informatique sur site et de clouds privés dans votre centre de données signifie que vous disposez d'une infrastructure cloud hybride.

Les performances ont généralement une priorité moindre dans un cloud hybride, car l'infrastructure de cloud hybride se concentre généralement sur la reprise après sinistre, la disponibilité et l'évolutivité. Dans cet article de blog, nous allons couvrir quelques conseils généraux pour améliorer les performances de nos applications, charges de travail et clusters exécutés sur une configuration de cloud hybride.

Hôtes/Instances/Ressources dédiés

Le coût des services cloud serait inférieur en raison du partage étendu des ressources. Cependant, un degré de partage plus élevé signifierait automatiquement moins de garanties de performance.

Les instances cloud sont sujettes à une stabilité imprévisible, mais avec des coûts supplémentaires, nous pouvons réduire ce risque avec des ressources dédiées. Les instances dédiées sont des instances qui s'exécutent sur du matériel dédié à un seul locataire. Généralement, les hôtes ou instances dédiés sont physiquement isolés au niveau matériel de l'hôte des instances qui appartiennent à d'autres locataires. Cela garantira des ressources adéquates au service et stabilisera pratiquement les performances de vos charges de travail à long terme. En fonction de votre budget, vous disposez de plusieurs options pour opter pour des ressources dédiées telles que des hôtes dédiés, des instances ou de la bande passante.

Il existe également de nombreuses offres et remises si vous prévoyez d'exécuter les instances pendant une période plus longue. Par exemple, en s'engageant sur l'instance de réserve AWS EC2, les utilisateurs peuvent économiser jusqu'à 70 % du coût de l'instance par rapport au coût à la demande standard. Une fois que les applications ou les charges de travail sont testées et prêtes pour la production, il est fortement recommandé d'opter pour un contrat à long terme à condition d'allouer suffisamment de ressources à l'instance pour cette période de contrat particulière.

Gestion de la bande passante

La bande passante coûte cher. Ce qui coûte cher, c'est l'infrastructure pour transporter la bande passante d'un endroit à un autre. La pose de la fibre, le matériel de routage de qualité opérateur et de qualité fournisseur, les frais généraux de surveillance et de maintenance pour que tout fonctionne, la location de la suite de centre de données, la dotation en personnel d'un ingénieur du centre d'exploitation réseau (NOC) 24h/24 et 7j/7, contribuent tous au prix élevé d'un bande passante fiable. Sans parler du rythme de la technologie, des demandes des utilisateurs et de la durée de vie des produits des fournisseurs, une grande partie de l'investissement ci-dessus est souvent gaspillée et le cycle de vie tous les 7 à 10 ans, dans certains cas 5 ans.

La plupart des fournisseurs de cloud public permettent l'échange de données avec d'autres fournisseurs de services cloud (CSP), ce qui est réalisable de plusieurs manières :

  • Transfert de données via des adresses IP publiques sur Internet.

  • Utilisation d'un service VPN géré entre le réseau sur site et le réseau CSP.

  • Connectez-vous directement à partir du réseau sur site ou des réseaux cloud privés avec l'autre CSP, comme Partner Interconnect for Google Cloud ou AWS Direct Connect pour AWS.

  • Transférer des données à l'autre CSP via un point de présence commun (POP).

  • Appairage de réseaux avec des réseaux cloud privés et le réseau CSP.

Ces options diffèrent en termes de vitesse de transfert, de latence, de fiabilité, d'accords de niveau de service (SLA), de complexité et de coûts. Quelles que soient les options, l'idée est la même :plus le transfert de données utilisé est petit, plus le coût est faible.

Pour réduire l'utilisation de la bande passante, la compression est la première chose que nous devrions faire. La plupart des services de réplication prennent désormais en charge la compression des connexions, ce qui peut réduire considérablement la taille du transfert de données entre plusieurs sites. Par exemple, l'activation de la compression de connexion pour MySQL maître-esclave peut facilement réduire l'utilisation de la bande passante à 1,5x, sans configuration supplémentaire sur le niveau de compression ou l'algorithme. C'est ce qu'on appelle la technique de compression de données sans perte. Vous pouvez définir un taux de compression encore plus élevé, avec un compromis de puissance de traitement pour la compression et la décompression sur les deux points de terminaison.

Le placement de la charge de travail est également important. Avec la configuration du cloud hybride, les applications et les charges de travail peuvent exister sur des clouds privés ou publics. Pour les applications internes, il est bien préférable de les placer dans le cloud privé plus près du local avec une latence réseau plus faible. Pour améliorer les performances des applications publiques, placez les applications sur les serveurs périphériques du réseau de distribution de contenu (CDN), ce qui réduira considérablement la charge du serveur principal pour gérer uniquement la demande dynamique et décharger la livraison de contenu statique sur plusieurs serveurs périphériques, géographiquement plus proche des utilisateurs finaux.

Cryptage plus rapide

Le chiffrement en transit et au repos est obligatoire dans une configuration de cloud hybride puisque nous ne possédons qu'une fraction de l'infrastructure. Nous ne voulons pas que des regards indiscrets regardent nos données pendant leur transmission, ou le risque de violation de données par vol ou par des tiers ayant un accès physique à nos données. En termes simples, chaque partie des données en mouvement ou des données non physiquement accessibles doit être cryptée, point final. Cependant, certains chiffrements de chiffrement peuvent compromettre la vitesse et les performances des charges de travail.

Une erreur courante consiste à supposer qu'un message chiffré à l'aide d'AES256 est plus difficile à déchiffrer que les mêmes informations protégées à l'aide d'AES128. Il est logique qu'une taille de clé plus grande introduit une plus grande complexité, mais comme pour tout système, les implémentations sont sujettes à des faiblesses. En supposant que nous parlions d'AES128 par rapport à AES256, il existe une faiblesse connue dans la fonction d'expansion de clé qui affecte AES256. Fondamentalement, la faiblesse réduit la complexité d'AES256 à celle inférieure à AES128.

Certains des outils de tunnel comme WireGuard sont bien connus pour leur cryptage plus rapide et assez simples à mettre en œuvre lors de la tunnellisation entre plusieurs sites. Cela fonctionne de la même manière que le cryptage SSH, en utilisant une approche de cryptographie asymétrique. Selon cette recherche, en moyenne, WireGuard est 58 % plus rapide qu'OpenVPN sur tous les sites testés. Un chiffrement plus rapide signifie moins de temps pour chiffrer et déchiffrer les données, ce qui permet d'augmenter considérablement les performances de vos échanges de données.

Si vous vous demandez comment configurer WireGuard VPN pour un environnement de cloud hybride, consultez cet article de blog, Déploiement multi-cloud pour la réplication MariaDB à l'aide de WireGuard.

Tout surveiller

Les environnements basés sur le cloud reposent sur un ensemble complexe de ressources et il est difficile d'identifier les problèmes de disponibilité et de performances qui affectent le plus les services métier. L'équipe d'exploitation doit être en mesure de surveiller de manière globale la santé des applications, y compris les composants d'infrastructure cloud associés.

L'amélioration des performances sur un cloud hybride ne peut se produire sans une large visibilité sur toutes les ressources à tout moment. Il est très important de collecter et d'échantillonner des ressources telles que l'utilisation des instances et du réseau, les performances des applications, l'expérience utilisateur, la latence et les fichiers journaux pour garantir que nous pouvons résoudre de manière proactive les problèmes de performances et de disponibilité avant qu'ils n'atteignent les utilisateurs finaux ou ne s'aggravent. Une mauvaise allocation des ressources se produira toujours dans un environnement de provisionnement médiocre, ce qui finira par entraîner une mauvaise planification des capacités et un gaspillage d'argent et de ressources.

La plupart des fournisseurs de cloud public proposent des services de surveillance approfondis, couvrant plusieurs couches et composants des services cloud souscrits. Cependant, la pièce manquante est généralement une unification de la surveillance entre différentes plates-formes, fournisseurs et environnements cloud. Des outils de surveillance tout-en-un open source comme Icinga, Nagios Core et Zabbix peuvent être configurés pour surveiller presque tout ce qui est impliqué dans un cloud hybride, en particulier les instances cloud, les réseaux, les services et les applications.

Dans le cas de la surveillance des performances des serveurs de base de données dans l'environnement de cloud hybride, les ressources suivantes peuvent être utiles :

  • Surveillance des performances de MariaDB dans un cloud hybride

  • Surveillance de PostgreSQL dans un environnement hybride