Dans ce troisième blog, je vais explorer les bases de données sur Microsoft Azure. La plateforme nous laisse un large choix d'options adaptées à différents besoins. Il existe des bases de données relationnelles, du NoSQL ou des solutions entièrement managées.
MySQL dans Azure
Dans ce blog, je vais utiliser MySQL, un système que je maîtrise bien. Alors, pour commencer, il faut trouver le service Azure Database for MySQL dans Azure. Une fois trouvé, on peut commencer à le créer. On vous demandera de choisir la taille et la charge de travail pour lesquelles la base de données sera utilisée. Plus vous choisissez une grande taille, plus cela vous coûtera cher. Bien sûr, je ne fais que l'essayer, donc je vais opter pour la quantité la plus faible. Bref, on vous laisse choisir le nom de l'hôte, le nom de l'admin, le mot de passe, etc.

Ces informations sont importantes car nous devrons les utiliser plus tard pour nous connecter à MySQL. Une fois créées, nous devons autoriser le pare-feu d'Azure à laisser passer notre adresse IP pour accéder à la base de données.

Maintenant, nous pouvons établir la connexion à MySQL en cliquant sur le bouton "plus" et en entrant les informations comme le nom de l'hôte, le nom de l'admin et le mot de passe. Nous pourrons ainsi nous connecter et voir notre base de données.
Les difficultés que j'ai rencontrées
Durant mon processus de connectivité, j'ai eu des difficultés à utiliser mon application cobaye pour faire le test. Lorsque nous créions des bases de données pour une utilisation locale, nous ne mettions pas vraiment de couches de sécurité, ce qui est contraire à ce qu'Azure nous exige. Premièrement, lorsque j'ai créé la base de données, j'avais mis le nom d'administrateur "root", et Azure n'a pas aimé cela et ne m'a pas permis de déployer la base de données. Ensuite, lorsque je tentais la connexion entre mon application et la base de données, je n'avais pas activé le protocole SSL, ce qui m'a empêché de me connecter à la base de données. Le protocole SSL est un standard de sécurité utilisé pour établir une connexion cryptée et sécurisée entre un serveur et un client. SSL garantit que toutes les données transmises entre le client et le serveur restent privées et intactes. J'aurais pu désactiver le protocole SSL dans Azure, mais cela est fortement déconseillé. La sécurisation de la base de données a été pas mal la seule difficulté que j'ai rencontrée.
Du NoSQL dans Azure
Cosmos DB est un service de base de données NoSQL entièrement managé par Microsoft Azure. Il a été créé pour être globalement distribué. Il a une faible latence et une scalabilité horizontale automatique. Contrairement à une scalabilité verticale, qui consiste à augmenter les ressources d'un serveur existant, comme la mémoire RAM ou la puissance du processeur, la scalabilité horizontale consiste à ajouter de nouveaux serveurs pour mieux répartir la charge de travail. Cosmos DB utilise des modèles de données flexibles comme des documents, des paires clé-valeur, des colonnes et des graphes.
Voici un exemple d'un document Cosmos DB:

Les avantages de Cosmos BD
Distribution mondiale et haute disponibilité
- Haute disponibilité garantie jusqu'à 99,999 % en lecture et 99,99 % en écriture.
- Basculement automatique en cas de panne.
Faible latence et performances élevées
- Temps de réponse inférieur à 10 ms en lecture et en écriture.
- Indexation automatique des données pour optimiser les requêtes.
Scalabilité automatique et flexible
- Pas de limites de stockage : s'adapte automatiquement aux besoins.
Les avantages de MySQL dans Azure
Scalabilité flexible
- Scalabilité verticale : augmentation des ressources (CPU, RAM) à la demande.
- Possibilité d’ajouter des réplicas en lecture pour améliorer les performances.
Intégration avec l’écosystème Azure
- Compatible avec Azure Functions, Logic Apps et Power BI.
- Monitoring et alertes via Azure Monitor pour optimiser la gestion des bases.
Sécurité avancée
- Chiffrement des données en transit et au repos.
- Gestion des accès avec Azure Active Directory (AAD) et pare-feu intégré.
Conclusion
Nous avons exploré deux solutions de bases de données, Microsoft Azure : MySQL et Cosmos DB. Chacune d’elles offre des avantages uniques en fonction des besoins de votre projet. Si vous avez besoin d'une base de données relationnelle structurée avec une scalabilité verticale, MySQL sur Azure est une option robuste. D'un autre côté, Cosmos DB se distingue par sa capacité à gérer de grandes quantités de données non structurées avec une scalabilité horizontale, une faible latence et une haute disponibilité mondiale. Le choix entre ces deux solutions dépendra de la nature de votre application et de vos exigences en termes de performance, de sécurité et de distribution.
Références
-
La création de MySQL sur Azure: https://www.youtube.com/watch?v=O6tlkpFmZds&t=626s&ab_channel=AMonkinCloud%E2%98%81%EF%B8%8F
-
explication du protocole SSL: https://www.pandasecurity.com/fr/mediacenter/ssl-comment-il-fonctionne/
-
NoSQL dans Azure: https://learn.microsoft.com/fr-fr/azure/cosmos-db/introduction
-
Avantages de Cosmos BD: https://learn.microsoft.com/fr-fr/azure/cosmos-db/use-cases
-
Avantages de MySQL dans Azure: https://azure.microsoft.com/fr-fr/products/mysql/ https://learn.microsoft.com/fr-fr/azure/mysql/
Commentaires