Upload
microsoft-developpeurs
View
995
Download
0
Embed Size (px)
DESCRIPTION
Nous croyons fermement que notre plateforme cloud - et à l’instar de celles que nos compétiteurs proposent - offre aux entreprises une alternative très intéressante à la définition et l'exploitation de leur capacité propre de centre de données, mais nous devons reconnaître dans le même temps que « le déplacement vers le cloud » est intrinsèquement un processus graduel. Par ailleurs, la plupart des applications (métier) d'aujourd'hui ne sont ni simples ni monolithiques ; elles peuvent être constituées de nombreux éléments distincts qui sont mis en œuvre sous formes de services, de composants, de « plug-ins » tiers et d'autres systèmes ou ressources. En outre, il n'est pas rare pour une application de faire usage de services exposés par des organisations partenaires, ou de services et des composants qui se trouvent à l'intérieur du réseau d'entreprise. Certains de ces éléments ne seront/pourront en fait jamais être migrés vers le Cloud pour une variété de raisons. Toutefois, la proposition de valeur du Cloud peut être intéressante pour les autres. La possibilité de déplacer des éléments constituants spécifiques dans le Cloud peut par exemple réduire les coûts d'infrastructure, les exigences de gestion et de maintenance, etc. Les applications qui en découlent sont souvent désignées comme des applications hybrides. L'intégration de l’ensemble des éléments constitutifs lorsque tous les composants sont hébergés localement dans votre centre de données n'est pas une tâche facile, et elle peut devenir encore plus difficile lorsque vous déplacez une partie des fonctionnalités de l'application dans un environnement Cloud. Les problèmes que vous rencontrez lors de leur développement ou lors de la migration d’éléments existants de vos applications sur site vers le cloud suscitent des questions telles que « Comment puis-je intégrer les différentes parties à travers les frontières de réseau et de domaines de sorte que toutes les parties coopèrent ensemble pour mettre en œuvre l'application complète ? » et « Comment puis-je optimiser les performances et la disponibilité lorsque certaines parties de l’application sont situés dans le nuage ? » Cette session se concentre sur les approches communes pour définir votre propre chemin à votre propre rythme, ainsi que sur les questions que vous rencontrerez lors de la mise en œuvre d’applications qui s'exécutent en partie dans le Cloud et en partie sur site, ou si vous décidez de migrer tout ou partie des éléments d'une application existante en local vers le cloud. Elle illustrera le propos au travers de l'utilisation des services d’infrastructure (IaaS) et de plate-forme (PaaS) de Windows Azure et, montrera comment vous pouvez profiter de ces nombreux services pour simplifier et accélérer le développement et le déploiement de ces applications: Service Bus, SQL Data Sync, Virtual Network, Access Control, etc.
Citation preview
Donnez votre avis !
Depuis votre smartphone, sur : http://notes.mstechdays.fr
De nombreux lots à gagner toutes les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les TechDays
http://notes.mstechdays.fr
LAN303 Architectures et applications hybrides selon vos
termes et à votre propre rythme
Arnaud Cleret | vNextPhilippe Beraud | Microsoft France
Sébastien Brasseur | Microsoft France
Architecture / Azure / Cloud
#WindowsAzurehttp://windowsazure.com
Souscrivez à l’offre d’essai ou activez votre accès Azure MSDN
Présentez-vous sur le stand Azure (zone Services & Tools)
Participez au tirage au sort à 18h30 le 12 ou le 13 février
1
2
3
Gagnez une Tablette Windows 8 !
• Quelques définitions pour commencer• Applications hybrides : design,
patterns et problématiques• Windows Azure comme cible
d’illustration• Un focus sur Windows Azure Service
Bus• Etudes de cas d’applications hybrides
Notre agenda pour la session
QUELQUES DÉFINITIONS POUR COMMENCER
Cloud | Applications hybrides
• Scénarios d’utilisations communs*
Cloud public
Construites spécifiquement pour le cloud
Applications SaaS, Sites de commerce
Allocations de ressources pour un projet, gain de temps
Applications sur mesure et commerciales, usage général
Stockage & réplication BDD, sites de bascule
HPC, analyses de données, modélisation
Large capacité à la demande
Charge non-prédictible, intervalles entre les pics
Provisionnement pour la croissance/effets d’échelle
Charge non-prédictible, à la demande
Croissance rapide Charge prédictible, saisonnalité
Quelques problématiques menant aux applications hybrides
Cloud hybride | Définitions
" "
"
"
Echantillon d’attributs
• L’hybride est le pattern dominant pour les nouvelles applications– Les applications hybrides représentent presque la moitié de toutes les nouvelles
applications créées– La plupart de ces "nouvelles" applications sont en fait pas nouvelles– Une majorité des 47% des nouvelles applications sur-site éligibles pour du IaaS
Incidence des applications hybrides
63%17%
20%
Applications nouvelles vs. remplacement
Application toute nouvelle nécessaire pour le métierRemplacement: ré-écritureRemplacement : mise à jour
Sur-site
Hybride
IaaS
PaaS
0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 50%
47%
47%
2%
4%
Plateforme d’hébergement pour les nouvelles applications métier
Apps
Cloud
seulement
• Incidence des nouvelles applications hybrides métier– Basé sur une étude de cas de 780 nouvelles applications dans les entreprises américaines. Avec hybride
défini comme n'importe quelle application avec un ou plusieurs niveaux, un service ou un composant hébergé dans du IaaS ou du PaaS
PROBLÉMATIQUES, DESIGN ET PATTERNS
Applications hybrides
• Les entreprises possèdent des centaines d’application– Construites sur mesure– Acquises auprès de tierces-parties– Une partie venant des systèmes hérités
• Vous ne pensez pas (forcément) aux frontières de ces systèmes– Vous interagissez plus généralement avec le Métier– Des processus communs et le partage de données doivent être supportés
(intégration)
• Ce n’est pas une tâche facile– Différents types et formats de données– Différents types d’extensibilité/modifications possibles– Différents systèmes et plateformes applicatives
Problématiques liées aux applications hybrides
• Déploiement – re-factorisation du code pour le Cloud• Identité, authentification et contrôle d’accès – fédération,
délégation, etc.• Communication au-delà des frontières et accès aux
services – comment et conformité aux politiques en place• Logique Métier et routage de message – emplacement et
processus• Synchronisation de données – gouvernance/contraintes
sur les données et réplication• "Scalabilité", performance et disponibilité – gestion des
goulets d’étranglement et scaling up/out
Problématiques liées aux applications hybrides
• Les applications hybrides sont de manière générale liées à un de ces six patterns, répondant à différents scénarios et conditions requises associées
Patterns communs pour les applications hybrides
Développer sur-site• Scénario commun pour la plupart des
clients
• Expérience de développement, test et débogage de haute fidélité
• Optimiser les coûts de test
• Environnement de développement et émulateur sur-site• Outils de déploiement fiables
Développer dans le cloud• Entreprises mettant déjà en œuvre une
stratégie comprenant un cloud privé
• Rapidement mettre en œuvre de nouveaux projets
• Maintenir un haut niveau contrôle en déployant sur-site
• Ressources de développement à faible coût dans le cloud
• Outils de déploiement fiables
Déploiement flexible • Editeurs de logiciels offrant le choix sur-site/cloud
• Entreprises désirant avoir le choix du modèle de déploiement
• Poussé par le souhait des entreprises d’avoir le choix du modèle de déploiement
• Demande majeure des grands clients
• Environnement d’exécution compatible sur-site/cloud• Mobilité entre le cloud et l’environnement sur-site• Expérience de développement commune
Déploiement en tiers• Editeurs de logiciels• Entreprises
• Maintenir le contrôle des données et/ou des systèmes critiques
• Incapacité/indisposition à migrer les systèmes hérités
• Migration graduelle vers le cloud
• Outils de connectivité réseau et/ou de synchronisation de données entre l’infrastructure sur-site et le cloud
• Outils de gestion communs• Environnement de développement hybride
Concentrateur cloud• Editeurs de logiciels• Entreprises
• Messagerie et connectivité à travers les frontières
• Connecter/Notifier les terminaux mobiles
• Intégration à la chaine de valeur Métier
• Service de courtage de messages performant• Support performant pour de multiples points de
terminaisons et terminaux mobiles
Augmentation de la capacité
• Entreprises subissant des pics de charge• Capacité élastique• Coûts du déploiement sur-site réduits
• Outils de déploiement et de mise à l’échelle automatisés
• Outils de développement facilitant les scenarios d’auto-"scalabilité"
Dév.
Sur-site Cloud
Hub
Charge
Déployer
Dév.
Déployer
Déployer
Déployer
Données
App
App App
App App
• Applications composites– Développement d’éléments modulaires pouvant être "connectés" au sein de
solutions – à la SOA, mais ne pas "sur-concevoir" pour prendre en compte chaque cas de figure, juste le nécessaire. Simplifier, simplifier, simplifier
• Couplage lâche / Sans état– Ne pas lier les composants entre eux ou les rendre dépendants des détails
d’implémentation de composants tiers; garder la gestion de l’état au minimum
• Messagerie fiable– Utiliser la messagerie pour tout ce qui peut être long ou traité de façon
asynchrone
• Prendre en compte la résilience– Les systèmes peuvent être redémarrés ou tomber en panne pour un tas de
raisons et votre application doit être capable d’intégrer ses pannes dans son cycle de vie
Un bon Design est toujours nécessaire ;)
• Architecture applicative– Passerelle– Application en couches
• Intégration applicative– Adaptateur– Routeur basé sur le contenu– Intégration de données– FOREST (Functional Observer REST)– Intégration fonctionnel– Bus de messages– Mappage de messages– MOM (Middleware Orienté Message)– Conduits et filtres– Portail d’intégration– Gestionnaire de processus– Intégration sémantique
• Service– Gestionnaire de réponse asynchrone– Objet futur <T>– Acquittement de requête– Requête-Réponse– "ReST" (RPC-style XML over HTTP)
• SOA– Transaction atomique– Transaction de compensation– Intégration de cloud hybride – ReST– Registre de service
Une abondance de patterns…
Cinq questions à se poser
Comment interagir entre les composants ?
Comment assurer un état cohérent?
Quels sont mes facilitateurs ?
Cinq facteurs déterminants
Comment intégrer des (portions d’) applications ?
Comment opérer sur les messages ?
Comment opérer sur les messages ?
Une abondance de patterns…
Comment intégrer des (portions d’) applications ?
Comment assurer un état cohérent?
Quels sont mes facilitateurs ?
Comment interagir entre les composants ?
Passerelle
Adaptateur
FOREST
Portail d’intégration
Intégration fonctionnelle
Intégration de données
MOM (Middleware Orienté Message)
Intégration sémantique
Routeur basé sur le contenu
Conduits et filtres
Mappage de messages
Bus de messages
Gestionnaire de processus
Transaction de compensationTransaction atomique
Requête-Réponse
Gestionnaire de réponse asynchrone
"ReST"
Acquittement de requête
Objet futur<T>
Intégration de cloud hybrideRegistre de service
ReST
Application en couches
Architecture applicative
Service
WINDOWS AZURE COMME CIBLE D’ILLUSTRATION
Héberger des portions d’application ou de données
• Large éventail de solutions permettant aux clients d’utiliser le cloud à leur manière et à leur propre rythme
Approche du cloud hybride par Microsoft
...
Fram
ewor
ks
Ser
vice
sFa
brique
Infr
astr
uct
ure
......
......
...
Solutions de connectivité hybride avec Windows Azure
Connectivité applicative et Messagerie
Service Bus
Synchronisation de donnéesSQL Data Sync
Connectivité machine-à-machineWindows Azure Connect
Connectivité réseau site-à-site Virtual Virtual Network
Gestion et Monitoring des applicationsSystem Center
• Nous nous concentrerons sur Windows Azure Service Bus pour le reste de la session
• Pour le reste– Cf.
Building Hybrid Applications in the Cloud on Windows Azure :)
Bien trop de cas de figure pour cette session :(
UN FOCUS SUR WINDOWS AZURE SERVICE BUS
Applications hybrides et Windows Azure
• Windows Azure Service Bus Brokered Messaging– Facilement connecter des applications (hybrides) depuis n’importe
où, n’importe quand
Intégration basée sur la messagerie
Queues pour terminaux occasionnellement connectés, notifications pour terminaux
Les "Topics" et "Subscriptions" publient les messages pour de nombreux consommateurs
"
• Options pour interconnecter des applications à travers les frontières réseau– Intégré avec le modèle
de programmation WCF
– Utilise uniquement des connexions en sortie
– Aucun port ouvert en entrée n’est nécessaire
– Les connexions en sortie utilisent TCP par défaut
– Repli sur HTTP si nécessaire
– Gardé par le pare-feu du centre de données
– Sécurisé avec Windows Azure AD Access Control
Windows Azure Service Bus Relay
Frontaux
outbou
nd
socke
t
connect
outbound socket
rendezvous
NLB
demoIMPLÉMENTER DES PATTERNS D’INTÉGRATION
Windows Azure Service Bus
• Publication séquentielle de messages avec des curseurs et verrous partagés
• Les consommateurs entrent en compétition• Chaque message publié est consommé par un seul
consommateur
Service Bus Queue
• Publication séquentielle de messages; chaque souscription a son propre curseur et son propre verrou
• Les souscriptions peuvent filtrer les messages en se basant sur leurs propriétés
• Chaque message publié est rendu disponible pour chaque souscription
Service Bus Topic
RR
• Publication-Abonnement– Scénario: un émetteur diffuse un évènement à tous les récepteurs
intéressés– Cas d’utilisation: notification évènementielle
• Routeur basé sur le contenu– Scénario: router un message à différents récepteurs en fonction du
contenu du message– Cas d’utilisation: Systèmes de traitement de commandes
• Liste de récepteurs– Scénario: un émetteur veut envoyer un message à une liste de récepteurs– Cas d’utilisation: Systèmes de traitement de commandes – router vers des
partenaires/départements spécifiques
Service Bus Topic
• Propriétés– Paires clé/valeur exposées au
service de courtage– Les règles des souscriptions se
basent sur ces propriétés pour appliquer des filtres
• Corps– Charge opaque non-exposée au
service de courtage– Peut être utilisé pour chiffrer des
données
Message
• BizTalk Server 2010 R2– L’utilisation conjointe de BizTalk Server et de Service Bus permet la mise
en œuvre d’un nombre significatif de scénarios hybrides à la fois "scalables", fiables et sécurisés: • Echanger des documents électroniques avec des partenaires commerciaux• Exposer des services sur-site s’exécutant derrière un pare-feu à des tierces-parties• Etablir une communication entre un bureau central et ses agences
– Cf. "How to Integrate a BizTalk Server Application with Service Bus Queues and Topics"• Envoyer des messages vers une Service Bus Queue• Envoyer des messages vers une Service Bus Topic• Recevoir des messages depuis une Service Bus Queue• Recevoir des messages depuis une Service Bus Subscription
• Service Bus for Windows Server 1.0
Symétrie sur site et dans le cloud
demoINTÉGRATION AVEC BIZTALK SERVERWindows Azure Service Bus
Implémenter les patterns
Sur-site Hybride CloudLocalisation
Couche
Architecture applicative
Intégration
SOA / Service
Passerelle / Adaptateur
Application en couches
BizTalk / HIS
Transaction de compensation
Transaction atomique
Acquittement de requête / Asynchronisme
Requête-Réponse
Bus de messages
BizTalk / Service Bus Service Bus
Azure Int Svc
Intégration données / portail / fonctionnelle
BizTalk / Service Bus Service Bus / Azure Int Svc (/ Data Synch)
Gestionnaire de processus
BizTalk / WF WF / Azure Int Svc
Message-oriented middleware allows application modules
to be distributed over heterogeneous platforms and reduces the complexity of
developing applications that span multiple operating systems …--Wikipedia’s entry for message-oriented middleware
• Protocoles de messagerie propriétaires• Difficulté de porter des applications
– Requiert le redéveloppement (au moins partiel) des applications
• Difficulté à intégrer– Passerelles au niveau applicatif pour émettre/recevoir des
messages et adapter les formats de messages
• Support de la plateforme restreint– Limité à ce que le fournisseur propose
Applications hybrides multiplateformes
• Advanced Message Queuing Protocol • Protocole de messagerie ouvert et standard
– Permet de construire des applications multiplateformes • En utilisant des services de courtage, des bibliothèques ou des Framework provenant de
différents fournisseurs
– L’aboutissement de plusieurs années de travail menées par plus de 20 entreprises• Protocole standard stable et bien supporté
• Fonctionnalités– Efficience – protocole binaire orienté-connexion– Fiabilité – du "fire-and-forget" jusqu’au "exactly-once delivery"– Représentation des données portables – échange hautement fidèle,
multiplateforme– Flexible – Topologies client-client, client-courtier et courtier-courtier– Indépendant du modèle du courtier – pas de prérequis sur l’implémentation du
courtier
Standard OASIS AMQP 1.0
• AMQP 1.0 Preview disponible aujourd’hui sur Azure Service Bus
• Bibliothèque cliente Service Bus mise à jour et disponible• Supporte une large gamme de bibliothèques clientes tierces
– Ex. Apache Qpid
• Plus de plateformes seront supportées au fur et à mesure que les bibliothèques seront rendues disponibles
• Disponibilité générale courant 1S 2013
Windows Azure Service Bus AMQP 1.0 Preview
Support pour de multiples protocoles
"SBMP"Hautes performances
.NET seulement
AMQP 1.0Hautes performances
Grande portée
HTTPGrande portée
Performances moindres
.NET, Node.js, Java, PHP, Python
Bibliothèques clients AMQP 1.0
Langage Bibliothèque
C# Service Bus .NET Client Library
Java Apache Qpid Java Message Service (JMS) clientIIT SwiftMQ Java client
C Apache Qpid Proton-C
PHP Apache Qpid Proton-PHP
Python Apache Qpid Proton-Python
Ruby Apache Qpid Proton-Ruby (prochainement)
Perl Apache Qpid Proton-Perl (prochainement)
JavaScript Apache Qpid Proton-JavaScript (prochainement)
ETUDES DE CASApplications hybrides
Cas MS IT : Employee Performance Mgmt.
• Plus de 80 personnes par an pour l’effort d’ingénierie
• Large investissementen infrastructure matérielle et en support
• Très forte charge pendant deux courtes périodes sur l’année
Evolution en une application hybride• Approche
hybride; frontaux sur Azure, base de données SQL sur-site
• Utilisation de Connect, Service
Bus et ADFS• Certaines bases
sur Azure SQL Database (par ex. la configuration applicative)
Web Role:P@M Site
Web Role:P@M Site
Web Role:Foundation
Services
Services sur-site – Service Bus• Idéal pour les
services partagés, situés derrières les équilibreurs de charge réseau
• Même service pour les appelants Azure et CorpNet
• Voir la vidéo TechNet pour plus d’informations
• easyJet– Service mobile permettant aux clients et aux agents
d’accéder aux systèmes métier– Exposer les points de terminaison des services dans le
cloud sans construire une nouvelle plateforme
– Cf. http://www.microsoft.com/casestudies/
Etude de cas Client
• Les applications hybrides sont un équilibre entre – Le coût, la performance, les délais de mises à disposition et le
contrôle
• Vos contraintes en termes d’exigences spécifiques et de budget vous guiderons vers la solution à suivre– En fonction de la situation de départ
• Windows Azure fournit un riche ensemble de services pour connecter les infrastructures et services sur-site au cloud– Comme illustré ici avec Service Bus– Les services peuvent être composés pour construire des solutions– Microsoft continuent à investir dans les scénarios hybrides
En guise de conclusion
• Livre blanc à paraître "Enabling Hybrid Cloud Today with Microsoft technologies" :)
En guise de conclusion
• Suivez Windows Azure sur Twitter @WindowsAzure
• Démarrez avec Windows Azure– http://www.windowsazure.com/build
• Kit de formation Windows Azure– https://www.windowsazure.com/en-us/develop/net/other-
resources/training-kit/
• Exemples Windows Azure– https://github.com/WindowsAzure-Samples
Pour plus d’information
• Windows Azure Service Bus– MSDN Documentation– Channel 9
• Service Bus for Windows Server– MSDN Documentation
• Service Bus for Windows Server (Service Bus 1.0)
– Service Bus Bits on MS Download Center
• Windows Azure AMQP 1.0 Preview– AMQP 1.0 support in the Windows Azure Service Bus– AMPQ 1.0 Bits on GitHub
Pour plus d’information
• Un peu de lecture ;) – Microsoft Practices & Patterns
• Moving Applications to the Cloud, 3rd Edition• Building Hybrid Applications in the Cloud on Windows Azure
• Developing Apps for the Cloud 2nd Edition• Developing Multi-tenant Applications for the Cloud 3rd Edition• Building Elastic and Resilient Cloud Applications
Pour aller plus loin
• Lectures additionnelles…
Pour aller plus loin
Formez-vous en ligne
Retrouvez nos évènements
Faites-vous accompagner gratuitement
Essayer gratuitement nos solutions IT
Retrouver nos experts Microsoft
Pros de l’ITDéveloppeurs
www.microsoftvirtualacademy.com
http://aka.ms/generation-app
http://aka.ms/evenements-developpeurs http://aka.ms/itcamps-france
Les accélérateursWindows Azure, Windows Phone,
Windows 8
http://aka.ms/telechargements
La Dev’Team sur MSDNhttp://aka.ms/devteam
L’IT Team sur TechNethttp://aka.ms/itteam