Cet article a fait l'objet d'une traduction automatique.

Nuage d'ordinateur

Modèles de haute disponibilité, l'évolutivité et l'alimentation par Windows Azure d'ordinateur

Joshy Joseph

Téléchargement de code disponible de la bibliothèque de code MSDN
Parcourir le code en ligne

Cet article est basé sur une version bêta de Windows Azure. Détails sont soumis aux modifications.

Cet article présente :

  • Nuage architecture informatique
  • Azure Windows
  • Nuage motifs et méthodes recommandées
Cet article utilise les technologies suivantes :
Azure Windows

Contenu

Nuage d'ordinateur
Windows implémentation Azure
Nuage application types et modèles
Un exemple de Real-World
Conception d'application et développement
Déploiement du service
Administration
Conclusion

au cours de la dernière de dix ans , le découplage d'interfaces d'implémentation, évolutive héberger modèles, l'orientation service, informatique en fonction de souscription et collaboration sociale accrue est devenu les objectifs de systèmes distribués. Maintenant, hébergée sur Internet applications distribuées avec connectivité aux applications internes, appelée souvent des logiciels et services (S + S), sont en popularité. Les organisations sont exploiter des centres de données hébergées par des tiers pour atténuer les problèmes sur les matériels, logiciels, fiabilité et évolutivité. Voici juste quelques de la nouvelle architecture des tendances qui vous aider à créer des applications interopérables échelle, réduire les dépenses de capital et améliorer la fiabilité. Nuage informatique offre la plupart des ces avantages.

Une plate-forme informatique nuage permet aux applications être hébergé dans un environnement virtuel accessibles sur Internet qui fournit les capacités de matériel, logiciel, réseau et stockage nécessaires et assure la sécurité et de supprimer une grande partie de la charge des achats et la gestion matérielle et logicielle interne, fiabilité. Dans le nuage, vous pouvez développer, déployer et gérer des applications que vous avez dans le passé et intégrer ces services à vos applications en principe. Vous ne payez que pour la période, ressources, et doit vous utiliser lors de l'évolutivité pour l'entreprise de modification de capacité.

Dans cet article, J'AI examinera l'architecture de plate-forme nuage standard et certains modèles architecturaux communs, ainsi que leur implémentation sur la Azure Windows offre de Microsoft.

Nuage d'ordinateur

La figure 1 illustre le nuage typique informatique architecture de plate-forme.

fig01.gif

Figure 1 en couche d'architecture d'une plate-forme de nuage (cliquez sur l'image pour l'agrandir)

Dans ce modèle, chaque couche analyse la couche au-dessous de lui, exposition des interfaces adopter couches ci-dessus. Il y n'a aucune dépendance matérielle entre calques et chaque couche fournit composable ou branchez et lire architecture avec les services des autres couches. Chaque couche fournit l'évolutivité horizontale selon vos besoins.

Comme vous pouvez le voir, une plate-forme de nuage est composée d'un certain nombre de sous-systèmes. Examinons ensuite chacun d'eux.

Une plate-forme d'hébergement la plate-forme d'hébergement fournit les physique, virtuel et les ressources logicielles. Ces éléments incluent les machines physiques, systèmes d'exploitation, systèmes réseau, systèmes de stockage, gestion de l'alimentation et logiciel de virtualisation. Métal simple et autres ressources opérationnelles déduites comme ressources virtuels dans les couches au-dessus.

Services d'infrastructure que la fonction plus importante de cette couche est abstraite la plate-forme d'hébergement comme un ensemble de ressources virtuelles et gérer ces ressources selon les besoins de l'évolutivité et la disponibilité du nuage. Fondamentalement, cette couche fournit trois types de ressources abstraites : calculer, stockage et réseau et les expose un ensemble d'API pour accéder et de gérer ces abstractions de ressource. Ainsi accéder les ressources physiques sous-jacents sans connaître les détails du matériel et logiciel sous-jacent et peut contrôler ces systèmes efficacement via la configuration. Services proposés par ce sous-système sont souvent appelés infrastructure en tant que service (IaaS).

Plate-forme nuage services de développement et gestion de logiciel de nuage informatique est complexe. Il devient très complexe lorsque vous intégrez logiciel principe avec les services hébergés. Services de plate-forme offrent un ensemble de fonctionnalités exposées en tant que services à l'aide tel Intégration. Par exemple, dans la plate-forme de services Azure, bus de service Microsoft .NET permet découverte et d'accès et le service de contrôle d'accès Microsoft .NET basées rôle et règle transformation des déclarations et le mappage. Disponibilité des services de plate-forme peut différencier un nuage fournisseur d'un autre. Services fournis par cette couche sont appelés plate-forme en tant que service (PaaS).

Cette couche héberge des applications qui sont conçues pour les applications nuage nuage informatique. Ces applications exposent des interfaces Web et les services Web des utilisateurs finaux, l'activation de modèles d'hébergement multitenant. Certaines fonctions comprennent connecter des systèmes disparates et exploiter l'infrastructure de stockage nuage pour stocker des documents. Ces services relèvent de l'éventail de logiciels en tant que service (SaaS).

