1
© OCTO 2014© OCTO 2014
Code Réactif et persistance versionnée
Les nouvelles architectures
2
© OCTO 2014
Philippe PRADOS
Manager équipe « Architecture Réactive »
+PhilippePrados
@pprados
in/pprados/fr
BrownBagLunc...
3
© OCTO 2014
La persistance
permanente
Code réactif
ConstatSommaire :
4
© OCTO 2014
Comprendre les performances
Vitesse processeurs (nanoseconde)
Exécution d’une instruction typique 1 ns = 1/1...
5
© OCTO 2014
La performance et la scalabilité ne
sont plus des OPTIONS
Il y a 10 ans Maintenant
Nombre de serveurs 10 100...
6
© OCTO 2014
Délais Réaction de l’utilisateur
0-100ms Instantané
100-300ms Léthargique
300-1000ms La machine travaille…
1...
7
© OCTO 2014
Quatre périodes de l’informatique
7
1970 1990 2010 2020
Pers
.
Langages.Prg.App.Quoi
.
On ArchiveOn Modélise...
8
© OCTO 2014
Code réactif non bloquant
Persistance orienté flux
Deux stratégies à appliquer maintenant
9
© OCTO 2014
Code réactif
10
© OCTO 2014
Reactive Manifesto (2013)
Réactif aux
évènements
• Dirigé par les
évènements
Réactif à la
charge
• Scalabil...
11
© OCTO 2014
Concurrence des traitements
A2 A3
B1 B2
Thread 1
Thread 2
Concurrence
Attente I/O
Approche « probabiliste »...
12
© OCTO 2014
Depuis 20 ans, on parie que la concurrence sera optimale
Ce n’est jamais le cas sur les serveurs
Utilisons ...
13
© OCTO 2014
N’utiliser que des HARDWARE Threads
Couche Evolution
OS Non blocking IO
Drivers Asynchrone (NO-JDBC)
Protoc...
14
© OCTO 2014
La persistance
permanente
15
© OCTO 2014
Évolution des besoins de Persistance
Avant
• Seul le présent est important
• Les données sont modifiées pou...
16
© OCTO 2014
Persistance : 2 concepts
État
• La vision des données à
l’instant
• Accès instantané
• Géré en mémoire
Flux...
17
© OCTO 2014
Fraîcheur des données
17
Chaude
Cache en RAM
++ Reactivité
Tiède
DB snapshot
++ Réactivité
+ Volume
Froide
...
18
© OCTO 2014
La quatrième dimension est dans le flux
La persistance de l’état n’est pas importante
S’il est vivant quelq...
19
© OCTO 2014
5mn
30mn 1j
1 mois
1 an
Un logiciel sans passé n’a pas
d’avenir
19
20
© OCTO 2014
21
© OCTO 2014
Questions ?
22
© OCTO 2014
Conseil en Architecture et Management des SI
Un cabinet à taille humaine
16 ans
20 M€ de CA en 2013
Un posi...
23
© OCTO 2014
Prochain SlideShare
Chargement dans…5
×

Solution linux 2014 - Code réactif et persistance versionée

653 vues

Publié le

