MongoDB sur Azure, le blog

  • Microsoft Windows Azure : se connecter au stockage

    Pour notre projet, nous allons donc soit utiliser le stockage local d’une instance Azure, soit passer par un VHD sur le service stockage (pour assurer dan ce deuxième cas la persistance des données entre deux redémarrage des instances).   Pour créer du stockage local, c’est assez simple : il suffit de déclarer dans la définition du service une entrée “Local Storage” suffisamment importante. Par Visual Studio, cela donne:     Dans le fichier de définition ServiceDefinition.csdef, cela donne : <WorkerRole name="MongoLocalRole" vmsize="Small">  <LocalResources>    <LocalStorage name="MongoDBStorage" cleanOnRoleRecycle="true" sizeInMB="5000" …
    Lire la suite

  • Microsoft Windows Azure : diagnostics

    Il existe de nombreuses possibilités pour le monitoring d’une application Azure, mais le minimum consiste à recueillir les informations de diagnostic pour pouvoir les consulter à distance (il est toujours possible pendant les phases de mise au point de ce connecter en Remote Desktop sur les instances de VM pour consulter localement ces informations…).   Comme le stockage local d’une VM Azure n’est pas sauvegardé lorsque la machine est arrêtée (recyclée, mise à jour…), toutes les logs doivent être redirigées vers le service stockage. La démarche est : - Souscrire à Azure et créer un compte de stockage, évidemment, - Dans le code du service indiquer vers quel compte les logs doivent …
    Lire la suite

  • MongoDB sur Azure, conception

    Sur la base de l’architecture que nous avons choisi pour MongoDB sur Azure, voici les éléments que nous prévoyons de développer :

    Un projet “Azure Helpers” pour encapsuler les principales fonctions d’Azure que nous allons utiliser. Cela concerne le stockage (le gestion du VHD), les diagnostics (la sauvegarde et la lecture des logs Azure) et les services pour les clients (notamment la découverte des instances MongoDB disponibles). Ce projet ne dépend que du SDK Azure. 

    Un projet “MongoDB Helpers” pour encapsuler et compléter quelques fonctions du driver MongoDB C# (commandes pour les replicasets …
    Lire la suite

  • Architecture MongoDB sur Azure

    Aujourd’hui, 10Gen a déjà proposé un exemple de déploiement de MongoDB sur Windows Azure. Malheureusement, tel que la configuration proposée n’est pas très utile pour la production, car elle ne comporte qu’une seul instance et ses performances sont limitées par la solution de stockage retenue.

     

    En attendant une proposition plus substantielle de leur part, nous avons donc décidé de mettre en place une architecture plus sophistiquée, répondant aux contraintes suivantes :

    - Possibilité de déployer un “replicaset” ou une seule machine de manière transparente, …
    Lire la suite

  • Microsoft Windows Azure en quelques mots

    Le documentation complète d’Azure se trouve forcément sur le site Windows Azure, mais je vais essayer de faire une très brève synthèse des éléments qui nous concernent pour le déploiement de MongoDB.   Une application Azure est appelée “hosted service”. Un service est en fait, grossièrement, un ensemble de machines virtuelles (VM) Windows Server qui font tourner des application Web .Net. Ces machines virtuelles sont créées à partir d’un modèle nommé “role” et sont appelées instances de ce rôle.   Donc on définit avec Visual Studio un fichier de configuration d’une VM (taille petite/moyenne/.., ports à ouvrir…) et une application (site web, web service, service Windows…) et on …
    Lire la suite

  • MongoDB en quelques mots

    Le documentation complète de MongoDB est disponible sur le site de MongoDB, évidemment. En quelques mots, il s'agit d'une base de données "NoSQL". Ce terme désigne (approximativement...) des systèmes de stockage où SQL est remplacé pour les requêtes par une API. Cette API permet d'ajouter, supprimer, rechercher des documents plus ou moins structurés dans le système de stockage. Les liens entre documents peuvent être explicités, mais la pratique de la jointure est exclue.   Dans le cas de MongoDB, les documents stockés sont (en gros) des documents JSON. La communication avec un serveur MongoDB utilise un protocole spécifique sur TCP. Ce protocole est encapsulé par une API dédiée pour …
    Lire la suite

  • Déployer MongoDB sur Microsoft Windows Azure

    Nous éditons chez Eureva un service de recherche d'images utilisé notamment pour notre appplication Blinkster. Depuis son lancement, ce service est conçu pour être déployé sur une infrastructure cloud computing car il se prête particulièrement à ce mode de fonctionnement : gros volumes de données, profil de consommation de ressources CPU très variable dans le temps, architecture web / web services, capacité de montée en charge par scale out...

    Notre service est développé sur la plate-forme Microsoft.Net (ASP.Net MVC 3 et WCF essentiellement) et nous utilisons pour le stockage des …
    Lire la suite