1 of 27

Eclipse MicroProfile 1.2

October 03, 2017

1

Eclipse MicroProfile Community

2 of 27

What is Eclipse MicroProfile?

  • Eclipse MicroProfile is an open-source community specification for Enterprise Java microservices
  • A community of individuals, organizations, and vendors collaborating within an open source (Eclipse) project to bring microservices to the Enterprise Java community

2

3 of 27

Community - individuals, organizations, vendors

3

And Growing ...

4 of 27

MicroProfile 1.0 (Sep, 2016)

4

MicroProfile 1.0

JAX-RS 2.0

JSON-P 1.0

CDI 1.2

5 of 27

Eclipse MicroProfile 1.1 (Aug, 2017)

5

MicroProfile 1.1

= New

= No change from last release

JAX-RS 2.0

JSON-P 1.0

CDI 1.2

Config 1.0

6 of 27

Configuration 1.0

Applications need to be configured based on a running environment. It must be possible to modify configuration data from outside an application so that the application itself does not need to be repackaged

6

Dev

Test

Prod

7 of 27

Configuration 1.0 - Influence and Implementations

Multiple projects directly influenced this proposal and acted as basis for this API, such as:

Current implementations:

  • Apache Geronimo Config
  • WebSphere Liberty (Beta)

7

8 of 27

Eclipse MicroProfile 1.1 - release content

  • Contexts and Dependency Injection (CDI 1.2)
  • Java API for RESTful Web Services (JAX-RS 2.0)
  • Java API for JSON Processing (JSON-P 1.0)
  • Eclipse MicroProfile 1.1 Specification PDF document
  • Config 1.0:
    • Test Compatibility Kit (TCK)
    • Javadocs
    • Config 1.0 Specification PDF document
    • API Maven artifact coordinates
    • Git tag

8

9 of 27

9

Announcing ...

1.2

10 of 27

Eclipse MicroProfile 1.2 (Sep, 2017)

10

MicroProfile 1.2

= Updated

= No change from last release

JAX-RS 2.0

JSON-P 1.0

CDI 1.2

Config 1.1

Fault�Tolerance 1.0

JWT�Propagation 1.0

Health�Check 1.0

Metrics 1.0

= New

11 of 27

Health Check 1.0

Health checks are used to probe the state of a computing node from another machine (i.e. kubernetes service controller) with the primary target being cloud infrastructure environments where automated processes maintain the state of computing nodes

11

12 of 27

Health Check 1.0 - Goals

  • MUST be compatibility with well known cloud platforms (i.e. http://kubernetes.io/docs/user-guide/liveness/)
  • MUST be appropriate for machine-to-machine communication
  • SHOULD give enough information for a human administrator

12

13 of 27

Metrics 1.0

To ensure reliable operation of software it is necessary to monitor essential system parameters. Metrics adds well-known monitoring endpoints and metrics for each process

13

Metric Registry

Required Base metrics

Application metrics

Vendor-specific metrics

14 of 27

Metrics 1.0 - Influence

Multiple projects directly influenced this proposal and acted as basis for this API, such as:

  • Alternatives considered:
    1. Jolokia JMX-HTTP bridge
  • References:

Metrics are different from Health Checks, which are primarily targeted at a quick yes/no response to the question "Is my application still running ok?"

14

15 of 27

Fault Tolerance 1.0

Fault tolerance is about leveraging different strategies to guide the execution and result of some logic. Retry policies, bulkheads, and circuit breakers are popular concepts in this area. They dictate whether and when executions should take place, and fallbacks offer an alternative result when an execution does not complete successfully

15

16 of 27

Fault Tolerance 1.0 - Influence and goal

Multiple projects directly influenced this proposal and acted as basis for this API, such as:

  • Hystrix
  • Failsafe

Goal:

  • Separate the responsibility of executing logic (Runnables/Callables/etc) from guiding when execution should take place (through retry policies, bulkheads, circuit breakers)

16

17 of 27

JWT Propagation 1.0

The security requirements that involve microservice architectures are strongly related with RESTful Security. In a RESTful architecture style, services are usually stateless and any security state associated with a client is sent to the target service on every request in order to allow services to re-create a security context for the caller and perform both authentication and authorization checks

17

18 of 27

JWT Propagation 1.0 - Influence and goals

Multiple projects/standards directly influenced this proposal and acted as basis for this API, such as:

Goal:

  • One of the main strategies to propagate the security state from clients to services or even from services to services involves the use of security tokens.
  • For RESTful based microservices, security tokens offer a very lightweight and interoperable way to propagate identities across different services.

18

19 of 27

Eclipse MicroProfile 1.2 - release content

  • Contexts and Dependency Injection (CDI 1.2)
  • Java API for RESTful Web Services (JAX-RS 2.0)
  • Java API for JSON Processing (JSON-P 1.0)
  • Eclipse MicroProfile 1.2 Specification PDF document

19

- Product page

- Technology Compatibility Kit (TCK)

- Javadocs

- Spec PDF doc

- API Maven artifact coordinates

- Git tag

- Product page

- Technology Compatibility Kit (TCK)

- Javadocs

- Spec PDF doc

- API Maven artifact coordinates

- Git tag

- Product page

- Technology Compatibility Kit (TCK)

- Javadocs

- Spec PDF doc

- API Maven artifact coordinates

- Git tag

- Product page

- Technology Compatibility Kit (TCK)

- Javadocs

- Spec PDF doc

- API Maven artifact coordinates

- Git tag

- Product page

- Technology Compatibility Kit (TCK)

- Javadocs

- Spec PDF doc

- API Maven artifact coordinates

- Git tag

20 of 27

Eclipse MicroProfile 1.3 (Q4 CY2017 ?)

20

MicroProfile 1.3

= New

= No change from last release

JAX-RS 2.0

JSON-P 1.0

CDI 1.2

Config 1.1

Fault�Tolerance 1.0

JWT�Propagation 1.0

Health�Check 1.0

Metrics 1.0

Open Tracing 1.0

Open API 1.0

Roadmap

21 of 27

Eclipse MicroProfile 2.0 (Q4 CY2017 ?)

21

MicroProfile 2.0

= New

= No change from last release

JAX-RS 2.1

JSON-P 1.1

CDI 2.0

Config 1.1

Fault�Tolerance 1.0

JWT�Propagation 1.0

Health�Check 1.0

Metrics 1.0

Open Tracing 1.0

Open API 1.0

JSON-B 1.0

Roadmap

22 of 27

Eclipse MicroProfile @

  • Hosted at the Eclipse Foundation booth
  • Booth #6140
  • Subject Matter Experts will be at booth
  • Visit us to discuss:
    • MicroProfile Roadmap
    • MicroProfile 1.2 Release
    • More about Config API, Health Check, Fault Tolerance, Metrics, JWT Propagation
    • See Demo
    • Much more…
  • Play bingo game and redeem your swag - see you there!

22

23 of 27

Get Involved!

23

24 of 27

Eclipse MicroProfile

24

25 of 27

Old slides

25

26 of 27

Innovation vs. Standardization

Eclipse MicroProfile

(Open Source) Project

Incremental feature release

Community controls pace

Java Community Process

Standards organization

Large multi-feature releases

Spec Lead controls pace

26

27 of 27

Accelerating Adoption of Microservices

27

Time

8

9

1.0

1.1

2.0

2.1

2.2