Hébergez DotNetNuke dans Windows Azure
déc.
13
Par :
Cyril Plassard
13/12/2011 18:10
Inutile de faire un roman sur les enjeux et les forces du cloud computing, ce n'est pas le but de cet article et je pense que chacun de vous est maintenant convaincu.
L'objectif est plutôt de vous montrer pas à pas, comment, en bien moins de temps qu'il m'a fallu pour écrire cet article, vous pourrez héberger DotNetNuke sur la plateforme Windows Azure.
Cet article s'est appuyé sur les travaux initiés par Joe Brinkman, Bruce Chapman et David Rodriguez
Pré-requis
Architecture cible
La figure ci-dessous vous présente l'architecture de notre plateforme DotNetNuke telle que nous allons la mettre en oeuvre dans la suite de cet article.

crédit : David Rodriguez
Etape 1 - Accéder au portail de gestion Windows Azure
C'est l'outil essentiel pour permettre de manager intégralement votre infrastructure virtuelle.
Développée en Silverlight, son interface est claire, intuitive et disponible en français !

Il vous suffit d'utiliser votre LiveID pour souscrire à un abonnement à la plateforme windows.azure.com (et de votre numéro de CB !).
Etape 2 - Créer un compte de stockage
Ce compte de stockage hébergera les packages permettant l'installation de DotNetNuke.

Une fois le compte de stockage créé, celui-ci devrait apparaître dans la liste de vos comptes.

Etape 3 - Créer un serveur SQL
Dans la section base de données, il vous faut maintenant créer un nouveau serveur SQL Server.
C'est ce serveur qui hébergera votre base de données DotNetNuke.
Après avoir renseigné les informations d'identification du compte admin (sa) du serveur et avoir validé sa création, ce dernier devrait maintenant apparaître dans la liste.


Il reste maintenant à modifier les règles de firewall pour que les services Windows Azure puissent accéder au serveur.
Je vous conseille également d'autoriser votre adresse IP pour pouvoir accéder à votre base depuis votre poste de développement.
Etape 4 - DotNetNuke Azure Accelerator Wizard
Cet accélérateur va vous permettre d'automatiser l'ensemble des taches de déploiements de DotNetNuke vers Azure de manière très (trop ?) simple. Je vous conseille d'ailleurs de télécharger son code source pour bien comprendre son fonctionnement.

4.1 - Base de données
Le premier écran vous demande de renseigner les paramètres de connexion au serveur de base de données que vous avez déployé précédemment. C'est également ici que vous définirez le nom de la base qui sera utilisée par DotNetNuke ainsi que son utilisateur associé.
Si vous avez autorisé votre IP dans les paramètres du firewall du serveur, vous allez pouvoir tester vos paramètres de connexion.

4.2 Stockage / Bindings
Vous allez maintenant devoir renseigner les paramètres d'accès au serveur de stockage.
Pour obtenir la clé d’authentification, il vous suffit d'afficher la clé d'accès primaire du compte de stockage que vous avez créé précédemment depuis le portail de gestion Azure.
Renseignez également l'URL qui sera utilisée par votre application.
Si vous avez effectué les bonnes redirections DNS, vous pourrez indiquer l'adresse de votre site web cible (ex. www.tangane.com).

4.3 Remote Desktop
Dans cette étape, vous allez pouvoir créer le certificat qui vous permettra d'accéder à vos VM en RDP.
Vous allez donc devoir créer un certificat et un compte utilisateur pour la connexion.
Ce certificat au format X.509 sera enregistré à la racine du projet DotNetNuke Azure Accelerator.
Il vous faudra ensuite l'importer de manière classique sur votre machine locale, puis l'exporter en PKCS #12 (avec la clé privée).

4.4 Réseau virtuel
L'activation de Windows Azure Connect va vous permettre d'accéder à vos instances "cloud" depuis vos ordinateurs "on-premise".
Pour quoi faire ? Pour par exemple procéder à une mise à jour de DotNetNuke ou modifier une css en accédant directement au disque virtuel qui l'héberge.
Pour ce faire, vous devez fournir un jeton d'activation que vous allez pouvoir récupérer dans la section "Réseau Virtuel" du portail de gestion Azure.


4.5 Choix du package
L'accélérateur vous propose 3 types de packages que vous pouvez uploader.
Les 2 premiers packages vont vous permettre de déployer l'ensemble des fichiers de DotNetNuke sur un seul et unique rôle (web).
Le dernier package est celui que nous allons utiliser.
Il permet de créer un rôle DNNAzure (web role) qui fera office de serveur web frontal et un rôle SMBAzure (worker role) qui, comme son nom l'indique, agira comme serveur SMB pour héberger l'ensemble des fichiers de l'application. Vous allez donc vous retrouver dans une configuration webfarm "classique".
Vous pourrez également dans cet écran, modifier les paramètres de dimensionnement du disque VHD qui sera utilisé.

4.6 - Upload
Il est maintenant possible de démarrer la phase de configuration et d'upload des packages à déployer sur Azure.


Etape 5 - Déploiement de la solution
De retour sur le portail de gestion Azure, nous allons maintenant procéder au déploiement des packages que nous avons chargés précédemment.
Notez que la base de données qui hébergera DotNetNuke a été créée par l'accélérateur.
Dans la section "Services Hébergés" vous devez maintenant créer un nouveau service.
Renseignez les paramètres de base (nom du service, URL, localisation de vos instances) et indiquez l'emplacement des packages de déploiement et de configuration situés sur votre compte de stockage.

Téléchargez le certificat que nous avons exporté dans la phase 4.3.

Il faut maintenant quelques minutes pour que les rôles de votre service soient créés, soyez patient...
Si tout s'est déroulé correctement, vous devriez maintenant pouvoir accéder aux deux rôles (web et smb).
Etant donné que vous avez activé le mode RDP, rien de plus simple que d'aller jeter un oeil à vos VM !

Et maintenant ?
Démarrez votre navigateur préféré et connectez-vous sur l'URL que vous avez définie pour votre site.
Sans surprise, DotNetNuke va maintenant procéder à son installation standard.
Il ne reste plus qu'à choisir la méthode Automatique pour que votre portail soit 100% opérationnel.
Bien évidemment vous pouvez choisir une autre méthode.
La suite, reste du DotNetNuke classique...

Le résultat est visible sur http://tangane-dotnetnuke-demo.cloudapp.net
-> Edition du 19 décembre 2011 : il n'aura fallu que quelques jours pour que notre compte Azure ait dépassé sa limite d'usage (3 mois gratuits, oui mais sans qu'il n'y ait de visiteurs...). Le site de démonstration n'est donc plus disponible...
Conclusion
Le déploiement de DotNetNuke sur Azure a été largement facilité par l'accélérateur DotNetNuke Azure Accelerator.
Mes premiers tests se sont révélés plutôt concluants. D'après certains retours, quelques modules tiers se montrent récalcitrants. Les problèmes rencontrés se situeraient au niveau de la base de données lors de l'installation de ces modules.
Il existe cependant un point important qui empêche de profiter pleinement des possibilités de haute disponibilité qu'offre le cloud et Azure.
S'il est possible de multiplier le rôle web, le rôle SMB est pour le moment limité à une seule instance.
Je sais que les équipes de DotNetNuke travaillent actuellement sur ce sujet. Le projet DotNetNuke Azure Accelerator a d'ailleurs été repris officiellement par Corp.
Copyright © 2011 Tangane