Exporter (0) Imprimer
Développer tout

Éléments à prendre en considération pour le développement des services de cloud computing Azure

Mis à jour: juin 2014

Auteur : Selcin Turkarslan

Réviseurs : Tim Wieman, Valery Mizonov, Avilay Parekh, Paolo Salvatori, Steve Howard

Avant de migrer vos applications vers Microsoft Azure Cloud Services, nous vous recommandons d'examiner attentivement les informations relatives à ce service. L'article « Présentation de Microsoft Azure » fournit des informations sur :

  • les composants Azure ;

  • les modèles d'exécution ;

  • la gestion des données ;

  • la mise en réseau ;

  • les Kits de développement logiciel (SDK) pris en charge pour la programmation, etc.

Cet article contient des informations de base sur l'implémentation d'une application Microsoft Azure à l'aide de Microsoft Azure Cloud Services. La quantité de scénarios de migration est presque infinie. C'est pourquoi nous recommandons aux développeurs de choisir les techniques et les solutions les plus appropriées pour leurs applications et leurs utilisateurs.

La migration d'une application existante dans Azure comprend :

  • Le choix du modèle d'exécution de calcul le mieux adapté à votre application (par exemple, des services cloud, des sites web, des machines virtuelles, etc.). Consultez la rubrique Introduction à Azure « Modèles d'exécution »

  • L'ajout d'une configuration Azure spécifique et d'un code personnalisé.

  • Le stockage et la gestion de vos données dans Azure.

  • La remise en package de votre application existante en tant qu'application Azure.

  • Le déploiement de votre application dans Azure.

Une application déployée vers Microsoft Azure Cloud Services comprend votre code d'application, la gestion de vos données et ses paramètres de configuration. Lorsque vous développez une application pour le cloud, les modèles d'architecture généraux sont conservés. Par exemple, ceux qui permettent de gérer la disponibilité, l'évolutivité, la fiabilité et la sécurité dans un environnement distribué. De plus, les développeurs doivent tenir compte :

  • des contrats de niveau de service(SLA) ;

  • de la planification des capacités ;

  • de la facturation au client ;

  • de l'audit ;

  • de la surveillance des applications ;

  • de l'analyse du trafic ;

  • de la gestion des coûts ;

  • de l'évolutivité : à quel moment et comment augmenter ou réduire la mise à l'échelle verticale ou horizontale dans leurs applications de cloud.

Dans un environnement de centre de données privé traditionnel, vous devez acheter, configurer et maintenir le matériel requis pour exécuter vos services. Avec Azure, vous pouvez concevoir et créer des applications qui évoluent à la demande en allouant des ressources virtualisées. Certaines applications locales peuvent être exécutées dans Azure moyennant peu de modifications, voire aucune. Cependant, la plupart des applications peuvent véritablement bénéficier d'une conception et d'une architecture pour le cloud. Pour tirer pleinement parti d'Azure, nous vous recommandons de modifier votre application à l'aide de plusieurs rôles avant de migrer vers Azure.

Par exemple, les services web et les applications hébergés dans les centres de données hérités associent souvent plusieurs fonctions dans une seule application. Cela peut créer des problèmes de mise à l'échelle. De nombreuses applications web stockent également l'état des applications persistantes sur un disque dur local, ce qui ne fonctionne pas dans un environnement Azure Cloud Services. Lors de la migration d'une application web existante dans Azure, vous avez le choix entre deux options pour tirer pleinement parti de l'évolutivité et de l'élasticité du cloud computing :

Le service Azure Cloud Services implémente chaque application sous forme d'un ou plusieurs rôles. Chaque rôle contient le code et les informations de configuration nécessaires pour effectuer une partie des fonctions de votre application. Les services frontaux et le code qui interagit directement avec les navigateurs web ou d'autres clients HTTP sont des rôles web. Les rôles web sont exécutés sur IIS (Internet Information Services), un serveur web de Microsoft. Un rôle de travail exécute le traitement en arrière-plan et les tâches de prise en charge. Les services de niveau intermédiaire sont généralement des rôles de travail.