Services de sécurité services de sécurité Assurez-vous création jeton, fédération d'identité, transformation des déclarations. Ces services sont créés sur les normes ouvertes, WS-Security, WS-Trust, WS-Federation, SAML protocoles et OpenID, pour l'interopérabilité supérieure.

Gestion des services de gestion des interfaces couper entre toutes les couches décrites ci-dessus. La plate-forme d'hébergement exploite les interfaces de gestion et les agents pour l'évolutivité automatisée et administration de disponibilité. Même si le nuage est hébergé et géré dans un centre de données, les clients devrez fonctions qui les autoriser à facilement contrôler leur application et valider les configurations de déploiement, obtenir analyse sur l'utilisation du service et se connecter à leurs systèmes de gestion d'entreprise.

Outils Outils vous aider à créer, tester et déployer des applications dans le nuage. Ces outils peuvent être des extensions à des outils existants (Visual Studio Tools pour Windows Azure, par exemple) ou hébergé outils d'un fournisseur de nuage spécifique.

Les utilisateurs et les fournisseurs de nuage informatique il existe trois catégories d'utilisateurs dans nuage informatique : nuage plate-forme fournisseurs, nuage consommateurs et les utilisateurs. Nuage plate-forme fournisseurs fournissent les services d'hébergement d'infrastructure de plate-forme et nuage. Les consommateurs de nuage utilisent la plate-forme de nuage et développement des applications et services devant être consommée par les utilisateurs finaux. Nuage consommateurs configurer des applications pour les besoins de l'évolutivité, disponibilité et la sécurité. Les utilisateurs finaux d'exploiter les services offerts par les consommateurs de nuage. Ces utilisateurs peuvent être humain, organisation ou ordinateur et peuvent être hébergés.

Dans ce contexte, Azure fournit une plate-forme nuage tandis que les consommateurs de nuage (ou fil création intégrée nuage solutions ou aux entreprises) exploiter cette plate-forme pour créer des applications. Par exemple la plate-forme de synchronisation de données Live maille exploite la Azure Services de plate-forme et Azure Windows de développer et services ordinateur hôte S+S pour les utilisateurs finaux.

la figure 2 mappe la plate-forme Azure services à l'architecture en couches de la figure 1 . Cette plateforme fournit un ensemble de services pour les développeurs d'applications. Ces services peuvent être utilisés à la fois par applications s'exécutant dans le nuage et par les applications s'exécutant sur des systèmes locaux. Windows Azure, système d'exploitation pour le nuage est la base de nuage plate-forme Microsoft d'offre. Comme le montre la figure 2 , Azure services plate-forme fournit un ensemble de services partagés : services de données SQL, les services .NET et les services Live, qui peuvent être utilisés individuellement ou collectivement. Microsoft offre également plusieurs applications nuage terminé notamment Exchange en ligne, SharePoint en ligne et CRM en ligne. Ici, toutefois, J'AI concentrerai sur seulement système d'exploitation Windows Azure et modèles associés.

fig02.gif

La figure 2 Azure Platform Services associée à en couche Architecture

Windows implémentation Azure

Windows Azure fournit à la demande calcul et des capacités de stockage à ordinateur hôte, échelle et gérer des applications Web et services sur Internet hébergés dans des centres de données Microsoft.

Azure Windows offre des fonctionnalités qui nécessitent des consommateurs de services de nuage. Par exemple, les ressources de matériel physique sont disparaît et exposés comme calculer ressources prêts à être consommés par les applications nuage. Stockage physique est déduite avec les ressources de stockage et exposée via des interfaces de stockage bien définie. Une structure Windows courants fait abstraction de la plate-forme matérielle et logicielle physique et expose virtualisés ressources calcul et de stockage. En outre, chaque instance de l'application est contrôlé par disponibilité et l'évolutivité et gérée automatiquement. Par exemple, si une application dans une instance tombe en panne, le contrôleur du tissu (illustré figure 3 ) est notifié et une autre instance dans une autre machine virtuelle (VM) sera instanciée avec impact limité aux utilisateurs finaux. Raison de la quantité de la virtualisation, lorsque vous écrivez votre code, vous devez vous assurer que vous ne pas effectuer d'hypothèse sur l'état de l'ordinateur qui héberge votre application. Dans Windows Azure votre service peut facilement être déplacé vers un nouvel ordinateur virtuel. Windows Azure suit un modèle de gestion service de base de modèles avec Azure tissu contrôleur responsable mappage spécifications de service déclaratives sur les ressources disponibles et de gérer le cycle de vie des services.

fig03.gif

La figure 3 Windows Azure et rôles

Par défaut la plupart des applications développées dans .NET peut être hébergée dans Azure avec certaines restrictions sur les modèles de confiance partielle, stockage de données/accès et communications inter-application spécifiques. Un développeur enrichi Kit de développement logiciel (SDK) et les outils de programmation vous permettent d'obtenir orienté vers cette plate-forme.

