Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IoT Powered by MicroProfile - MakeIT

IoT Powered by MicroProfile - MakeIT

At MakeIT, Portoroz, Slovenia.

Mads Opheim

October 14, 2019
Tweet

More Decks by Mads Opheim

Other Decks in Technology

Transcript

  1. MakeIT Slovenia
    IoT Powered by
    MicroProfile
    Rustam Mehmandarov
    @RMehmandarov
    Mads Opheim
    @MadsOpheim

    View Slide

  2. Dober
    dan!
    2

    View Slide

  3. Why?
    3
    The Motivation

    View Slide

  4. New office, new lights
    Just Add Coffee.
    And Enterprise Developers.
    4

    View Slide

  5. 5
    The Architecture

    View Slide

  6. MicroProfile
    In Practice.
    6

    View Slide

  7. Community - individuals, organizations, vendors
    7

    View Slide

  8. Current MicroProfile implementations
    8

    View Slide

  9. Eclipse MicroProfile 3.0 (Jun 2019)
    9
    MicroProfile 3.0
    JAX-RS 2.1
    JSON-P 1.1
    CDI 2.0
    Config 1.3
    Fault
    Tolerance
    2.0
    JWT
    Propagation
    1.1
    Health
    Check 2.0
    Metrics 2.0
    Open
    Tracing 1.3
    Open API 1.1
    = Updated
    = No change from last release (MicroProfile 2.2)
    = New
    Rest Client
    1.3
    JSON-B 1.0

    View Slide

  10. 10
    MicroProfile is lightweight!
    https://dzone.com/articles/microprofile-5-things-you-need-to-know

    View Slide

  11. 11
    MicroProfile in the
    Lightning
    Control
    Service

    View Slide

  12. 12
    The Architecture

    View Slide

  13. 13
    CDI

    View Slide

  14. 14
    JAX-RS and JSON-P

    View Slide

  15. 15
    MicroProfile in the
    Gateway
    Service

    View Slide

  16. 16
    The Architecture

    View Slide

  17. 17
    Config

    View Slide

  18. 18
    Health Check:
    Response – Happy Days

    View Slide

  19. 19
    Health Check:
    Response – Not So Happy Days

    View Slide

  20. 20
    Health Check:
    HowTo - OLD (pre-MP 3.0)

    View Slide

  21. 21
    Health Check: Liveness
    http://localhost:/health/live

    View Slide

  22. 22
    Health Check: Readiness
    http://localhost:/health/ready

    View Slide

  23. 23
    Metrics

    View Slide

  24. 24
    Application-specific Metrics

    View Slide

  25. 25
    Fault Tolerance – Retry and Circuit Breaker

    View Slide

  26. 26
    Fault Tolerance – Timeout

    View Slide

  27. 27
    Fault Tolerance – Fallback

    View Slide

  28. 28
    REST
    Client

    View Slide

  29. 29
    REST Client
    There be dragons.

    View Slide

  30. 30
    Maturity

    View Slide

  31. 31
    MicroProfile in the
    Time and
    Weather
    Services

    View Slide

  32. 32
    The Architecture

    View Slide

  33. 33
    OpenAPI

    View Slide

  34. 34
    OpenAPI

    View Slide

  35. 35
    DEMO

    View Slide

  36. 36
    Things We’ve
    Learned

    View Slide

  37. New, cool things
    keep on coming!
    37

    View Slide

  38. 38

    View Slide

  39. 39
    Lombok - YAGNI?

    View Slide

  40. 40
    Inject Logger - YAGNI?

    View Slide

  41. 41
    A Better Logger

    View Slide

  42. App servers differ...
    42

    View Slide

  43. 43

    View Slide

  44. 44
    Other Cool
    Techy Stuff

    View Slide

  45. 45
    Local
    Maven
    Repo

    View Slide

  46. 46
    Faking an API

    View Slide

  47. 47

    View Slide

  48. Future
    Work
    48

    View Slide

  49. Eclipse MicroProfile 3.0 (Jun 2019)
    49
    MicroProfile 3.0
    JAX-RS 2.1
    JSON-P 1.1
    CDI 2.0
    Config 1.3
    Fault
    Tolerance
    2.0
    JWT
    Propagation
    1.1
    Health
    Check 2.0
    Metrics 2.0
    Open
    Tracing 1.3
    Open API 1.1
    = Updated
    = No change from last release (MicroProfile 2.2)
    = New
    Rest Client
    1.3
    JSON-B 1.0

    View Slide

  50. 50
    Open
    Tracing

    View Slide

  51. 51
    JWT
    Auth

    View Slide

  52. 52

    View Slide

  53. Eclipse MicroProfile 3.1
    53
    Roadmap
    Standalone
    Context
    Propagation
    1.0
    LRA 1.0
    Reactive
    Streams
    Operators 1.1
    Outside umbrella
    GraphQL 1.0
    MicroProfile 3.1
    JAX-RS 2.1
    JSON-P 1.1
    CDI 2.0
    Config 1.4
    Fault
    Tolerance
    2.0
    JWT
    Propagation
    1.1
    Health
    Check 2.0
    Metrics 2.0
    Open
    Tracing 1.3
    Open API
    2.0
    = Updated
    = No change from last release (MicroProfile 3.0)
    = New
    Rest Client
    1.3
    JSON-B 1.0
    Reactive
    Messaging
    1.0

    View Slide

  54. 54

    View Slide

  55. 55

    View Slide

  56. Everything’s on GitHub!
    56
    https://github.com/mehmandarov/microprofile-iot
    More info on https://microprofile.io

    View Slide

  57. Some links:
    57
    https://github.com/mehmandarov/microprofile-iot
    https://mehmandarov.com/microprofile-101-part1
    https://madsop.github.io/microservices-with-microprofile
    More info on https://microprofile.io

    View Slide

  58. Thanks!
    @MadsOpheim
    @RMehmandarov
    58

    View Slide