Chaque rôle peut avoir plusieurs instances. Chaque instance exécute le même code qui a été écrit pour le rôle. Cependant, chaque instance du rôle réside sur une machine virtuelle distincte dans le centre de données Azure. Pour chaque rôle, vous pouvez indiquer la taille voulue pour la machine virtuelle que les instances de ce rôle doivent utiliser. Pour plus d'informations, consultez la page « Configurer les tailles pour les services cloud ».

Outre les différences fonctionnelles entre les rôles, chaque rôle sert d'unité de mise à l'échelle pour votre application. Par exemple, vous pouvez avoir 20 instances de votre rôle web pour servir davantage de trafic. Puis vous pouvez avoir seulement 5 instances de votre rôle de travail pour traiter les requêtes du rôle web de façon asynchrone. Si vous souhaitez créer une application ASP.NET, PHP, Node.js simple ou un service web, vous pouvez utiliser un seul rôle web. Nous vous recommandons d'effectuer des tests fonctionnels et de performances approfondis sur votre service cloud. Ils vous aideront à déterminer la quantité optimale d'instances de rôle et les tailles des machines virtuelles, avant de déployer votre application en production. Pour plus d'informations sur les concepts de service cloud, consultez le Centre de développement Azure et le Centre de documentation Azure.

Tirez parti des options de stockage fournies par Azure. Elles permettent de simplifier votre logique applicative et d'améliorer les performances de votre service cloud. Il est très important de comprendre les limites de chaque option de stockage des données lors de la planification de la migration de l'application. Vous devez également savoir comment identifier les options de stockage de données adéquates pour votre service cloud. Pour plus d'informations sur les options de stockage dans Azure, consultez la page « Vue d'ensemble des services de gestion des données dans Azure ».

Vous pouvez également utiliser le Cache Microsoft Azure pour assurer un stockage rapide basé sur mémoire des applications Azure. La mise en cache améliore les performances en stockant temporairement des informations provenant de sources principales. Elle peut réduire les coûts associés aux transactions d'accès au stockage de base de données dans le cloud. Pour de meilleures performances, déployez votre application sur les centres de données qui répondent à ces deux critères :

  • Ils sont plus proches de la majorité de vos clients.

  • Ils sont plus proches du centre de données qui héberge votre compte de stockage ou vos instances de base de données SQL Azure.

Cependant, vous pouvez avoir des raisons juridictionnelles ou légales concernant vos données et l’endroit où elles résident. Dans ce cas, choisissez un centre de données proche de votre société ou de vos données. Pour plus d'informations, consultez « Éléments à prendre en considération pour les performances de la Base de données SQL de Windows Azure ».

Avant de commencer à implémenter votre service cloud Azure, vous devez acheter un abonnement Microsoft Azure. Pour plus d'informations, consultez le site Microsoft Azure. Ensuite, vous devez préparer votre environnement de développement. Microsoft fournit des Kits de développement logiciel (SDK) spécifiques pour .NET, Java, PHP, Node.js, Python et Ruby. Pour obtenir les informations les plus récentes sur les langages et les plateformes de programmation pris en charge, visitez le Centre de documentation Microsoft Azure. En outre, vous pouvez utiliser le Centre de téléchargement d'outils et de Kits de développement logiciel (SDK) Azure pour accéder aux bibliothèques clientes Azure, aux Kits de développement logiciel (SDK) et aux outils en ligne de commande.

Microsoft Azure fournit également le service Sites Web Azure pour héberger vos sites et vos applications web. Le service Sites Web Azure est une offre PaaS entièrement gérée, qui vous permet de déployer et de mettre à l'échelle des applications web en quelques secondes. Pour plus d'informations, consultez la page Applications web.

Pour permettre aux applications clientes exécutées sur différentes plateformes de se connecter à des sources de données relationnelles, Microsoft a choisi ODBC. Il s'agit d'une API de connectivité client standard pour les applications clientes natives qui se connectent à la base de données SQL Azure. Le fournisseur OLE DB SQL Server Native Client est inclus pour la dernière fois dans SQL Server 2012. La base de données SQL ne le prendra pas en charge.

