Création d’applications cloud Real-World avec Azure

par Rick Anderson, Tom Dykstra

Télécharger corriger le projet ou télécharger le livre électronique

Ce livre électronique vous guide à travers une approche basée sur des modèles pour créer des solutions cloud réelles. Les modèles s’appliquent au processus de développement ainsi qu’aux pratiques d’architecture et de codage.

Le contenu est basé sur une présentation développée par Scott Guthrie et remise par lui à la Norwegian Developers Conference (NDC) en juin 2013 (partie 1, partie 2) et à Microsoft Tech Ed Australie en septembre 2013. Beaucoup d’autres ont mis à jour et augmenté le contenu tout en le faisant passer de la vidéo à la forme écrite.

Public concerné

Les développeurs qui sont curieux de développer pour le cloud, d’envisager un passage au cloud ou qui débutent dans le développement cloud trouveront ici une vue d’ensemble concise des concepts et pratiques les plus importants qu’ils doivent connaître. Les concepts sont illustrés à l’aide d’exemples concrets, et chaque chapitre renvoie à d’autres ressources pour obtenir des informations plus approfondies. Les exemples et les liens vers des ressources supplémentaires concernent les frameworks et services Microsoft, mais les principes illustrés s’appliquent également à d’autres infrastructures de développement web et environnements cloud.

Les développeurs qui développent déjà pour le cloud peuvent trouver ici des idées qui aideront à les rendre plus efficaces. Chaque chapitre de la série peut être lu indépendamment, ce qui vous permet de choisir des sujets qui vous intéressent.

Tous ceux qui ont regardé la présentation de Scott Guthrie Building Real World Cloud Apps avec Azure et qui veulent plus de détails et d’informations mises à jour le trouveront ici.

Modèles de développement cloud

Ce livre électronique explique treize modèles recommandés pour le développement cloud. « Modèle » est utilisé ici dans un sens large pour désigner une façon recommandée d’effectuer les choses : la meilleure façon de développer, de concevoir et de coder des applications cloud. Ce sont des modèles clés qui vous aideront à « tomber dans la fosse du succès » si vous les suivez.

  • Automatisez tout.

    • Utilisez des scripts pour optimiser l’efficacité et réduire les erreurs dans les processus répétitifs.
    • Démonstration : scripts de gestion Azure.
  • Contrôle de code source.

    • Configurez la structure de branchement dans le contrôle de code source pour faciliter le flux de travail DevOps.
    • Démonstration : ajoutez des scripts au contrôle de code source.
    • Démonstration : conservez les données sensibles hors du contrôle de code source.
    • Démonstration : utilisez Git dans Visual Studio.
  • Intégration et livraison continues.

    • Automatisez la génération et le déploiement avec chaque case activée de contrôle de code source.
  • Meilleures pratiques en matière de développement web.

    • Conservez le niveau web sans état.
    • Démonstration : mise à l’échelle et mise à l’échelle automatique dans Web Apps dans Azure App Service.
    • Évitez l’état de session.
    • Utilisez un CDN avec un secours lorsque le CDN n’est pas disponible.
    • Utilisez un modèle de programmation asynchrone.
    • Démonstration : asynchrone dans ASP.NET MVC et Entity Framework.
  • Authentification unique.

    • Présentation d’Azure Active Directory.
    • Démonstration : créez une application ASP.NET qui utilise Azure Active Directory.
  • Options de stockage de données :

    • Types de magasins de données.
    • Comment choisir le magasin de données approprié.
    • Démonstration : base de données Azure SQL.
  • Stratégies de partitionnement des données.

    • Partitionnez les données verticalement, horizontalement ou les deux pour faciliter la mise à l’échelle d’une base de données relationnelle.
  • Stockage blob non structuré.

    • Stockez des fichiers dans le cloud à l’aide du service blob.
    • Démonstration : utilisation du stockage d’objets blob dans l’application Corriger le problème.
  • Concevoir pour survivre aux échecs.

    • Types d’échecs.
    • Étendue de l’échec.
    • Présentation des contrats SLA.
  • Surveillance et télémétrie.

    • Pourquoi vous devez à la fois acheter une application de télémétrie et écrire votre propre code pour instrumenter votre application.
    • Démonstration : New Relic pour Azure
    • Démonstration : code de journalisation dans l’application Corriger le problème.
    • Démonstration : injection de dépendances dans l’application Corriger.
    • Démonstration : prise en charge intégrée de la journalisation dans Azure.
  • Gestion des erreurs temporaires.

    • Utilisez la logique de nouvelle tentative/de reprise intelligente pour atténuer l’effet des échecs temporaires.
    • Démonstration : nouvelle tentative/back-off dans Entity Framework 6.
  • Mise en cache distribuée.

    • Améliorez la scalabilité et réduisez les coûts de transaction de base de données à l’aide de la mise en cache distribuée.
  • Modèle de travail centré sur la file d’attente.

    • Activez la haute disponibilité et améliorez la scalabilité en couplant vaguement les niveaux Web et Worker.
    • Démonstration : Files d’attente de stockage Azure dans l’application Corriger le problème.
  • Autres modèles d’application cloud et conseils.

  • Annexe : Exemple d’application Fix It

    • Problèmes connus
    • Bonnes pratiques
    • Comment télécharger, générer, exécuter et déployer.

Ces modèles s’appliquent à tous les environnements cloud, mais nous allons les illustrer à l’aide d’exemples basés sur les technologies et services Microsoft, tels que Visual Studio, Team Foundation Service, ASP.NET et Azure.

Ce reste de ce chapitre présente l’exemple d’application Fix It et les Web Apps dans Azure App Service environnement cloud dans lequel l’application Fix It s’exécute.

Exemple d’application Corriger le problème

