9
votes

STOCKAGE AZURE: STERING VS. production

Je veux conserver une mise en scène ainsi qu'un environnement de production à Azure. Chacun devrait avoir son propre stockage BLOB et son stockage SQL. Qu'est-ce que WOD soyez le meilleur moyen de y aller? Configurez une mise en scène et une production SQL Server ainsi que deux comptes de stockage BLOB?


1 commentaires

Consultez ma réponse à cette question similaire sur Stackoverflow: Stackoverflow .com / questions / 4328462 / ... Aussi, regardez le lien en bas pour l'entrée de blog que j'ai écrit sur la commutation entre les environnements htH


3 Réponses :


0
votes

Pas vraiment une réponse, mais j'avais besoin de plus de caractères que ceux autorisés dans les commentaires :)

Je traite également du même problème. Avoir des comptes de stockage et un serveur de base de données séparés est la voie à suivre, mais le défi consiste à choisir un compte de stockage / base de données approprié à partir de votre fichier de configuration, car vous pourriez déployer votre code dans l'environnement de mise en scène ou de production. La classe RoleInstance n'a pas le moyen de faire la distinction entre la mise en scène et la production.

Seule l'option que vous ne vous reste que d'appeler l'API de gestion de service et de déterminer quel compte de stockage / base de données à choisir. Ajoutez une complication de plus à cette équation est lorsque vous faites un échange VIP et tout à coup votre emplacement de stockage devient une fente de production (et inversement) et vous devez désormais basculer vos chaînes de compte de stockage / de base de données basées sur le nouvel environnement.

Je serais très intéressé à entendre ce que font les autres personnes.


1 commentaires

Eh bien, je n'utilise pas le prod et la mise en scène d'un seul service nuageux, mais j'ai créé deux services clouds un pour en direct et un pour tester.



13
votes

Voici comment je gère mes environnements de production / acceptation / test (note que je n'utilise pas le mot mise en scène ). Pour chaque environnement, je crée ce qui suit (selon le projet):

  • Service Cloud
  • compte de stockage
  • Server SQL Azure + Database
  • Appfabric (ACS, ...) Espace de noms
  • Machines virtuelles

    Alors supposons que j'ai une application appelée myApp , alors mes environnements ressembleraient à ceci:

    • production
      • Service Cloud: myApp-prod .cloupp.net
      • Compte de stockage: myApp-prod
      • SQL Azure Server contenant 1 base de données: MyApp
      • acceptation
        • Service Cloud: myApp-acce .cloupp.net
        • Compte de stockage: MyApp-ACCE
        • SQL AZURE Server contenant 1 base de données: myappacce
        • test
          • ...

            Ainsi, tous les environnements ont une version de l'application exécutée dans le logement de déploiement de production. Je n'utilise que la fente de déploiement de la stadification chaque fois que je veux faire un swap VIP pour mon environnement de production (notez la différence entre l'emplacement de déploiement de production et l'environnement de production).

            Il y a quelques avantages à cette approche où vous avez des composants dédiés (tels que des comptes de stockage) par environnement:

            • Il est facile de tester de nouvelles communiqués sans avoir un impact sur la demande réelle.
            • Vous pouvez avoir une sécurité différente par environnement (par exemple, tous les développeurs ont accès aux clés du compte de stockage de test)
            • Si vous testez votre application, vous pouvez travailler avec des URL réelles + SSL au lieu de cette URL longue et laid de stadification.
            • Il est facile de tester l'intégration avec ACS car chaque environnement aura son espace de noms dédié.
            • Utilisation de Visual Studio Vous pouvez facilement gérer les paramètres par environnement.
            • Et le dernier mais surtout, vous devez savoir que les objectifs d'évolutivité du stockage de Windows Azure s'appliquent au niveau de compte de stockage. Cela signifie que si vous utilisez un seul compte de stockage pour tous vos environnements, vous réduisez peut-être les performances de votre application en production, car vous effectuez des tests de stress sur l'application dans la mise en scène. Si vous utilisez un compte de stockage par environnement, vous n'aurez pas d'impact sur les autres environnements lorsque vous faites quelque chose.

1 commentaires

Cool, c'est ce que j'ai proposé aussi ... juste une petite douleur à la mise en place de tous ces services. Je vais devoir examiner comment script la création de ces services.



2
votes

Voici un guide étape par étape.

1) Vous avez besoin de la bibliothèque: microsoft.samples.windowsazure.servicemanagement Il existe un package Nuget intitulé "Bibliothèque de gestion de service Windows Azure" qui contient ceci. P> 2) Vous avez besoin de créer un X509Certificate2 et suivez les instructions énoncées ici. Assurez-vous de télécharger le fichier .cer que vous créez dans le magasin de certificats d'abonnement. Assurez-vous de télécharger une copie du fichier .pfx avec la clé privée du magasin de certificats de service de cloud. P>

créer et télécharger un certificat pour Windows Azure Management P>

http: // blogs.msdn.com/b/clouddeployments/archive/2010/05/12/making-Calls-a-the-Service-management-api-trome-a-service-running-in-windows-azure.aspx p>

3) Ces didacticiels brillent également sur ceci: vous devez avoir le point de terminaison de service défini. Je l'ai fait dans mon fichier APP.Config avec le suivant P>

 if (GetServerInstance.IsProductionEnvironment())
        {
           //Do work! I'm in production
        };


1 commentaires

Je constatera également que vous devez modifier le storélocation pour votre certificat à: localMachine si lorsque vous déployez et actuellement à tester. En outre, vous ne pourrez pas tester cela à 100% localement car l'émulateur SDK aura évidemment un déploiement différent de ce qui est dans le nuage.