Droite maintenant vous pouvez créer .NET applications, les applications ASP.NET et services Web en fonction de WCF, à l'aide des outils pris en charge dans Visual Studio.

Windows Azure actuellement offre deux méthodes de traitement, rôle Web et travail rôle (voir figure 3 ). Chaque rôle exécute sur un ordinateur virtuel séparé et communique avec Azure tissu via un agent. L'agent de collecte ressource mesures et mesures nœud notamment virtuelle Utilisation, Statut de candidature, journaux, l'utilisation des ressources, exceptions et conditions de défaillance. Il convient de noter que chaque ordinateur virtuel peut être exécutée sur un seul ordinateur hôte physique ou sur un hyperviseur Windows 2008 ordinateur virtuel. La configuration ordinateur hôte exécution spécifique est dictée par Windows Azure, en fonction de l'accord niveau service et autres professionnelles/technique a besoin. Un rôle Web hébergeant des applications Web interactives et fournit des connexions de liaison et out-bound motifs de requête-réponse. Appels de liaison sont acheminés via les équilibreurs de charge Azure-fourni pour fournir une disponibilité élevée. Comme vous l'avez remarqué, cette stipule Utilisation que chaque instance de rôle Web être sans état de sorte que tissu peut router les demandes à n'importe quel rôle Web dans le cluster.

Le rôle de travail est une application spécialisée l'exécution d'une application .NET dans l'arrière-plan. Ces applications ne pas avoir connectivité de liaison à partir d'applications externes. Ils peuvent toutefois envoyer des messages aux services externes. Lors de l'interaction avec Web rôles, rôles travail Envoi/réception messages en utilisant le service de stockage Windows Azure file d'attente. Un autre aspect intéressant est la fonctionnalité d'évolution des rôles. Un administrateur de déploiement d'application peut state combien d'instances de n'importe quel rôle peut être nécessaire dans la configuration et la structure est décider sur ces instances selon les besoins d'évolution système en cours d'exécution. En bref, Windows Azure fournit always-on, on-demand déploiement et gestion de l'échec.

J'ai abordé jusqu'à présent concepts généraux autour des plates-formes de nuage et des fonctionnalités spécifiques de Windows Azure. Je présente ensuite certains types d'applications principales nuage, des modèles architecture et les méthodes recommandées que vous devez vous familiariser lors du développement d'applications pour les plates-formes nuage.

Nuage application types et modèles

Il existe un certain nombre de motifs d'architecture et conception et recommandées qui vous aider à sélectionner une plate-forme de nuage et implémentent nuage services et applications. En règle générale, ces modèles se répartissent en quatre catégories : calcul, le stockage, communication et la gestion.

Modèles de calcul une fois que vous savez quelle application type travaillez avec, vous devez sélectionner le modèle de calcul appropriée. Comme je L'AI précisé, le rôle Web est utilisé pour créer des modèles d'applications interactives, tandis que le rôle de travail est adapté pour la création d'arrière-plan et Planificateur de tâches. Dans certains cas, vous devrez ces deux fonctionnalités. N'oubliez pas d'exécuter ces tâches de manière que pour éviter de déplacement de grandes quantités de données autour est un élément important lors de la planification des tâches de calcul.

Stockage modèles nuage stockage assure le stockage à distance et analyse le support de stockage extérieur provenant d'utilisateurs. La conception est suffisamment flexible pour la prise en charge un large éventail d'exigences de l'application. Azure résout deux modèles de stockage du nuage : stockage de table et le stockage blob. Le modèle de stockage table permet aux applications stocker des paires clé/valeur suivant une structure de table si le modèle de stockage blob peut être utilisé pour stocker les données.

Communication modèles ces modèles adresse échange des messages. Technologie azure exploite WCF (Windows Communication Foundation) et REST API pour la communication de service Web. Vous devez considérer les modèles de confiance partielle et de la nature sans état de l'application lors de l'implémentation de modèles de communication.

Modèles d'administration modèles d'administration différencier deux principaux aspects de la gestion des services : service déploiement et gestion de niveau service. Modèles de déploiement organiser définition de service, configuration et analyse, tandis que les autres modèles adresse Gestion de niveau de service et de maintenance opérationnelle standard.

Maintenant examinons les types d'applications nuage en détail. Je classer les types d'applications nuage en trois catégories en fonction des types de scénarios que chaque adresses. La première catégorie est applications Web. Notamment traditionnelles applications Web hébergées émergentes composé des applications qui peuvent utiliser deux ou plusieurs sources de données et services. Ces applications doivent capacités de évolution et vers le bas de l'échelle automatiques. Une application comme Facebook constitue un bon exemple. Dans ces scénarios l'organisation peut être un démarrage souhaite passer peu MAJUSCULE sur infrastructure lors de la possibilité de traiter la demande croissante.

