Du réactif au service du pneu connecté

Du réactif au service du pneu connecté

50a17cd98aab2cc4d8e144741e11b1b7?s=128

Julien Ponge

April 18, 2019
Tweet

Transcript

  1. Du réactif au service du pneu connecté Fabien Pomerol et

    Julien Ponge Devoxx France 2019
  2. Fabien Pomerol Julien Ponge @jponge @FabienPomerol

  3. None
  4. None
  5. None
  6. None
  7. SENSORS

  8. ON-BOARD ROUTER MANUAL DEVICES + SMARTPHONE

  9. Building an API to : Collect devices data Process it

    Generate Insight
  10. Services Use case? Tyre end of life prediction Security (low

    pressure detection) Fleet Management
  11. 23 Million Assets > 1 Billion Device Events > 500

    Req / sec Low resources footprint
  12. Original Architecture Monolithic REST API Event Producer Web / Mobile

    Applications
  13. Split Monolith into Microservices Rewrite using &

  14. Ingestion Service Micro Services !

  15. Ingestion Service Assets Service Micro Services !

  16. Ingestion Service Assets Service Tyre Maintenance Micro Services !

  17. Tyre Maintenance Edge Service Ingestion Service Assets Service Micro Services

    !
  18. Insights Service Ingestion Service Assets Service Tyre Maintenance Edge Service

    Micro Services !
  19. Ingestion Service Assets Service Alerting Tyre Maintenance Edge Service Insights

    Service Micro Services !
  20. Micro Services ! Ingestion Service Assets Service Tyre Maintenance Edge

    Service Alerting Insights Service
  21. Vert.x = ?

  22. Blocking I/O don’t scale! Thread request #1 Thread request #2

  23. Resources are scarce! “Cloud native” Virtual machines Containers

  24. Event-loop thread Async I/O do scale! Async events

  25. Reactive Systems Elasticity Resiliency Responsiveness

  26. Reactive Asynchronous Event-driven Toolkit Fast Polyglot Versatile

  27. Ingestion Flow Ingestion Service Event Producer TCP Socket HTTP:// MQTT

  28. { demo }

  29. Service Aggregation Web / Mobile Applications Edge Service Assets Service

    Insights Service http:// http:// http:// Composition
  30. Callback Future CompletionStage Quasar RxJava / RxKotlin Kotlin coroutines Event

  31. { demo }

  32. Event Driven Microservices Ingestion Service Insights Service Alerting Service Events

    splits by topic Consume Pressure Events Publish Computed Insights Consume Insights
  33. { demo }

  34. Embracing Async Programming was not so easy for the team

    Vert.x is unopinionated: easy to be tempted to built Framework / Cathedral Vert.x the hard way!
  35. Keep the Vert.x EventBus usage inside microservices No durability No

    back pressure
  36. None
  37. Data Synchronisation Distributed Locks Exactly Once Idempotence Distributed Cache Tracing

    A NEW WORLD OF PROBLEMS Data Denormalization Concurrency Control
  38. You can’t survive without monitoring and tracing !

  39. 40% off (all Manning) ctwdevoxxfr19

  40. Thank you! Fabien Pomerol et Julien Ponge Devoxx France 2019

    Icons made by Freepik, Smashicons from www.flaticon.com