Lors de l'écriture d'applications sur Windows ou Azure, utilisez le fournisseur de données .NET pour SQL Server. Vous pouvez également utiliser le pilote ODBC SQL Server Native Client fourni avec SQL Server 2008 R2 ou une version ultérieure. Nous vous recommandons d'adopter ODBC dans le développement des futures versions de votre application. Pour les applications existantes qui utilisent OLE DB, nous vous recommandons de les migrer vers ODBC à l'avenir. Pour plus d'informations sur la façon de convertir une application OLE DB en application ODBC, consultez le document « Conversion des applications SQL Server de OLE DB vers ODBC ». Pour plus d'informations de l'équipe ADO.NET sur l'obsolescence d'OLE DB, consultez la publication « Annonce relative à l'obsolescence du fournisseur OLE DB de Microsoft SQL Server ».

Comme pour toutes les autres applications, vous devez créer l'architecture de votre application afin de gérer la disponibilité, la récupération d'urgence et la sécurité dans un environnement dans le cloud mutualisé et distribué. Pour plus d'informations, consultez la page « Éléments à prendre en considération pour la haute disponibilité et la récupération d'urgence avec la Base de données SQL de Azure » et le Guide de sécurité pour Azure. Nous vous recommandons de tenir compte des exigences de sécurité au début du cycle de vie du développement logiciel et avant d'embarquer une application dans Azure.

Pour plus d'informations sur le développement d'applications dans Azure, consultez les pages « Développement d'applications Azure » et « Prévention de défaillance : Aide sur les architectures résilientes du cloud ».

Azure est une plateforme évolutive dynamique et mutualisée dans le cloud. C'est pourquoi vous devez tenir compte des techniques d'analyse et de diagnostic propres au cloud lors de la conception de votre application. Nous vous recommandons de procéder à l'analyse et aux diagnostics au début du cycle de vie de votre développement logiciel. Évaluez vos techniques d'analyse et de diagnostic existantes pour déterminer si elles fourniront un service adéquat une fois l'application déployée dans le cloud. Par exemple, une application qui génère des fichiers journaux volumineux peut nécessiter un réglage de ses paramètres de diagnostic et de journalisation. Un ajustement vous permettra d'obtenir des fichiers journaux plus petits qui pourront être rapidement inspectés ou téléchargés vers l'environnement local pour une analyse ultérieure.

La liste suivante répertorie les outils de dépannage et techniques disponibles pour Azure :

  • Diagnostics Azure : collecte les données d'opération et de diagnostics de votre service Azure. Le service Diagnostics Azure enregistre les données de diagnostic de différentes sources de données comme :

      • Des journaux IIS

      • Des journaux d'infrastructure des diagnostics Windows

      • Des journaux d'événements Windows

      • Des compteurs de performance

      • Des vidages sur incident

      • Des journaux d'erreurs personnalisés

      Vous pouvez configurer les intervalles de journalisation du service Diagnostics Azure. Les informations collectées sont conservées dans les stockages de tables et d'objets blob Azure pour être analysées. Pour plus d'informations, consultez la page « Recueillir des données de journaux à l'aide des diagnostics Azure ».

  • Pack d'administration Azure System Center : le pack d'administration d'analyse Azure vous permet de surveiller la disponibilité et les performances des applications qui s'exécutent dans Azure. Pour plus d'informations, consultez la page « Guide du pack d'analyse des application Azure ». Nous vous recommandons d'utiliser le service Diagnostics Azure et le Pack d'administration Azure System Center. Pour plus d'informations, consultez la vidéo disponible sur la page web System Center 2012 : gérer les applications sur les clouds privés et publics.

  • Azure Storage Analytics : ce service effectue la journalisation et fournit des données de métriques pour un compte de stockage Azure. Vous pouvez utiliser ces données pour suivre les demandes, analyser les tendances d'utilisation, et diagnostiquer les problèmes avec votre compte de stockage. Pour plus d'informations, consultez la page « Storage Analytics ».

  • Gestion des connexions de base de données SQL : ce service gère les codes d'erreur en implémentant une logique de nouvelle tentative dans votre application. Pour plus d'informations, consultez la page « Gestion des ressources de la Base de données SQL Azure ».

  • Applets de commande Azure PowerShell : elles vous permettent d'utiliser, de configurer et de gérer les services de gestion de données et de cloud Azure, directement dans PowerShell. Ces outils peuvent être utiles pour le développement et le test d'applications qui utilisent les services de Azure. Pour plus d'informations, consultez la page « Référence d'applet de commande Azure ».

  • Solution de référence Cloud Service Fundamentals : cette application explique comment générer des services Azure sauvegardés sur une base de données. Cette explication est basée sur des leçons que l'équipe de consultants clients (CAT) de Microsoft a appris en travaillant avec des clients réels. Découvrez les composants essentiels pour la montée en charge des applications Azure, notamment la collecte et l'utilisation des données de télémétrie dans votre application. La solution de référence est disponible sur la page web Cloud Service Fundamentals dans Microsoft Azure. L'aide fournie comprend un Wiki TechNet (Wiki Cloud Service Fundamentals) contenant des articles détaillés.