Ensuite il sont les applications analytiques dont fonction principale consiste à exécuter avec beaucoup de processeur opérations et données Exploration, souvent les mêmes données autant de fois et par conséquent qu'ils requièrent accès à des beaucoup de stockage capacité processeur disponibilité simultanément. Il est inutile à payer pour ces capacités énorme vingt-quatre heures sur 24, sept jours une semaine, cependant, pour les services de nuage soient attrayants.

Enfin, il y a le parallèle informatique applications ayant besoin d'effectuer plusieurs tâches dans parallèle afin que d'un projet volumineux peut être exécutée dans une période courte. À nouveau, paiement pour la one temps--uniquement grande capacité nuage informatique peut fournir est une solution rentable.

Pas toutes les applications conviennent pour l'exécution sur la plate-forme de nuage. Les facteurs limitant évidentes incluent sécurité des données, potentiel verrouillage dans avec un fournisseur de nuage, interfaces ouverts pour les communications, limitations de modèle de confiance, efficacité de déplacement de données du nuage, intégration avec les services existants en dehors de la plate-forme nuage et problèmes juridique/confidentialité. figure 4 répertorie plusieurs scénarios qui sont adaptées à nuage informatique et figure 5 répertorie les modèles appropriés, scénarios et fonctionnalités.

La figure 4 application types appropriés pour nuage d'ordinateur
Type d'application nuage Contexte Exemple de scénario
Applications Web Applications Web traditionnelles d'hôte et applications interactives qui composent de deux ou plusieurs sources de données et services. Une société de démarrage Création d'une application collaboration Web attendue passer peu MAJUSCULE sur infrastructure.
Ordinateur parallèle Exécution parallèle à grande échelle des tâches de calcul. Normalement ces tâches exécuter pour une courte période utilisant d'autres ressources de calcul et de stockage. Un journal décide de digitization de rapports pour la consommation Web mieux.
Analytique-applications Traitement analytique exécute différents analytique et algorithmes d'exploration données données même encore et encore. Analyse société exécuter des simulations Monte Carlo sur des données financières pour évaluer les risques régulièrement.
Figure 5 motifs, fonctionnalités et ses scénarios correspondante
Considérations sur le système Catégories de modèle Contexte Des fonctionnalités de Windows Azure Exemple de scénario
Calculer Instance d'application à la demande Les applications qui doivent fonctionnalités évolution et vers le bas de l'échelle. Gestion automatisée des Web et rôles de travail Vous permettent de vente au détail banque sites accessibles pendant des événements spéciaux.
  Travail Exécution de traitements par lots parallèle ou applications en arrière-plan. Exploiter plusieurs instances de rôles de travail pour exécuter les tâches en arrière-plan Utilisez les planificateurs pour analyse du traitement en exécutant les tâches en arrière-plan en parallèle.
Stockage Objet BLOB de stockage Stocker la grande quantité de données non structurées. Exploiter Azure stockage BLOB Société de stockage des rapports de conformité juridique dans banque sauvegarde.
  Stockage structuré Stocker les données dans une structure de table lors de la non alléger la charge complète relationnelle sémantique. Stockage de table azure Un stockage structuré pour maintenir une application Web state—i.e. stockage des commande d'achat ou achats panier d'informations.
Communication Service Interface (Web et Web service API) Exposer les fonctionnalités d'applications via des services Web et l'interface utilisateur. Prise en charge azure de création d'applications utilisant des services de Web ASP.NET, Silverlight, WCF Société création actifs numérique gestion solution exposition API à d'autres services.
  Intégration orientée service Appel de services Web externes utilisant protocoles Web standard. Plate-forme azure prend en charge clients WCF et REST API Les applications Web exploiter des services hébergés par Microsoft en réunion de collaboration.
  Messagerie Partager des messages entre les applications de manière évolutif, fiable et asynchrone. Exploiter la file d'attente Azure service de stockage Web aux communications de rôle de travail Application de Web pour informer un planificateur de traitements pour exécuter une tâche spécifique.
Administration Déploiement de nuage Déployer des applications avec des configurations souhaitées comme exigences évolution et de haute disponibilité. Séparation de la définition de service, la configuration des services et l'emballage pour aider les rôles appropriés Une vente au détail stocker configuration Web portail à automatiquement échelle-sortie lorsque l'utilisation dépasse le seuil d'et vers le bas échelle selon vos besoins.
  Conception pour les opérations Comment faire mon application opérations de prêt en fournissant l'état de santé et enregistrement. À l'aide de Windows Azure RoleManger.WriteToLog API et de remplacement RoleEntrypoint.GetHealthStatus() dans le rôle de travail Les développeurs conception nuage applications soient opérations convivial par instrumentation.
  Gestion des instance de service Démarrer, Arrêter et suspendre applications nuage. Gérer les configurations de service. Traitement automatique des modifications de configuration dynamique et les conditions de défaillance Un administrateur application Web l'utilisation du portail Azure pour gérer l'état de l'application.
  Gestion des alertes L'envoi messages instantanée, courrier électronique ou alertes concernant les ressources et informations de facturation. Fourni par Intégration Live Activer des applications à envoyer IMs. Notification par défaut sur l'utilisation des ressources.
  Gestion des niveaux de service Obtenir les informations de consommation de ressources d'application tels que le temps processeur, la bande passante. Gestion des services automatisés via une approche en fonction de modèles Éditeurs de logiciels recherchez facturation et des ressources l'utilisation d'informations sur l'application déployée.