La plupart des captures d’écran et des exemples de code présentés dans ce livre électronique sont basés sur l’application Fix It initialement développée par Scott Guthrie pour illustrer les modèles et pratiques de développement d’applications cloud recommandés.

Corriger la page d’accueil de l’application

L’exemple d’application est un système de ticket d’élément de travail simple. Lorsque vous avez besoin d’un correctif, vous créez un ticket et l’attribuez à quelqu’un, et d’autres peuvent se connecter et voir les tickets qui leur sont attribués et marquer les tickets comme terminés lorsque le travail est terminé.

Il s’agit d’un projet web Visual Studio standard. Il s’appuie sur ASP.NET MVC et utilise une base de données SQL Server. Il peut s’exécuter localement dans IIS Express et peut être déployé sur un site web Azure pour s’exécuter dans le cloud. Vous pouvez vous connecter à l’aide de l’authentification par formulaire et d’une base de données locale ou à l’aide d’un fournisseur social tel que Google. (Plus tard, nous montrerons également comment se connecter avec un compte d’organisation Active Directory.)

Page Connexion

Une fois connecté, vous pouvez créer un ticket, l’affecter à quelqu’un et charger une image de ce que vous souhaitez corriger.

Créer une tâche de correction

Corriger la tâche créée

Vous pouvez suivre la progression des éléments de travail que vous avez créés, voir les tickets qui vous ont été attribués, afficher les détails du ticket et marquer les éléments comme terminés.

Il s’agit d’une application très simple du point de vue des fonctionnalités, mais vous verrez comment la créer afin qu’elle puisse être mise à l’échelle pour des millions d’utilisateurs et qu’elle soit résiliente aux éléments tels que les défaillances de base de données et les arrêts de connexion. Vous verrez également comment créer un flux de travail de développement automatisé et agile, qui vous permet de démarrer simple et de rendre l’application meilleure et améliorée en itérant le cycle de développement efficacement et rapidement.

Applications web dans Azure App Service

L’environnement cloud utilisé pour l’application Fix It est un service d’Azure que nous appelons sites web. Ce service vous permet d’héberger votre propre application web dans Azure sans avoir à créer des machines virtuelles et à les mettre à jour, à installer et configurer IIS, etc. Nous hébergeons votre site sur nos machines virtuelles et fournissons automatiquement la sauvegarde et la récupération et d’autres services pour vous. Le service Sites web fonctionne avec ASP.NET, Node.js, PHP et Python. Il vous permet de déployer très rapidement à l’aide de Visual Studio, Web Deploy, FTP, Git ou TFS. Il ne s’agit généralement que de quelques secondes entre le moment où vous démarrez un déploiement et le moment où votre mise à jour est disponible sur Internet. Tout est gratuit pour commencer, et vous pouvez monter en puissance à mesure que votre trafic augmente.

En arrière-plan, Web Apps dans Azure App Service fournit de nombreux composants et fonctionnalités architecturaux que vous devrez créer vous-même si vous souhaitez héberger un site web à l’aide d’IIS sur vos propres machines virtuelles. Un composant est un point de terminaison de déploiement qui configure automatiquement IIS et installe votre application sur autant de machines virtuelles que vous souhaitez exécuter votre site.

Service de déploiement

Lorsqu’un utilisateur accède au site web, il n’atteint pas directement les machines virtuelles IIS, il passe par les équilibreurs de charge ARR (Application Request Routing ). Vous pouvez les utiliser avec vos propres serveurs, mais l’avantage ici est qu’ils sont configurés automatiquement pour vous. Ils utilisent une heuristique intelligente qui prend en compte des facteurs tels que l’affinité de session, la profondeur de la file d’attente dans IIS et l’utilisation du processeur sur chaque machine pour diriger le trafic vers les machines virtuelles qui hébergent votre site web.

Équilibreur de charge ARR

Si une machine tombe en panne, Azure l’extrait automatiquement de la rotation, fait tourner une nouvelle machine virtuelle instance et commence à diriger le trafic vers la nouvelle instance, le tout sans temps d’arrêt pour votre application.

Récupération automatique après une défaillance de l’ordinateur

Tout cela se produit automatiquement. Il vous suffit de créer un site web et de déployer votre application sur celui-ci, à l’aide de Windows PowerShell, de Visual Studio ou du portail de gestion Azure.

Pour obtenir un tutoriel étape par étape rapide et facile qui montre comment créer une application web dans Visual Studio et la déployer sur un site web Azure, consultez Prise en main d’Azure et ASP.NET.

Résumé

Cette introduction a fourni une liste des sujets abordés par le livre, des captures d’écran de l’exemple d’application et une brève vue d’ensemble des Web Apps dans Azure App Service environnement cloud. L’un des grands avantages du développement d’applications dans et pour le cloud est qu’il est facile d’automatiser les tâches de développement répétitives telles que la création d’un environnement de test et le déploiement de votre code dans celui-ci. Comment procéder est le sujet du chapitre suivant.

Ressources

Pour plus d’informations sur les sujets abordés dans ce chapitre, consultez les ressources suivantes.

Documentation :

  • Web Apps dans Azure App Service. Page du portail pour la documentation Azure sur Web Apps.
  • Web Apps, Services cloud et machines virtuelles : quand utiliser lesquelles ? WAWS, comme indiqué dans ce chapitre, n’est qu’une des trois façons d’exécuter des applications web dans Azure. Cet article explique les différences entre les trois méthodes et fournit des conseils sur la façon de choisir celle qui convient le plus à votre scénario. Comme les sites web, Services cloud est une fonctionnalité PaaS d’Azure. Les machines virtuelles sont une fonctionnalité IaaS. Pour obtenir une explication de PaaS par rapport à IaaS, consultez le chapitre Options de données .

Vidéos :