Comme pour toute autre application, votre service cloud Azure doit être testé de façon approfondie avant d'être téléchargé en production. Vous devez tester son fonctionnement, son exécution de bout en bout, ses performances, son évolutivité, sa sécurité, etc.

Pour obtenir une aide détaillée, consultez la page « Meilleures pratiques de dépannage pour développer des applications Azure ». Pour plus d'informations, consultez les pages « Recueillir des données de journaux à l'aide des diagnostics Windows Azure » et « Test, gestion, surveillance et optimisation des applications Azure ».

Azure offre de nombreuses capacités de mise en réseau pour vous aider à intégrer vos applications existantes dans le cloud et à gérer le trafic réseau. Les composants principaux de mise en réseau et de connectivité dans Azure sont les suivants :

  • Files d'attente de stockage Azure : vous pouvez les utiliser pour stocker des messages accessibles par des clients et fournir une messagerie fiable entre des instances de rôle. Pour plus d'informations, consultez les pages « Utilisation des files d'attente de stockage à partir de .NET » et « Stockage ».

  • Azure Service Bus : nous vous recommandons d'utiliser Azure Service Bus pour toutes vos communications de service à service dans Azure. Vous pouvez également utiliser Azure Service Bus pour conserver l'intégration entre les serveurs locaux et Azure. Service Bus fournit des fonctions sécurisées de messagerie et de relais dans la couche Application. Azure Service Bus offre une infrastructure de communication basée dans le cloud qui prend en charge un service de messagerie sécurisé commun sur un réseau public. Il fournit un espace de noms unifié simple comme https://MonNomHote.servicebus.windows.net. Service Bus prend en charge les modèles de programmation suivants : API .NET, API REST et WCF. Pour plus d'informations, consultez les pages Documentation de Service Bus et « Files d'attente Windows Azure et files d'attente Windows Azure Service Bus - comparaison et différences ».

  • Azure Active Directory : nous vous recommandons d'utiliser Azure Active Directory (AD) pour fournir une montée en charge de bases de données SQL Azure, un contrôle d'accès basé sur des revendications pour des services web hébergés dans le cloud et des applications pour vos utilisateurs finaux. Azure Active Directory est une solution cloud complète de gestion des identités et des accès. Elle combine des services d'annuaire essentiels, des capacités de gestion des identités avancées, une sécurité renforcée et des capacités de gestion des accès aux applications. Azure AD offre également aux développeurs une plateforme de gestion des identités qui leur permet de contrôler l'accès à leurs applications grâce à une stratégie et à des règles centralisées. Le service fournit également une intégration avec Windows Identity Foundation (WIF). Pour plus d'informations, consultez les pages « Authentification des utilisateurs web avec le contrôle d'accès Azure Active Directory » et Documentation sur Azure Active Directory.

  • Azure Traffic Manager : Traffic Manager vous permet d'équilibrer la charge du trafic entrant via plusieurs services hébergés Azure. Vous pouvez équilibrer la charge du trafic de vos services, qu'ils soient exécutés dans le même centre de données ou sur des centres de données partout dans le monde. En gérant efficacement le trafic, vous pouvez garantir des performances élevées, une haute disponibilité, ainsi que la résilience pour vos applications. Pour plus d'informations, consultez la page Documentation de Traffic Manager.

  • Réseau de distribution de contenu Azure : le réseau de distribution de contenu (CDN) de Azure offre aux développeurs une solution globale pour mettre en cache le contenu. Il permet de mettre en cache le contenu à des emplacements plus proches de vos clients ou utilisateurs, afin de fournir une meilleure expérience de votre application. Le CDN met en cache les objets blob Azure et la sortie de contenu statique des instances de calcul dans des emplacements stratégiquement placés. Ainsi, il fournit une bande passante maximale pour délivrer le contenu aux utilisateurs. Vous pouvez activer la diffusion CDN pour vos fournisseurs de contenu à l'aide du portail de gestion de la plateforme Azure. Pour plus d'informations, consultez la page Documentation sur le réseau de distribution de contenu Azure (CDN).

  • Réseau virtuel Azure : le réseau virtuel Azure vous permet de créer une section logiquement isolée dans Azure. Vous pouvez ensuite la connecter de manière sécurisée à votre centre de données local ou à une machine cliente unique en utilisant une connexion IPsec. Le réseau virtuel permet de tirer facilement parti de l'infrastructure évolutive à la demande d'Azure. Il fournit également une connectivité aux données et aux applications locales, y compris aux systèmes exécutés sur Windows Server, grands systèmes et UNIX. Pour plus d'informations, consultez la page Documentation sur le réseau virtuel.

  • Azure ExpressRoute : Azure ExpressRoute vous permet de créer des connexions privées entre des centres de données Azure et l'infrastructure qui se trouve dans votre environnement local ou dans un environnement de colocalisation. Les connexions ExpressRoute ne traversent pas l'Internet public et offrent une plus grande fiabilité, des débits plus importants, des latences moindres et une sécurité accrue par rapport aux connexions classiques sur Internet. Grâce à ExpressRoute, vous pouvez établir des connexions à Azure au niveau d'un emplacement ExpressRoute (fonctionnalité de fournisseur Exchange). Vous pouvez également vous connecter directement à Azure à partir de votre réseau WAN existant (tel qu'un VPN MPLS). Pour plus d'informations, consultez les pages ExpressRoute et Documentation sur ExpressRoute.

