Thanks to Kevin Sutter, MicroProfile and Java EE Architect at IBM, for taking the time to take me through the evolution of Eclipse MicroProfile and the MicroProfile community consisting of IBM, the London Java Community (LJC), Red Hat, Tomitribe, Payara, SOUJava, Hazelcast, Fujitsu, KumuluzEE, SmartBear, and several other industry leaders.
Eclipse MicroProfile is an open source project with a mission of optimizing Enterprise Java for a microservices architecture by innovating across multiple implementations and collaborating on common areas of interest with the goal of eventual standardization.
The cross-industry group in the MicroProfile initiative are working on defining the programming model for Java microservices. This is a function of the movement wanting to do more with Java EE and the JCP. In addition, Oracle is now looking at moving Java EE to the open source foundation. Kevin believes as more code and solution-oriented Java EE is developed and becomes open source, the Java EE Guardians will become active contributors to both the Open Java EE and MicroProfile.
Eclipse MicroProfile is filling the void for microservices development in the Enterprise Java environment. Components of Java EE provide a nice foundation for microservices – CDI, JAX-RS, and JSON-P.
MicroProfile addresses the voids with:
- Config: external configuration from application to improve portability
- Fault Tolerance: circuit breakers, bulkhead, timeout, retry, and fallback policies.
- Health check: endpoint defined by a service with a simple return value to be used with Kubernetes liveness checks.
- Metrics: able to get more information for a given service – memory use, CPU use, number of threads, and the ability to retrieve, monitor, and feed metrics to a dashboard.
- JWT propagation: JWT token allows for authentication to be shared by microservices across vendors.
Developers are able to use these programming models with either APIs or annotations. In the end, microservices are available to external customers to define APIs to consumers so they are able to access desired features.