Slide 1

Slide 1 text

1 Facing the Challenges of Microservice Development in the Cloud Sebastian Daschner Lead Java Developer Advocate

Slide 2

Slide 2 text

2 Sebastian Daschner • Lead Java Developer Advocate @ IBM • Consultant, trainer, book author • JCP Expert Group member & Jakarta EE Committer • Java Champion • Oracle Developer Champion (Alumni) • JavaOne Rockstar speaker

Slide 3

Slide 3 text

3 3 Cloud-native microservices Why should we care?

Slide 4

Slide 4 text

4 Java Enterprise today ● Still widely used in enterprises ● Known APIs & great developer experience ● Missing parts in a cloud-native, microservice world

Slide 5

Slide 5 text

5 Java Enterprise: What’s missing ● Resiliency ● Monitoring ● Distributed tracing ● Injectable configuration

Slide 6

Slide 6 text

6 6 MicroProfile An alternative?

Slide 7

Slide 7 text

7 MicroProfile: An alternative? ● Java Enterprise developer experience ● Addresses missing parts ● Enough for more complex applications?

Slide 8

Slide 8 text

8 MicroProfile: What’s missing ● Persistence, JPA, JTA ● Concurrency Utils ● EJB (Timers, Asynchronous)

Slide 9

Slide 9 text

9 Java Enterprise: Options ● Java EE 8 / Jakarta EE only ● MicroProfile 2.0 only ● Java EE plus MicroProfile additions

Slide 10

Slide 10 text

10 Java EE plus MicroProfile ● Proven technology, known APIs ● MicroProfile projects fills the gaps ● E.g. Java EE plus MP Config, Fault Tolerance, Metrics, OpenTracing

Slide 11

Slide 11 text

11 11 Example: Enterprise coffee

Slide 12

Slide 12 text

12 What else is missing? ● Observability (technical, infrastructure) ● Service discovery ● Traffic routing

Slide 13

Slide 13 text

13 13 Kubernetes & Istio Let’s go cloud native

Slide 14

Slide 14 text

14 Customizing the runtime ● Only including the required standards & runtime features ● Required? ● Trade-off between time & material spent on either development or runtime ● Optimize the moving parts (deployment artifacts) first

Slide 15

Slide 15 text

15 Servers supporting MicroProfile ● Open Liberty 18.0.0.3 ● Payara 5.184 ● Tom EE 8.0 ● Wildfly 14.0.1.Final

Slide 16

Slide 16 text

16 Key takeaways ● Use known APIs ● Think of MicroProfile as extensions for Java EE ● Development model that fits your need on application side ● Optimize deployment artifacts before runtime

Slide 17

Slide 17 text

17 Future: MicroProfile as Incubator? ● Crafting vendor-independent soon-to-be standards ● Providing what's missing from future Jakarta EE ● Sharing design principles with Jakarta EE ● Defining a reasonable process

Slide 18

Slide 18 text

18 18 Cloud native Java What about startup times & resource consumption?

Slide 19

Slide 19 text

19 19 Eclipse OpenJ9 An alternative runtime?

Slide 20

Slide 20 text

20 OpenJ9 ● OSS under Eclipse Foundation ● Performance optimizations (Start-up time, ramp-up, footprint) ● Free usage & security updates ● Commercial support (optional)

Slide 21

Slide 21 text

21 Thank You For Your Attention! ● sebastian-daschner.com ● @DaschnerS ● Book: Architecting Modern Java EE Applications ● https://github.com/sdaschner/coffee/tree/microservice-cloud- webinar