Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Lagom, reactive framework

295 visualizaciones

Publicado el

My slides of my talk at jugSummerCamp 2016

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Lagom, reactive framework

  1. 1. Lagom Reactive microservices framework Fabrice Sznajderman - @fsznajderman 16 septembre 2016 @lagom #JSC2016
  2. 2. Roadmap ● Microservices / Event Sourcing / CQRS ● Lagom : overview ● Principales fonctionnalités ● Anatomie d’un projet ● Live coding ● Next step
  3. 3. Qui vous parle? Fabrice Sznajderman ● Développeur Scala @Zenika ○ Formateur Java/Scala ● Contributeur (Lagom, JHipster, rapture) ● Bagger (Scala - Lagom - SBT)
  4. 4. October 27th and 28th, 2016. Lyon, France
  5. 5. Core concepts Microservices / Event Sourcing / CQRS
  6. 6. Microservices
  7. 7. Microservices
  8. 8. Microservices Microservices-Based Architecture is a simple concept: it advocates creating a system from a collection of small, isolated services, each of which owns their data, and is independently isolated, scalable and resilient to failure. Services integrate with other services in order to form a cohesive system that’s far more flexible than the typical enterprise systems we build today. Reactive Microservices Architecture: Design Principles for Distributed Systems - James Boner http://www.oreilly.com/programming/free/reactive-microservices-architecture.html
  9. 9. Microservices
  10. 10. Event Sourcing
  11. 11. Approche traditionnelle
  12. 12. Approche traditionnelle
  13. 13. Approche traditionnelle
  14. 14. Event sourcing
  15. 15. CQRS
  16. 16. CQRS ● Command ● Query ● Responsability ● Segregation
  17. 17. Approche traditionelle
  18. 18. CQRS Write (Command) : Event log. Modèle simple. Read (Query) : Dénormalisation, scalabillité, performance...
  19. 19. CQRS
  20. 20. Lagom
  21. 21. Overview
  22. 22. ● Construire un système de microservices ● Basé sur les principes réactifs ● Intégration dans l’environnement de développement Overview - Objectifs
  23. 23. ● Coeur du framework est écrit en Scala ● API en Java 8 ● Bientôt une version Scala Overview - Quel langage ?
  24. 24. ● Java 8 (& Scala) ● (Immutables) ● SBT / Maven ● Jackson ● Cassandra ● Play framework ● Guice ● Akka : Persistence, Pub/Sub, cluster ● Akka Stream ● SLF4J & Logback Overview - Composants techniques
  25. 25. Principales fonctionnalités
  26. 26. ● Description de l’API basée sur une interface ● Request / response synchrone ● Message asynchrone - Streaming Fonctionnalités - Service API
  27. 27. ● Garde l’état courant en mémoire ● Capture et persiste tous les changements d’états (events) ● CQRS Read side (query & update) ● Clustering / sharding ● CassandraSession Fonctionnalités - Persistance API
  28. 28. ● Intégration dans l’IDE ● Plusieurs services fournis par défaut ● Rechargement du code à chaud ● Une seule commande pour démarrer le système Fonctionnalités - Environnement de développement
  29. 29. ● ConductR pour la production ● Scalabilité ● Déploiement ● Monitoring Fonctionnalités - Environnement Production
  30. 30. Anatomie d’un projet
  31. 31. ● Activator ● Plugin SBT: *scaffolding-plugin-lagom Structure d’un projet - Démarrer un projet *https://github.com/Fabszn/scaffolding-plugin-lagom
  32. 32. Structure d’un projet - Arborescence
  33. 33. Structure d’un projet - Démarrage du système ● Une commande pour lancer le système : sbt runAll ● Plusieurs services activés au démarrage : ○ Cassandra ○ Service locator ○ service gateway ○ tous les services déclarés
  34. 34. Live coding
  35. 35. Next step ● [Documentation] http://www.lagomframework.com ● [Gitter] https://gitter.im/lagom/lagom ● [Github] https://github.com/lagom/lagom ● [Plugin] https://github.com/Fabszn/scaffolding-plugin-lagom
  36. 36. Merci!

×