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.

52482b46b478633a2b766bbf36916fd3?s=128

Mads Opheim

October 14, 2019
Tweet

Transcript

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

    Opheim @MadsOpheim
  2. Dober dan! 2

  3. Why? 3 The Motivation

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

    4
  5. 5 The Architecture

  6. MicroProfile In Practice. 6

  7. Community - individuals, organizations, vendors 7

  8. Current MicroProfile implementations 8

  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
  10. 10 MicroProfile is lightweight! https://dzone.com/articles/microprofile-5-things-you-need-to-know

  11. 11 MicroProfile in the Lightning Control Service

  12. 12 The Architecture

  13. 13 CDI

  14. 14 JAX-RS and JSON-P

  15. 15 MicroProfile in the Gateway Service

  16. 16 The Architecture

  17. 17 Config

  18. 18 Health Check: Response – Happy Days

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

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

  21. 21 Health Check: Liveness http://localhost:<port>/health/live

  22. 22 Health Check: Readiness http://localhost:<port>/health/ready

  23. 23 Metrics

  24. 24 Application-specific Metrics

  25. 25 Fault Tolerance – Retry and Circuit Breaker

  26. 26 Fault Tolerance – Timeout

  27. 27 Fault Tolerance – Fallback

  28. 28 REST Client

  29. 29 REST Client There be dragons. <rant />

  30. 30 Maturity

  31. 31 MicroProfile in the Time and Weather Services

  32. 32 The Architecture

  33. 33 OpenAPI

  34. 34 OpenAPI

  35. 35 DEMO

  36. 36 Things We’ve Learned

  37. New, cool things keep on coming! 37

  38. 38

  39. 39 Lombok - YAGNI?

  40. 40 Inject Logger - YAGNI?

  41. 41 A Better Logger

  42. App servers differ... 42

  43. 43

  44. 44 Other Cool Techy Stuff

  45. 45 Local Maven Repo

  46. 46 Faking an API

  47. 47

  48. Future Work 48

  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
  50. 50 Open Tracing

  51. 51 JWT Auth

  52. 52

  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
  54. 54

  55. 55

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

  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

  58. Thanks! @MadsOpheim @RMehmandarov 58