Dans Windows Azure, rôles Web sont adaptées à l'exécution des applications Web interactives, tandis que les rôles de travail sont adaptés aux applications d'arrière-plan. Données sont stockées dans les services stockage blob et table Azure. Communication inter-role est activée via un service de file d'attente, qui permet un échange de messages asynchrones. La plate-forme prend en charge des services Web en fonction de WCF et clients avec liaison HTTP de base et services Web *. Services de stockage sont exposés par REST-style interfaces pour la consommation plus facilement par d'autres applications et les fournisseurs de nuage.

Comme vous le savez, modèles offrent flexibles solutions aux problèmes courants dans le développement de logiciels. Ensuite j'identifiera courantes catégories modèle correspondant aux types d'applications ci-dessus.

Plutôt que d'essayer décrire chaque motif individuel en profondeur, je vais se concentrent sur zones problématiques large et catégories de modèle associé et afficher comment ces modèles sont implémentés dans le contexte de développement Azure.

Un exemple de Real-World

Permettez-moi d'introduire un scénario qui permet d'illustrer certaines des ces concepts. Fabrikam, un fil souhaite créer une gestion des ressources numérique hébergé application Web. Cette application permet aux utilisateurs finaux stocker des images numériques dans le nuage. Les utilisateurs doivent pouvoir prévisualiser les images envoyées, balise les et les annoter avec des informations d'emplacement. L'application doit permettre les utilisateurs à utiliser leurs propres applications de bureau pour accéder à ces images directement à partir de l'emplacement de stockage. la figure 6 représente une vue architecturale haut niveau des services exposés par Fabrikam. Comme indiqué dans le diagramme, Fabrikam expose une application Web et le service Web pour les utilisateurs finals pour gérer leurs immobilisations numériques. Ces services stocker et récupérer immobilisations numériques de la banque actif implémentée dans Windows Azure blob services. Fabrikam implémente un processeur d'arrière-plan pour exécuter des tâches telles que balisage, génération de miniature et ainsi de suite.

fig04.gif

La figure 6 Fabrikam hébergé dans Azure Windows

Voyons comment concevoir, développer et déployer une telle application vers la plate-forme de services Azure. Les discussions qui suivent illustrent des concepts et fonctionnalités disponibles dans Windows Azure. Vous pouvez télécharger le code et la documentation pour savoir comment le scénario entier est implémenté et hébergé dans Azure Windows.

Conception d'application et développement

La première étape consiste à comprendre les scénarios d'applications, sélectionnez modèles appropriés, les méthodes recommandées et les modèles de programmation. Pendant ce processus vous s'identifier le type de l'application et charges de travail cible Azure Windows. En outre, vous va déterminer les motifs de stockage inter-application messagerie et de données. Ici, je suppose que Fabrikam construit une application Web interactive avec besoins évolution et processer un arrière-plan pour générer des métadonnées à partir des immobilisations numériques. Le scénario précité doit rôles Azure Web et de travail, respectivement. De plus, Fabrikam doit stockage BLOB à stocker immobilisations numériques et les métadonnées, interfaces de service pour exposer actif et modèles de messagerie pour la communication.

Pour faciliter le développement, le Kit de développement logiciel (SDK) Windows Azure est fourni avec un environnement de développement qui simule Azure Windows sur l'ordinateur local, ainsi l'activation de développement en mode hors connexion et le débogage. Le kit de développement logiciel (SDK) prend en charge les rôles Web et de travail, stockage, modèles Visual Studio, Outils pour Empaquetage, Affichage et gestion des instances de rôle et un complément Visual Studio qui permet l'expérience F5. Vous pouvez télécharger le Kit de développement logiciel (SDK) à partir de Centre de téléchargement Microsoft.

Pour commencer, utilisez les outils de Azure Windows Microsoft Visual Studio pour créer un nouveau projet à l'aide des Service nuage projet modèles. Vous pouvez ajouter nécessaire l'interface utilisateur, logique d'application et entrée du traitement de l'application Web. Sinon, vous pouvez commencer d'une application Web ASP.NET existante. Étant donné que l'application s'exécuter sous une confiance partielle, évitez d'appeler les API qui transgressent cette restriction. Pour d'informations sur cette restriction, consultez laWindows SDK Azure confiance stratégie de référence.

Ensuite, importez Microsoft.ServiceHosting.ServiceRuntime assembly et utilisez les API respectifs pour activer de journalisation, lecture configuration environnement local et lecture sections de configuration d'application du fichier de définition de service, comme illustré ci-dessous.

 // Writing log information
 RoleManager.WriteLog ("Information", "message to show in the log file"); 
 // Getting service configuration information 
 RoleManager.GetConfigurationSetting("MyConfigSection"); 

