Question

Je recherche des informations sur Windows Azure afin de décider de passer ou non à Azure.

Informations de base
Pour répondre à la question, vous aurez besoin d'une compréhension de base de mon application, alors voici.

L'application est une application ASP.NET MVC 3 qui se connecte à une base de données SQL Server.

Il s'agit d'une application à instance unique, ce qui signifie que chaque client a finalement sa propre instance de l'application en cours d'exécution sur notre serveur, déployée sur IIS 7 en tant que site Web.

J'ai un serveur SQL Server, où chaque instance a sa propre base de données.

J'ai également un ensemble de services Windows pour effectuer des traitements en arrière-plan. Cela devrait être simple, car je vais simplement les réécrire pour utiliser un rôle de travail dans Windows Azure - la plupart de la logique des services se trouve de toute façon dans leur propre classe (bibliothèque), de sorte que le service lui-même appelle simplement un ou plusieurs méthodes dans une classe.

Passons maintenant à la question
Chaque fois que quelqu'un s'inscrit pour un essai gratuit, j'ajoute un enregistrement à une base de données d'administration dont je dispose.

J'ai alors un service Windows qui déploie une nouvelle instance de l'application ASP.NET MVC 3 sur IIS, accorde l'autorisation à quelques dossiers, exécute le script de déploiement de base de données et met à jour l'enregistrement pour indiquer qu'il a maintenant été déployé, et envoie enfin un e-mail au prospect lui indiquant que son essai gratuit a été créé - voici comment y accéder.

Alors, comment puis-je déployer une nouvelle instance dans Windows Azure à partir d'un rôle de travail? De préférence, je voudrais simplement ajouter un nouveau site Web à une instance Azure existante et créer une nouvelle base de données SQL Azure pour ce site particulier à utiliser.

La configuration nécessite-t-elle beaucoup de travail? Est-ce même possible?

Était-ce utile?

La solution

Sur la base de deux citations, je voudrais suggérer d'appeler cette application multi-locataire:

Il s'agit d'une application à instance unique, ce qui signifie que chaque client a finalement sa propre instance de l'application en cours d'exécution sur notre serveur,

Et ...

un service Windows qui déploie une nouvelle instance de l'application ASP.NET MVC 3 sur IIS, accorde l'autorisation à quelques dossiers

Si je comprends bien, il y a "un" serveur IIS (enfin, dans Windows Azure, c'est un rôle Web, évolutif à plusieurs instances), et avec chaque nouveau "locataire", vous configurez de nouveaux éléments pour prendre en charge cela locataire.

Si c'est effectivement le cas, vous pouvez certainement le faire à partir d'un rôle de travailleur - il suffit de regarder les blog de rôle Web multi-locataire et code associé. Regardez le code webdeploy qui manipule réellement IIS.

Plus loin: jetez un œil à Cloud Ninja , un projet que quelques-uns de mes coéquipiers ont publié avec Fullscale180. Il s'agit d'une application multi-locataires qui montre comment gérer plusieurs clients en un seul déploiement, ainsi que la surveillance et la mise à l'échelle.

Enfin: si vous devez créer de nouveaux hôtes de service et comptes de stockage, les dernières mises à jour de la Windows Azure Management API prend en charge cela. J'espère que cela aide un peu ...

Autres conseils

Je pense que la plupart des choses que vous voulez réaliser sont possibles.

La configuration nécessitera certainement un peu de travail!

Pour obtenir des idées sur la manière de réaliser ce que vous recherchez, jetez un œil à l'exemple MS SaaS - http://www.fabrikamshipping.com/ - spécialement conçu pour le portage d'applications existantes vers SaaS sur Azure.Dans cette application, ils ont un "processus d'intégration" - et ce processus comprend la configuration de nouvelles connexions SQL et de nouveaux portails.

Il y a beaucoup de bons blogs (regardez la vidéo) à ce sujet sur http://blogs.msdn.com/b/vbertocci/archive/2010/10/07/new-online-demo-introducing-fabrikamshipping-saas.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top