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.
Architectures et application hybrides selon vos termes et à votre propre rythme
1. 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
2. LAN303 Architectures et
applications hybrides selon vos
termes et à votre propre rythme
Arnaud Cleret | vNext
Philippe Beraud | Microsoft France
Sébastien Brasseur | Microsoft France
#WindowsAzure
http://windowsazure.com
Architecture / Azure / Cloud
3. Souscrivez à l’offre d’essai ou activez votre
1 accès Azure MSDN
Présentez-vous sur le stand Azure
2 (zone Services & Tools)
Participez au tirage au sort
3 à 18h30 le 12 ou le 13 février
4. Notre agenda pour la session
• 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
9. Incidence des applications hybrides
• 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
0% 10% 20% 30% 40% 50%
• 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
11. Problématiques liées aux 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
12. Problématiques liées aux applications
hybrides – re-factorisation du code pour le Cloud
• Déploiement
• 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
13. Patterns communs pour les applications
hybrides hybrides sont de manière générale liées à un de ces six patterns, répondant à
• Les applications
différents scénarios et conditions requises associées
.
.
Charge
14. Un bon Design est toujours nécessaire ;)
• 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
15. Une abondance de patterns…
• Architecture applicative • Service
– Passerelle – Gestionnaire de réponse asynchrone
– Application en couches – Objet futur <T>
– Acquittement de requête
• Intégration applicative – Requête-Réponse
– Adaptateur
– "ReST" (RPC-style XML over HTTP)
– Routeur basé sur le contenu
– Intégration de données • SOA
– FOREST (Functional Observer REST) – Transaction atomique
– Intégration fonctionnel – Transaction de compensation
– Bus de messages – Intégration de cloud hybride
– Mappage de messages – ReST
– MOM (Middleware Orienté Message) – Registre de service
– Conduits et filtres
– Portail d’intégration
– Gestionnaire de processus
– Intégration sémantique
18. Héberger des portions d’application ou de données
WINDOWS AZURE COMME CIBLE
D’ILLUSTRATION
19. Approche du cloud hybride par Microsoft
• Large éventail de solutions permettant aux clients d’utiliser le cloud
à leur manière et à leur propre rythme
22. Bien trop de cas de figure pour cette
session :(
• 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 :)
24. Intégration basée sur la messagerie
• Windows Azure Service Bus Brokered Messaging
– Facilement connecter des applications (hybrides) depuis n’importe où,
n’importe quand
"
25. Windows Azure Service Bus Relay
• 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
27. Service Bus Queue
• 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
28. Service Bus Topic
• 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
29. Service Bus Topic
• 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
30. Message
• 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
31. Symétrie sur site et dans le cloud
• 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
33. Implémenter les patterns
Application en couches
Passerelle / Adaptateur
Bus de messages
Intégration données / portail / fonctionnelle
Gestionnaire de processus
Transaction de compensation
Acquittement de requête / Asynchronisme
Transaction atomique
Requête-Réponse
34. 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
35. Applications hybrides multiplateformes
• 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
36. Standard OASIS AMQP 1.0
• 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
37. Windows Azure Service Bus AMQP 1.0
Preview
• 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
41. Cas MS IT : Employee Performance Mgmt.
• Plus de 80
personnes par
an pour l’effort
d’ingénierie
• Large
investissement
en infrastructure
matérielle et en
support
• Très forte
charge pendant
deux courtes
périodes sur
l’année
42. 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)
43. 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
44. Etude de cas Client
• 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/
45. En guise de conclusion
• 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
46. En guise de conclusion
• Livre blanc à paraître "Enabling
Hybrid Cloud Today with
Microsoft technologies" :)
47. Pour plus d’information
• 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
48. 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
49. Pour aller plus loin
• 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
51. Développeurs Pros de l’IT
http://aka.ms/generation-app Formez-vous en ligne www.microsoftvirtualacademy.com
http://aka.ms/evenements-
developpeurs Retrouvez nos évènements http://aka.ms/itcamps-france
Les accélérateurs
Faites-vous accompagner
Windows Azure, Windows Phone,
gratuitement
Windows 8
Essayer gratuitement nos http://aka.ms/telechargements
solutions IT
La Dev’Team sur MSDN Retrouver nos experts L’IT Team sur TechNet
http://aka.ms/devteam Microsoft http://aka.ms/itteam
Hinweis der Redaktion
Notation
Sessions objectives : Understand the need for hybrid applicationsLearn methods to construct hybrid scenarios
Le Gartner estimequ’en 2020 80% des applications serontdans le cloud
Our customers are trying to drive greater IT efficiency and on the other hand balance this with driving greater business value. To add complexity to the challenges is the need to also ensure compliance to industry and corporate regulations. These challenges vary by the application type and the sensitivity of data. An example, if the key pain points for your next application was time to solution and limited budget to get the application up and running, this could lead you to look at the Public Cloud as a delivery model for that application; on the other hand if you added to the pain point list that the application is primarily touching sensitive data that is governed by industry regulations that require that data to stay within your datacenter, it could lead you to look at a on premise Private Cloud deployment option.
Déploiement flexible (cloudbursting)+ scenarios de Reprise après sinistre /Continuité métier sur-site vers Cloud, Cloud vers sur-site
“A pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution”--Christopher Alexander
Identity is a key component of a hybrid environment
To enable cross premises connectivity for Hybrid apps Windows Azure provides Windows Azure Connect: Granular control over connectivity – “machine to machine”.Best for simple, scoped connectivityEasy agent-based installation, set up within minutesWorks through firewallSite to site with Virtual Networks Virtual Network allows enterprises to securely extend their on-premise networks into Windows Azure with complete control over network topology.Provides control, set up and configuration similar to traditional VPNAllows to bring your IP addresses, DNS etc. to the CloudCurrently, the IPSec tunnel is through internetScalable “Site to site” connectivityApplication layer connectivity with ‘Messaging’ complete message based infrastructure supporting multiple messaging patterns to connect applications and systems in real-time between Windows Azure and on-premise systems. Messaging provides out-of-the-box support for various messaging patterns that enable to easily connect applicationsData Synchronization using SQL Data Sync enables easy migration, export and ongoing synchronization of on-premises SQL Server databases with Windows Azure databases.
Building Hybrid Applications in the Cloud on Windows Azure : http://msdn.microsoft.com/en-us/library/hh871440.aspx
Leverage the Cloud Relay System allowing machines behind different firewalls to communicate
Integration Patterns utilizing the Windows Azure Service Bus: http://blogs.msdn.com/b/skaufman/archive/2012/04/16/integration-patterns-utilizing-the-windows-azure-service-bus.aspxIntegration Patterns utilizing the Windows Azure Service Bus–Part II: http://blogs.msdn.com/b/skaufman/archive/2012/04/16/integration-patterns-utilizing-the-windows-azure-service-bus-part-ii.aspx
How to Integrate a BizTalk Server Application with Service Bus Queues and Topics: http://msdn.microsoft.com/en-us/library/hh542796(v=VS.103).aspxService Bus for Windows Server (Service Bus 1.0) : http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspxService Bus Bits on MS Download Center : http://www.microsoft.com/en-us/download/details.aspx?id=35374
Technology vendors: Axway Software, Huawei Technologies, IIT Software, INETCO Systems, Kaazing, Microsoft, Mitre Corporation, Primeton Technologies, Progress Software, Red Hat, SITA, Software AG, Solace Systems, VMware, WSO2, Zenika. User firms: Bank of America, Credit Suisse, Deutsche Boerse, Goldman Sachs, JPMorgan Chasehttp://www.amqp.org/resources/downloadhttps://www.oasis-open.org/committees/tc_home.php?wg_abbrev=amqpWhat is AMQP in 3 minutes : http://amqp.org/video
AMQP 1.0 support in the Windows Azure Service Bus : https://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-amqp-overview/AMPQ 1.0 Bits on GitHub : http://nuget.org/packages/ServiceBus.Preview
http://qpid.apache.org/
How Halo 4 is using Windows Azure Service Bus: http://channel9.msdn.com/Blogs/Subscribe/How-Halo-4-is-using-Windows-Azure-Service-Bus
easyJet Airline Aims to Save Millions, Shorten Airport Waits with Cloud-Based Mobile Services: http://www.microsoft.com/casestudies/Microsoft-Visual-Studio-Team-Foundation-Server-2010/easyJet/Airline-Aims-to-Save-Millions-Shorten-Airport-Waits-with-Cloud-Based-Mobile-Services/4000010767
Windows Azure Service Bus. MSDN : http://msdn.microsoft.com/en-us/library/ee732537. Channel 9 : http://channel9.msdn.com/tags/Service-Bus/Service Bus for Windows Server (Service Bus 1.0) : http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspxService Bus Bits on MS Download Center : http://www.microsoft.com/en-us/download/details.aspx?id=35374AMQP 1.0 support in the Windows Azure Service Bus : https://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-amqp-overview/AMPQ 1.0 Bits on GitHub : http://nuget.org/packages/ServiceBus.Preview
Moving Applications to the Cloud, 3rd Edition : http://msdn.microsoft.com/en-us/library/ff728592.aspxBuilding Hybrid Applications in the Cloud on Windows Azure : http://msdn.microsoft.com/en-us/library/hh871440.aspxDeveloping Apps for the Cloud 2nd Edition : http://msdn.microsoft.com/en-us/library/ff966499.aspxDeveloping Multi-tenant Applications for the Cloud 3rd Edition : http://msdn.microsoft.com/en-us/library/ff966499.aspxBuilding Elastic and Resilient Cloud Applications : http://www.microsoft.com/en-us/download/details.aspx?id=29994
Moving Applications to the Cloud, 3rd Edition : http://msdn.microsoft.com/en-us/library/ff728592.aspxBuilding Hybrid Applications in the Cloud on Windows Azure : http://msdn.microsoft.com/en-us/library/hh871440.aspx