// Getting local environment; code snippet below shows getting a pointer
//to a local file 
ILocalResource resource = RoleManager.GetLocalResource(    "ComputeLocalStorage")

Par ailleurs, il est recommandé programmation pour remplacer l'enregistrement ci-dessus et code d'accès ressource avec application réutilisable bloque (bloque journalisation et de configuration) tels que les blocs d'application Microsoft Enterprise Library. Vous pouvez implémenter fournisseurs spécifiques pour Windows Azure journalisation et configuration de la gestion et de les brancher dans l'exécution. Ces les méthodes conseillées détacher des applications d'API spécifique à la plate-forme et les aider à augmenter réutilisabilité entre l'environnement en principe et nuage.

Besoins de stockage de votre application devra être réécrit pour tirer parti des modèles Azure stockage pris en charge. Je contourner ce problème peu de temps.

Ensuite, ajoutez un projet de rôle de travail dans votre projet, puis ouvrez WorkRole.cs. Ce fichier inclut une classe appelée WorkerRole qui dérive de la classe RoleEntryPoint. Cette classe fournit des méthodes pour gérer l'initialisation, démarrage et l'arrêt d'un service rôle travail, ainsi que pour surveiller la santé du service.

Dans cette étape vous normalement remplacer deux méthodes, comme illustré dans La figure 7 .

La figure 7 WorkerRole

public class WorkerRole : RoleEntryPoint
{
  public override void Start()
  {
      RoleManager.WriteToLog("Information", "Generating metadata from digital assets");

      while (true)
      { 
            RoleManager.WriteToLog("Information", "background task is executing thumbnail extraction");
            Thread.Sleep (1000);  
      }
  }

  public override RoleStatus GetHealthStatus()
  {
            return RoleStatus.Healthy;
  }
}

Maintenant exécutez l'application dans le tissu de développement local en appuyant sur F5. Vous verrez journaux écrits dans les instances de console Web et les rôles de travail.

Maintenant nous allons configurer un magasin blob et y accéder à partir du rôle du Web.

Vous devez tout d'abord définir jusqu'à l'objet blob stockage compte information.You vous devez spécifier les paramètres suivants :

Nom_compte : Spécifiez le nom de votre compte Windows Azure.

AccountSharedKey : définissez la clé utilisée pour authentifier une demande effectuée par rapport à Windows Azure stockage. Pour authentifier une demande, vous devez vous connecter la demande avec la clé pour le compte qui effectue la demande.

BlobStorageEndpoint : indique l'URI de base du service de stockage blob.

NomduConteneur : indique le nom du conteneur blob permet de stocker des images pour cette application.

Par exemple, examinez les paramètres de configuration suivants :

  <ConfigurationSettings>
   <Setting name="AccountName" value="fabrikamAccount" />
   <Setting name="AccountSharedKey" value="Eby111M02xNOcqFlqUwJPLlmEtlCD
   XJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBekso45Gw==" />
   <Setting name="BlobStorageEndpoint" value="http://127.0.0.1:10000"/>
   <Setting name="ContainerName" value="fabrikamImagegallery"/>
  </ConfigurationSettings>

L'API REST pour le stockage BLOB expose deux ressources : conteneurs et les blobs. Un conteneur est un ensemble de blobs ; chaque objet blob doit appartenir à un conteneur. Blobs sont écrits à l'aide d'opérations PUT conformément à l'API REST. Utilisez ces API, vous pouvez créer un espace pour organiser les ressources tels que fabrikamImagegallery/images et fabrikamImagegallery/documents hiérarchique, fabrikamImagegallery étant le nom du conteneur et des images fait référence à la nom blob. Il convient de noter que chaque blob a pu être construit à partir de blocs d'un maximum de 4 Mo de taille pour la gestion efficace.

Travailler avec l'API REST est plutôt délicat et par conséquent le Kit de développement logiciel (SDK) est livré avec une bibliothèque d'exemples qui analyse les appels REST et expose des modèles d'accès well known via les classes BlobContainer et StorageAccountInfo.

La figure 8 Indique comment travailler avec stockage BLOB.

La figure 8 Utilisation stockage BLOB

BlobStorage blobStorage = BlobStorage.Create(StorageAccountInfo.GetDefaultBlobStorageAccountFromConfiguration());

BlobContainer newContainer = blobStorage.GetBlobContainer("ContainerName");

newContainer.CreateContainer(null, ContainerAccessControl.Public);

this.container.ListBlobs(String.Empty, false);

BlobProperties properties = new 
 BlobProperties(string.Format(CultureInfo.InvariantCulture, "image_{0}", "idenitifier1"));

NameValueCollection metadata = new NameValueCollection();
metadata["Id"] = id;
metadata["Filename"] = "filename";
metadata["Tags"] = "Image";

properties.Metadata = metadata;

this.container.CreateBlob(properties, imageBlob, true);