Les nouvelles approches de développement Web permettant d'intégrer les nouveaux usages.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
653
Sur SlideShare
0
Issues des intégrations
0
Intégrations
22
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • OS: Depuis 1999, Linux propose des API asychrones pour le réseau. Plusieurs implémentations au cours du temps. http://www.kegel.com/c10k.html#nb.edge
    Implémentation by RedHat en 2006

    Drivers: Peu de drivers officiels des fournisseurs

  • PPR
    - Digitalisation – Nouveaux usages / performances / nouvelles architectures
    Emergence du scala / le pourquoi
    Point de vue Octo
    JEE legacy ? Remise a plat du modèle
    Reprendre la main sur la gestion des ressources
  • Le diable est dans l’état, ou plutôt l’état mutable.
    Possibilité de reconstituer l’état après un changement majeur du modèle.
  • R
  • Analogie avec la comptabilité : le solde est calculable à partir des écritures.
  • PPR
  • Solution linux 2014 - Code réactif et persistance versionée

    1. 1. 1 © OCTO 2014© OCTO 2014 Code Réactif et persistance versionnée Les nouvelles architectures
    2. 2. 2 © OCTO 2014 Philippe PRADOS Manager équipe « Architecture Réactive » +PhilippePrados @pprados in/pprados/fr BrownBagLunch.fr Qui suis-je ? Conférences: Solution Linux MISC Devoxx PAUG …
    3. 3. 3 © OCTO 2014 La persistance permanente Code réactif ConstatSommaire :
    4. 4. 4 © OCTO 2014 Comprendre les performances Vitesse processeurs (nanoseconde) Exécution d’une instruction typique 1 ns = 1/1 000 000 000 sec Mutex lock/unlock 25 Envoi de 2Ko sur réseau 1Gps 20 000 Lire 1MB séquentiellement en RAM 250 000 Lire 1MB séquentiellement du disque 20 000 000 Envoi d’un paquet vers USA et retour 150 millisecondes = 150 000 000 4 Équivalent humain (seconde) Exécution d’une instruction typique 1 seconde Mutex lock/unlock ½ minute Envoi de 2Ko sur réseau 1Gps 5 heures ½ Lire 1MB séquentiellement en RAM 3 jours Lire 1MB séquentiellement du disque 6 mois ½ Envoi d’un paquet vers USA et retour 5 ans
    5. 5. 5 © OCTO 2014 La performance et la scalabilité ne sont plus des OPTIONS Il y a 10 ans Maintenant Nombre de serveurs 10 1000 (on demand) Temps de réponse Secondes Millisecondes Interruption de service Heures Jamais Volume de donnée GBs TBs -> PBs Traitements Gros, rare, batch Unitaires, nombreux HTTP HTTP/1.1, Mode texte HTTP/2.x, Mode binaire Réseau Cablé, stable Mobile, Instable Clients Workstation Multiples Sessions d’utilisation Longue Courte Ou permanente ! 5
    6. 6. 6 © OCTO 2014 Délais Réaction de l’utilisateur 0-100ms Instantané 100-300ms Léthargique 300-1000ms La machine travaille… 1s+ Switch mental 10s Je reviens plus tard Perception des utilisateurs * Latence moyenne en 3G : 150ms, 4G: 65ms
    7. 7. 7 © OCTO 2014 Quatre périodes de l’informatique 7 1970 1990 2010 2020 Pers . Langages.Prg.App.Quoi . On ArchiveOn Modélise SMALLTALK C++ JAVA C# HASKELL SCALA F# Clojure R ? COBOL FORTRAN BASIC PASCAL C Procédure Modèle impératif On calcule SQL On Prédit On e Modèle objet Modèle fonctionnel Modèle statistique ? Mod Méthode Équation Probabilité ? Quanti NSA ORM (JPA) NoSQL, DBMem TSDB ? Giga clo Interf. Ligne de commandes Fenêtres Web Objets ? ???
    8. 8. 8 © OCTO 2014 Code réactif non bloquant Persistance orienté flux Deux stratégies à appliquer maintenant
    9. 9. 9 © OCTO 2014 Code réactif
    10. 10. 10 © OCTO 2014 Reactive Manifesto (2013) Réactif aux évènements • Dirigé par les évènements Réactif à la charge • Scalabilité plutôt que gérer les contentions Réactif aux erreurs • Système résilient à tous les niveaux Réactif aux utilisateurs • Garantit un délai de réponse 10 http://www.reactivemanifesto.org/
    11. 11. 11 © OCTO 2014 Concurrence des traitements A2 A3 B1 B2 Thread 1 Thread 2 Concurrence Attente I/O Approche « probabiliste » (actuelle) Calcul C1 B2 Thread Unique No blocking IO B1 A2 A1 B1 C1 A2 B2 C2 C2A3 A3 C2C1 A1 A1 Approche Réactive (Optimise la CPU) Attente I/O
    12. 12. 12 © OCTO 2014 Depuis 20 ans, on parie que la concurrence sera optimale Ce n’est jamais le cas sur les serveurs Utilisons une approche déterministe et réactive Gain notable de performance Multithreads : un pari permanant
    13. 13. 13 © OCTO 2014 N’utiliser que des HARDWARE Threads Couche Evolution OS Non blocking IO Drivers Asynchrone (NO-JDBC) Protocoles HTTP 2.0, Web Sockets Frameworks, Composants Play, Node.js, Netty Akka, JMS, Java8 Langages Générateur, Continuation Co-routine, Async / Await, Functional
    14. 14. 14 © OCTO 2014 La persistance permanente
    15. 15. 15 © OCTO 2014 Évolution des besoins de Persistance Avant • Seul le présent est important • Les données sont modifiées pour refléter leur état présent • Chaque modification fait disparaître l’état précédent Maintenant • L’histoire des données est important • Rien ne disparaît • Le flux des modifications porte des pépites business non exploitées • Les archives deviennent numériques Demain • Prédiction : Analyser le passé des données pour prédire leur futur DELETE/INSERT/UPDATE INSERT ONLY DATA LEARNING >> 15
    16. 16. 16 © OCTO 2014 Persistance : 2 concepts État • La vision des données à l’instant • Accès instantané • Géré en mémoire Flux • Suite des modifications • Intégralement rejouable • Persistant • Reconstitution de l’état 16
    17. 17. 17 © OCTO 2014 Fraîcheur des données 17 Chaude Cache en RAM ++ Reactivité Tiède DB snapshot ++ Réactivité + Volume Froide Big Data, Flux ++ Data + Requêtes longues BATCH
    18. 18. 18 © OCTO 2014 La quatrième dimension est dans le flux La persistance de l’état n’est pas importante S’il est vivant quelque part S’il est possible de le reconstituer Persistance limitée aux messages de modification Sauvegarde du flux Ajout à la fin d’un fichier de transactions (AOF) 18 La base de donnée n’est qu’une vue des logs de modifications
    19. 19. 19 © OCTO 2014 5mn 30mn 1j 1 mois 1 an Un logiciel sans passé n’a pas d’avenir 19
    20. 20. 20 © OCTO 2014
    21. 21. 21 © OCTO 2014 Questions ?
    22. 22. 22 © OCTO 2014 Conseil en Architecture et Management des SI Un cabinet à taille humaine 16 ans 20 M€ de CA en 2013 Un positionnement Grands Comptes 20% de croissance 3 filiales : au Maroc, en Suisse, au Brésil
    23. 23. 23 © OCTO 2014

    ×