JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise de demain
-
Upload
michael-figuiere -
Category
Technology
-
view
2.411 -
download
0
Transcript of JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise de demain
Les applications et architectures d’entreprise de demain
Un aperçu des changements à venir
16/9/2011 Michaël Figuière
Speaker
Michaël Figuière
@mfiguiere
blog.xebia.fr
Search Engines NoSQL
DistributedArchitectures
Une nouvelle génération d’applications
Beaucoup de nouvelle tendances...
IntelligenceUX
Mobilité
Social
Géo-localisation
Temps-réel
Mobilité
Mobilité
• Internet mobile est une réalité
• 40% des nouveaux internautes dans le monde d’ici 2015
• Les connexions 4G arrivent bientôt
La connexion Internet devient quasi-permanente
Certains internautes seront uniquement mobiles
De nouveaux cas d’usage deviendront possibles
Géo-localisation
Taxi G7 et la Géo-localisation
Géo-localisation dans l’application iPhone de TaxiG7
Smart Lists dans Facebook
Facebook maintient une liste d’amis à
proximité
Géo-localisation en pratique
• Certaines bases de données permettent les requêtes géo-spatiales
• Les moteurs de recherche le permettent également
• HTML5 et les APIs des OS mobiles permettent de se géo-localiser
PostGIS, MongoDB, ...
Lucene propose une extension « spacial »
Où par IP pour les applications fixes
Temps-réel
Notifications et mise à jour dans Quora
Quora notifie l’utilisateur des
évènements le concernant et met à jour l’affichage
en temps réel
Recherche en continu dans Twitter
De nouveaux résultats sont
disponibles au fur et à mesure
Temps-réel en pratique
• ElasticSearch propose des requêtes temps-réel et continues (Percolator)
• Atmosphere et WebSocket permettent l’intégration Web
• Les moteurs de Complex Event Processing (CEP) pour aller plus loin
Stocke les requête, teste les nouveaux documents
Permet les chats, notifications, rafraichissement,...
Esper est un moteur OpenSource très mature
Intelligence
People you Should Know par LinkedIn
LinkedIn suggère des personnes
que l’on connait en se basant sur le graphe social, sur l’historique
de recherche, etc...
Recommandations par Amazon
Amazon suggère des articles en se basant sur
les achats d’autres clients
Top Stories dans Google News
Sujets tendances découverts par Google News
En pratique
• Apache Mahout veut devenir le Lucene de l’apprentissage artificiel
• Se nourrit des gros volumes de données stockés dans NoSQL
• Neo4j permet de stocker des graphes et de découvrir de l’information
Rapproche les applications Java et l’apprentissage artificiel
Intégration native de Mahout et de Hadoop
Par des algorithmes de plus court chemin, centralité,...
User Experience
Google+ et les cercles
Les fameux cercles
de Google+
Google Flight
Google Flight apporte une interface
novatrice pour la recherche de vols
Les architectures d’entreprise, actuellement
Service Oriented Architecture
Service Oriented ArchitectureComment assurer la scalabilité de cette
architecture ?
Le Cloud
Cloud Computing principles
• Abstraction
• Automatisation
• Elasticité
SaaS, PaaS, IaaS, ... actually « (.*) as a Service »
Réduire les interventions manuelles autant que possible
Augmenter ou réduire la capacité selon les besoins
Cloud’s basic abstractions
SaaS
Fourni un serveur vide
Client / UserApplication
Web
Middleware
PaaS
Application Web IaaS
Fourni un middleware
Fourni par le Provider Cloud
Fourni par l’entreprise
Public Cloud vs. Private Cloud
Une charge typique sur une journée
Public Cloud vs. Private Cloud
Private Cloud
Public Cloud
Exemple chez guardian.co.uk
Stockage
Base de données répartie ou non
A B CD E F
A
D
B
E
C
F
Base de données répartie et donc scalable et élastique
Base de données sur un serveur unique
Relationnel et non relationnel
Relationnel et non relationnel
Les données étant très liées entre elles, leur partitionnement sur un ensemble de machines
est complexe
Relationnel et non relationnel
Cette modélisation simpliste rend les
données plus flexibles et partitionnables
Traditional Design vs. Design for failures
Design traditionnel
• Les erreurs techniques génère typiquement une page d’erreur
• Quelques Single Points of Failure et Bottlenecks
• Timeouts et backends lents sont typiquement non gérés
SQLException, IOException, unavailable backend...
Services stateful et hautement disponibles parfois couteux
Un backend devient lent et toute l’application est ralentie
Design for failures
• Les défaillances vont arriver
• Gérer les backends lents ou défaillants avec des Circuit Breakers
• Cloud et NoSQL apportent des stockages scalables et disponibles
Accueillons-les plutôt que d’essayer de les éviter
L’application peut offrir un mode dégradé
Les données les plus critiques peuvent ainsi être disponibles
Conclusion
• L’élasticité peut réduire les coûts et améliorer l’image de marque
• Le Cloud est mis en oeuvre par des experts
• Les services fournis par le Cloud vont s’améliorer rapidement
• Mais .... JEE 7 ne viendra pas avant 2013 / 2014 !
... et simplifier le Capacity Planning
Evite donc les solutions couteuses et fragiles
Grace à une boucle de feedback plus riche et plus rapide
Questions
?@mfiguiere
blog.xebia.fr