À présent, créez un service de stockage de file d'attente pour envoyer le message d'un rôle Web à un rôle de travail. Le service de file d'attente Windows Azure fournit messagerie fiables, permanents dans et entre les services. L'API REST pour le service de file d'attente expose deux ressources : files d'attente et les messages. Il est possible de créer un nombre illimité de files d'attente chaque identifié à l'aide d'un nom unique. La taille maximale du message est restreint à 8KB. Vous êtes chargé de supprimer le message après la lecture ; sinon, le message est restent dans la file d'attente pour l'heure spécifiée.

La figure 9 Indique comment accéder aux files d'attente stockage et messages dans un rôle de travail.

Figure 9 les opérations de stockage file d'attente

public class WorkerRole : RoleEntryPoint
{
        public override void Start()
        {
            Uri baseUri = new               
                 Uri(RoleManager.GetConfigurationSetting("QueueEndpoint"));
            string accountName = RoleManager.GetConfigurationSetting("AccountName");
            string accountKey =  
                RoleManager.GetConfigurationSetting("AccountSharedKey");

           StorageAccountInfo account = new StorageAccountInfo(
           baseUri,
                null,
                accountName,
                accountKey);

            QueueStorage service = QueueStorage.Create(account);
            MessageQueue queue = service.GetQueue("fabrikamimageprocessingqueue");

            while (true)
            {
                Thread.Sleep(10000);
                if (queue.DoesQueueExist())
                {
                   Message msg = queue.GetMessage();
                   if (msg != null)
                   {

                      queue.DeleteMessage(msg);
                   }
                }
            }
        }
….
}

Vous êtes maintenant prêt à essayer cette application dans le tissu de développement local en appuyant sur F5. Vous verrez s'afficher entrées réception Web rôles et des messages envoi à des rôles de travail dans les files d'attente. À présent vous avez rempli toutes les activités de développement nécessaire nécessaires et que vous êtes prêt à publier l'application Azure.

Déploiement du service

Déploiement des services pour Windows Azure est relativement simple. Toutefois, vous tout d'abord devez décider quelles informations à inclure dans le fichier (informations de configuration d'application) de définition du service et configuration du service fichier exigences d'environnement, comment empaqueter l'application, si vous pouvez exploiter outils existants pour créer et télécharger les packages et comment stocker vos packages dans le stockage nuage et ultérieurement déployer vers Azure.

Voici comment je va résoudre ces exigences de l'exemple d'application.

Éditeurs de logiciels de Fabrikam possède développeur, déploiement et rôles opérationnels pour gérer ses applications nuage. Les développeurs créer un fichier de définition de service qui contient des informations sur l'application. Le fichier de définition de service (.csdef) définit les rôles disponibles à un service, indique les points de terminaison de service et établit des paramètres de configuration pour le service. Impossible de modifier les paramètres de définition du service après le déployée d'un service. Ce fichier intègre le fichier de package service pendant le processus d'empaquetage.

Les développeurs également créer un fichier de configuration service (en spécifiant le nombre d'instances nécessaires et les informations de compte Azure) pour débogage local et Azure déploiement de test. Le fichier de configuration service (.cscfg) spécifie les valeurs pour les paramètres de configuration d'une ou plusieurs instances rôle dans le service en cours d'exécution. Personnel opérationnel pouvez dynamiquement modifier ces paramètres de configuration service sans redéployer le service. Le fichier de configuration de service n'est pas distribué avec le service, mais il est téléchargé vers le tissu Azure Windows en tant que fichier distinct.

L'équipe de déploiement met à jour le fichier de configuration services avant le déploiement de production Azure informations de compte-spécifique et les exigences opérationnelles (nombre d'instances de production nécessaire).

Les développeurs ou l'équipe de déploiement créer des packages Azure déploiement à l'aide Outils Visual Studio ou de l'outil CSPack fourni avec le Kit de développement logiciel (SDK) de Azure.

Il est possible de stocker les packages de déploiement dans le stockage Azure blob et récupérer lors du déploiement vers la plate-forme nuage Azure

Le fichier de package service (.cspkg) est un fichier compressé qui contient les définitions de rôle et tous les fichiers (fichiers binaires, images et configuration) empaquetés dans un artefact associés de rôle. Vous pouvez générer ces packages à l'aide Visual Studio ou à l'aide de l'outil CSPack. Lorsque vous utilisez Visual Studio pour exécuter sous le tissu de développement le package créé est ont une extension .csx. Toutefois lorsque vous utilisez la fonctionnalité « publication », il crée un fichier .cspkg, qui est une version du fichier .csx compressée et chiffrée. Ce chiffré et compressée version avec extension .cspkg est téléchargée dans le nuage.

