MySQL est l'une des bases de données relationnelles Open Source les plus populaires au monde. L'une des raisons de sa popularité réside dans la possibilité d'héberger et de gérer la base de données de nombreuses façons, conformément aux exigences de la charge de travail de l'utilisateur. L'utilisateur peut choisir de gérer la base de données de sorte qu'elle soit autogérée sur site, autogérée dans des machines virtuelles dans le cloud, ou bénéficier de l'offre entièrement gérée d'un fournisseur de services cloud. Cet article porte sur l'option MySQL autogérée et la solution entièrement gérée, Cloud SQL pour MySQL, fournies par Google Cloud. Nous vous présenterons ensuite les avantages et les inconvénients de chaque option.
L’option MySQL autogérée signifie que l’utilisateur, dans la plupart des cas un administrateur de base de données, est responsable de la plupart des activités impliquées dans la configuration, l’installation et la maintenance de la base de données, du système d’exploitation (OS), de la mise en réseau, du stockage, de l'instance de machine virtuelle (VM) et du matériel qui héberge l'instance de base de données et le serveur. Certaines de ces tâches, comme celles liées au matériel, aux instances de VM, au stockage, à la mise en réseau et au système d'exploitation, peuvent être réalisées plus facilement en faisant appel à un fournisseur de services cloud tel que Google Cloud. Qu'un utilisateur gère lui-même une base de données sur site ou dans le cloud, il est responsable de certaines tâches majeures de gestion de base de données nécessaires au bon fonctionnement du système. Ces tâches sont répertoriées ci-dessous.
Le schéma ci-dessous montre la responsabilité de l'utilisateur lorsqu'il opte pour la configuration autogérée. Même si l'autogestion sur Google Cloud réduit certaines tâches liées au matériel, au calcul, à la mise en réseau et au stockage, les responsabilités liées à la gestion des couches restantes de la pile relèvent de la responsabilité de l'utilisateur. L'administrateur de la base de données et le développeur d'applications doivent encore consacrer suffisamment de temps, d'énergie et de ressources à gérer MySQL.
Cloud SQL est un service de base de données entièrement géré qui facilite la configuration, la maintenance, la gestion et l'administration des bases de données MySQL, PostgreSQL et SQL Server sur Google Cloud. Cloud SQL gère tous les aspects du matériel, de la mise en réseau, du système d'exploitation, de la sécurité, de la surveillance, de la maintenance, de la disponibilité et du scaling de la base de données MySQL. Toutes ces responsabilités ne sont pas visibles par les utilisateurs, ce qui leur permet de se concentrer sur le développement d'applications et la création de valeur pour leurs clients.
Le schéma ci-dessous est semblable au schéma ci-dessus, qui montre les tâches de gestion des différentes couches de la base de données MySQL. La seule différence est que toutes les tâches gérées par Cloud SQL pour le compte de l'utilisateur apparaissent en bleu.
Outre la gestion des nombreuses tâches illustrées ci-dessus, Cloud SQL offre diverses fonctionnalités et solutions qui ne sont pas disponibles de manière native dans un environnement autogéré. Voici quelques-unes des principales fonctionnalités proposées par Cloud SQL.
Fiabilité : la sauvegarde et la récupération sont les activités les plus importantes de la gestion de bases de données. Cloud SQL propose des sauvegardes automatiques et des sauvegardes à la demande, qui permettent de restaurer la base de données à un moment précis en cas de corruption, de sinistre ou de modification accidentelle des données.
Disponibilité : Cloud SQL offre une haute disponibilité en instanciant plusieurs serveurs hébergeant la base de données sur plusieurs zones, avec une capacité de basculement automatisée pour fournir la disponibilité en cas de défaillance d'une VM ou d'un centre de données. Cloud SQL garantit une disponibilité de plus de 99,95 % partout dans le monde.
Outre la fonctionnalité de haute disponibilité, Cloud SQL propose également une équipe d'ingénierie en fiabilité des sites (SRE, Site Reliability Engineering) 24h/24 et 7j/7 qui est chargée de garantir la fiabilité des instances de base de données Cloud SQL pour MySQL sur Google Cloud.
Les instances répliquées interrégionales avec accès en lecture constituent une autre fonctionnalité qui peut être utilisée en tant que mécanisme de reprise après sinistre en cas de défaillance. Cette fonctionnalité permet à un utilisateur d'afficher rapidement la base de données concernée sur un autre site (région) avec un impact minimal sur l'entreprise.
Évolutivité : Cloud SQL permet de créer des instances répliquées avec accès en lecture MySQL, telles que des instances supplémentaires en lecture seule de MySQL, dans la même région ou dans des régions distantes permettant le traitement des requêtes des instances répliquées et de l'instance principale, améliorant ainsi les performances de lecture. Les instances répliquées avec accès en lecture peuvent également servir à des fins de reporting et peuvent être détruites lorsque les besoins de l'entreprise sont satisfaits.
Cloud SQL permet le scaling à la hausse des ressources (processeur, mémoire et espace de stockage) et le scaling à la baisse des ressources de l'instance MySQL avec un temps d'arrêt très court. Alors que dans le cas d'une configuration autogérée, ces activités complexes nécessitent d'important efforts, de l'expertise et une planification.
Sécurité : les serveurs de base de données Cloud SQL pour MySQL sont situés dans les centres de données sécurisés de Google Cloud et offrent le plus haut niveau de sécurité possible. De plus, Google Cloud offre une connectivité privée avec le cloud privé virtuel, ainsi qu'un accès réseau contrôlé par l'utilisateur grâce à une protection par pare-feu, ce qui garantit que les serveurs de base de données des utilisateurs sont hors de portée des acteurs malveillants.
Un autre aspect de la sécurité est la conformité aux réglementations de sécurité. Cloud SQL est conforme à de nombreuses réglementations reconnues, telles que SSAE 16, ISO 27001, PCI DSS et HIPAA.
Cloud SQL offre la possibilité de gérer les utilisateurs et leur accès à la base de données grâce à l'intégration IAM. Cette intégration gère les autorisations et l'authentification pour les utilisateurs de Google Cloud, et fournit un accès précis à des ressources spécifiques de Google Cloud, empêchant ainsi tout accès non autorisé à la base de données. De plus, Cloud SQL facilite le contrôle des identités et des accès en fournissant des rôles prédéfinis conçus pour contrôler l'accès à vos ressources Cloud SQL.
Autre fonctionnalité de sécurité de Cloud SQL : le chiffrement des données au repos et en transit, qui garantit qu'aucun utilisateur non autorisé ne pourra accéder aux données utilisateur.
Cloud SQL propose une fonctionnalité de validation des mots de passe pour les utilisateurs de base de données. Elle permet aux clients de définir des règles concernant la complexité et la longueur minimale des mots de passe, l'intervalle de modification des mots de passe et l'utilisation du nom d'utilisateur dans le mot de passe au niveau de l'instance. Les clients peuvent également définir des règles pour le nombre de jours d'expiration des mots de passe, le nombre de tentatives infructueuses et les anciennes exigences de changement de mot de passe au niveau de chaque utilisateur. Ces fonctionnalités de Cloud SQL respectent les bonnes pratiques en matière de conformité en matière de sécurité et réduisent le risque d'accès non autorisé aux données critiques.
Cloud SQL permet également d'auditer les actions et les opérations exécutées sur la base de données MySQL à l'aide d'un plug-in de journal d'audit. Le journal d'audit fournit des renseignements sur les actions effectuées, les objets concernés ainsi que les moments où elles ont été effectuées et par qui. L'audit de base de données vous permet de suivre des actions spécifiques des utilisateurs dans la base de données, telles que des mises à jour de table, des requêtes de lecture, des attributions de droits d'utilisateur, etc.
Observabilité : Cloud SQL propose diverses solutions de surveillance et une liste croissante de métriques prêtes à l'emploi, qui fournissent des insights sur l'état de la base de données. Les utilisateurs peuvent se servir de ces métriques pour créer des alertes afin d'informer les administrateurs de l'état de la base de données.
Cloud SQL fournit également des fonctionnalités telles que les insights sur les requêtes et les outils de recommandation, qui permettent aux utilisateurs de résoudre et d'identifier les goulots d'étranglement d'une requête ou d'une charge de travail. Ces fonctionnalités sont difficiles à répliquer dans un environnement MySQL autogéré.
Intégration : Cloud SQL facilite la connectivité réseau et s'intègre à d'autres services de Google Cloud tels que Google Kubernetes Engine, Compute Engine et Cloud Run, qui simplifient le développement de solutions parfaitement intégrées. Cloud SQL offre également une intégration native avec BigQuery et Looker, qui peuvent être utilisées pour le traitement analytique des données présentes dans Cloud SQL.
Application de correctifs : en tant que service géré, Cloud SQL met automatiquement à jour les instances afin de garantir que le matériel et le système d'exploitation sous-jacents sont fiables, performants, sécurisés et à jour. La plupart de ces mises à jour sont effectuées tant que votre instance Cloud SQL est opérationnelle. Cependant, certaines mises à jour du système peuvent nécessiter une brève interruption du service pendant laquelle les utilisateurs peuvent définir des intervalles de maintenance pour l'activité de mise à niveau.
Mises à niveau de versions : Cloud SQL fournit également un processus automatisé de mise à niveau de la version (MySQL) de la base de données. Les utilisateurs peuvent également mettre à niveau la version majeure en migrant les données vers une instance de version supérieure.
Avantages
Inconvénients
Avantages
Inconvénients
Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.