Pour plus d'informations, consultez la page Services réseau.

Après avoir terminé le développement de votre service ou application cloud, vous pouvez les mettre en package, les télécharger et les déployer dans Azure. Il existe quatre scénarios de déploiement différents :

  • Nouveau déploiement

  • Modification de la configuration

  • Mise à niveau incrémentielle du code

  • Mise à niveau majeure

Pour plus d'informations, consultez les pages « Gérer les services cloud », « Gérer les déploiements dans Azure » et « Gestion de vos services ».

Vous pouvez configurer plusieurs déploiements en utilisant un seul abonnement Azure pour prendre en charge le développement, le test, le contrôle qualité, le déploiement intermédiaire, etc. Azure vous permet également de configurer un compte Azure pour accéder à plusieurs abonnements. Vous pouvez donc créer pour votre application Azure des environnements de développement et de test distincts, ayant leurs propres abonnements. Dans ce cas, envisagez de déployer d'abord votre service dans un abonnement de test, puis dans un abonnement de production. Lorsque vous êtes prêt à mettre en ligne le service, vous pouvez le déplacer dans l'environnement de production. Après avoir déployé votre service cloud dans un abonnement de production, vous pouvez utiliser l'environnement intermédiaire pour le test continu.

Azure vous permet de configurer votre application pour augmenter ou réduire automatiquement votre mise à l'échelle, pour répondre aux demandes tout en réduisant les coûts. Pour activer cette fonctionnalité, utilisez les règles et les planifications de « mise à l'échelle automatique ». Pour plus d'informations, consultez la page « Mise à l'échelle d'une application ».

Voir aussi

Afficher:
© 2014 Microsoft