Vous pouvez maintenant télécharger votre fichier de configuration service (.cscfg) et le fichier de package (.cspkg) vers Windows Azure. Pour cela, vous devez d'abord obtenir comptes de calcul et de stockage Windows Azure du portail de développement de services Azure. Après l'obtention de ces comptes vous pouvez déployer le package dans le nuage bien que le portail développeur Azure. Une fois les fichiers sont téléchargés, vous allez être fourni avec une URL de la zone de transit interne que vous pouvez utiliser pour tester votre service dans le tissu Azure Windows. Lorsque vous déplacez à la production, vous obtiendrez l'URL de production.

Administration

Fonctions d'administration couvrent la gestion, gestion et les aspects opérationnels d'applications déployées dans un environnement de nuage. Exploiter les plates-formes de nuage pour l'hébergement de l'application suppose que les services de déploiement sont dans un environnement avec gestion de niveau de service appropriée, gestion des ressources, service de mise en service, modèles de sécurité/confiance et surveillance contrôlé. Vous devez être familiarisé avec les capacités fonctionnelles clées nécessaires pour la gestion des services. Elles comprennent :

  • Développement de services les méthodes recommandées implémentation opérations-convivial en incluant l'instrumentation appropriée.
  • Surveillance du fonctionnement et la disponibilité des applications de nuage et des services.
  • Collecte des mesures et rapports sur l'utilisation du service, les performances et de facturation.
  • L'activation automatisé Attribution des services et de mise à jour des configurations de service.

Dans Windows Azure, agents surveiller chaque instance de machine virtuelle de conditions de défaillance et collecter des mesures de pannes, mesures de performances et l'utilisation de mesures.

Ensemble fibre optique azure automatise l'aspect de mise en service et la gestion avec l'entrée humaine limitée. Personnes et processus sont sujette aux erreurs. Cette automatisation permet d'éviter des erreurs. Dans Windows Azure, applications s'exécutent dans un sandbox partiellement sécurisées, les demandes sont équilibrée de charge et conditions de défaillance sont gérées automatiquement.

En tant que développeur, vous devez être familiarisé avec les comportements opérationnels de votre service. Ces problèmes sont documentées dans le cadre de modèles de définition et configuration du service et communiquées à la plate-forme nuage pour faciliter l'automatisation.

En outre, suivez ces recommandations :

Ajout des informations de journalisation dans le code

RoleManager.WriteLog ("Information", "message to show in the log file"); 
  • Méthode Overiding GetHeatlthStatus
public override RoleStatus GetHealthStatus()
{
      // return the health status of worker role.
      return RoleStatus.Healthy;
 }
  • Obtention des fichiers du journal d'analyse des états d'une application

Gestion des services Azure de Windows

Dans Windows Azure, Gestion des services suit une approche de base de modèles lorsque les modèles sont utilisés pour collecter les informations de configuration souhaitée des développeurs et deployers. Ensemble fibre optique azure utilise ces modèles pour gérer le cycle de vie service, notamment mises à jour de la configuration dynamique, Échec automatique Gestion et surveillance de service. Windows Azure évite point unique d'échecs (matériel ou logiciel) en introduisant des domaines de pannes dans lequel chaque rôle est isolé sur plusieurs nœuds de calcul et des machines rayons. En outre, Windows Azure garantit services haut et en cours d'exécution lors de la mise à jour (dynamique avancer ou reculer un sous-ensemble du service) en demandant des domaines de mise à niveau mais configurations.

Vous devez utiliser l'option de journal des copier et option configurer » dans le portail Azure pour copier les messages du journal dans le stockage blob.

Une fois terminée la copie vous pouvez accéder les journaux de stockage de blob avec le modèle de programmation décrit précédemment.

Dans le futur Windows Azure exposer les interfaces de gestion pour les accès et gestion de contrôle et activités opérationnelles. Cela permet à site service Gestion des outils pour surveiller et gérer des applications de nuage.

Conclusion

Comprendre le nuage informatique des modèles d'architecture, recherche de modèles appropriés choix sur le modèle de programmation et l'activation de gestion automatique sont essentiels pour la réussite de nuage informatique évolution. Azure Windows est conçu avec les développeurs ESPRIT par permettant aux développeurs de rapidement et facilement créer, déployer, gérer et distribuer les applications Web et de services.

En tant que développeur, vous devez s'accumuler un ensemble de modèles qui va vous aider à développer nuage applications plus efficacement. En outre, vous devez penser à saisir et partager périodiques solutions aux problèmes et les autres motifs émergentes telles que nos solutions et les produits peuvent fournir une meilleure assistance emploi-la pour nuage base informatique modèles.

J'aimerais remercier Marx Steve, Jason Hogg, qui Hill, Chong Fred, Eugenio Pace et Nataraja Koduru pour leurs précieux commentaires sur cet article.

Joseph joshy est architecte principal par groupe de solutions géré Microsoft Services. Ses compétences principales et l'expertise incluent informatique distribuée, calcul de grille et services Web. Il est l'auteur du livre Grid Computing (Prentice Hall, 2004) et un inventeur prolific, avec plus de 35 brevets sur le fichier. En outre, il a écrit de nombreux articles techniques sur informatique distribuée et développement des processus métier. Joshy est joignable au jojoseph@Microsoft.com.