Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Dober dan! 2

Slide 3

Slide 3 text

Why? 3 The Motivation

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

5 The Architecture

Slide 6

Slide 6 text

MicroProfile In Practice. 6

Slide 7

Slide 7 text

Community - individuals, organizations, vendors 7

Slide 8

Slide 8 text

Current MicroProfile implementations 8

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

11 MicroProfile in the Lightning Control Service

Slide 12

Slide 12 text

12 The Architecture

Slide 13

Slide 13 text

13 CDI

Slide 14

Slide 14 text

14 JAX-RS and JSON-P

Slide 15

Slide 15 text

15 MicroProfile in the Gateway Service

Slide 16

Slide 16 text

16 The Architecture

Slide 17

Slide 17 text

17 Config

Slide 18

Slide 18 text

18 Health Check: Response – Happy Days

Slide 19

Slide 19 text

19 Health Check: Response – Not So Happy Days

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

23 Metrics

Slide 24

Slide 24 text

24 Application-specific Metrics

Slide 25

Slide 25 text

25 Fault Tolerance – Retry and Circuit Breaker

Slide 26

Slide 26 text

26 Fault Tolerance – Timeout

Slide 27

Slide 27 text

27 Fault Tolerance – Fallback

Slide 28

Slide 28 text

28 REST Client

Slide 29

Slide 29 text

29 REST Client There be dragons.

Slide 30

Slide 30 text

30 Maturity

Slide 31

Slide 31 text

31 MicroProfile in the Time and Weather Services

Slide 32

Slide 32 text

32 The Architecture

Slide 33

Slide 33 text

33 OpenAPI

Slide 34

Slide 34 text

34 OpenAPI

Slide 35

Slide 35 text

35 DEMO

Slide 36

Slide 36 text

36 Things We’ve Learned

Slide 37

Slide 37 text

New, cool things keep on coming! 37

Slide 38

Slide 38 text

38

Slide 39

Slide 39 text

39 Lombok - YAGNI?

Slide 40

Slide 40 text

40 Inject Logger - YAGNI?

Slide 41

Slide 41 text

41 A Better Logger

Slide 42

Slide 42 text

App servers differ... 42

Slide 43

Slide 43 text

43

Slide 44

Slide 44 text

44 Other Cool Techy Stuff

Slide 45

Slide 45 text

45 Local Maven Repo

Slide 46

Slide 46 text

46 Faking an API

Slide 47

Slide 47 text

47

Slide 48

Slide 48 text

Future Work 48

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

50 Open Tracing

Slide 51

Slide 51 text

51 JWT Auth

Slide 52

Slide 52 text

52

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

54

Slide 55

Slide 55 text

55

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

Thanks! @MadsOpheim @RMehmandarov 58