MicroProfile is a community-driven specification designed to provide a baseline platform definition that optimizes the Enterprise Java for microservices architecture and delivers application portability across multiple MicroProfile runtimes, including Open Liberty. It gives Java developers a platform to collaborate and innovate on areas of common interest. The MicroProfile specification consists of a collection of Enterprise Java APIs and technologies that together form a core baseline for microservices that aims to deliver application portability across multiple runtimes.
Watch Ivar Grimstad’s video Introduction to Eclipse MicroProfile to gain a deeper introduction to this initiative, or check out the useful MicroProfile overview. Alternatively, you can check out the recording of our IBM Crowdcast session A new and Open Way to Build Cloud-Native Microservices – MicroProfile.
Upon completion of this series, you will:
- Develop a greater understanding of what MicroProfile is and what is included within this specification
- Gain a greater understanding and appreciation of the open-source community that drives this specification
- Understand where this open-source specification fits within the Java enterprise application development process/stack
- Understand how this specification interoperates and interacts with other open source specifications, tools and technologies, including JakartaEE, Open Liberty, cloud technologies, etc.
- Deep-dive into the specific APIs or components of the most recent major release of this specification, understanding how each operates and how to them
- Get hands on with the APIs offered as part of this specification through interactive labs and tutorials
This series is designed to give developers an introduction to MicroProfile. However, a basic understanding of Java and application development would be helpful. You will also need an understanding of command lines in order to undertake the interactive labs and tutorials included in this learning series.
Estimated time to complete
Approximately 4 hours
What does MicroProfile include?
MicroProfile was created in 2016 and, shortly after version 1.0 was released, it became part of the Eclipse Foundation to ensure that it would remain vendor-neutral. Since then, there have been four major releases of the MicroProfile platform with the addition of many specifications to address the needs and feedback of users. MicroProfile 4.0 (the most recent major release), is composed of the components shown below.
There are also several stand-alone components that the MicroProfile community have created and develop, but are not part of the standard MicroProfile stack.
What does MicroProfile have to offer?
Prior to the creation of MicroProfile, the Java EE platform had become stable and mature, resulting in less-frequent releases. Despite Java EE innovation slowing down, web services continued to evolve, leading to the creation of new technologies such as RESTful web services, JSON, HTTP/2, and microservices architecture. With its slower release cycle, Java EE failed to keep up with changes in the industry. However, aware of the skills and investment that both vendors and enterprises put into Java EE, several vendors (including IBM), supported by the active Java community, decided to come together and create MicroProfile, an optimized platform for microservices architecture. MicroProfile offers vendor-neutral cloud-native APIs that can be freely used and can be integrated with many other cloud-native technologies and tools.
The benefits of MicroProfile include:
- Open source project
- Frequent, incremental feature releases
To learn more about exactly what MicroProfile offers the Java community, see Emily Jiang’s article, Eclipse MicroProfile: What it has to offer to the Java community.
How does MicroProfile interface with other open source projects and tools?
- Java EE, Jakarta EE, MicroProfile, or maybe all of them (article)
- Jakarta EE plus MicroProfile on Open Liberty (video)
Deep-dive into MicroProfile 4.0
MicroProfile 4.0 was the latest major release of this open source initiative. This was the first release of MicroProfile under the new MicroProfile Working Group. MicroProfile 4.0 adopts Jakarta EE 8 specifications, including:
- CDI 2.0
- JAX-RS 2.1
- JSON-B 1.0
- JSON-P 1.1
It also includes eight MicroProfile specifications:
- Rest Client 2.0
- Open API 2.0
- Fault Tolerance 3.0
- JWT 1.2
- Config 2.0
- Open Tracing 2.0
- Health 3.0
- Metrics 3.0
For a deep-dive into MicroProfile 4.0 and the corresponding API updates that come with it, check out Emily Jiang’s Open Liberty blog and corresponding video:
- A Deep Dive into MicroProfile 4.0 with Open Liberty (Open Liberty Blog post)
- Introduction to MicroProfile 4.0 (video)
For a deep-dive into some of the MicroProfile APIs with major updates released through MicroProfile 4.0, check out our Open Liberty blogs and our corresponding demo videos.
MicroProfile REST Client
- MicroProfile Rest Client 2.0 – First Look (Open Liberty blog post)
- MicroProfile Rest Client 2.0 video (video)
MicroProfile stand-alone projects
If you're interested in some of the MicroProfile stand-alone projects, check out our corresponding material on these:
MicroProfile Reactive Messaging
- Develop reactive microservices with Reactive Messaging (article)
- Reactive Systems Explained (O'Reilly e-book)
- MicroProfile Long Running Actions in Open Liberty (Open Liberty blog post)
- Have it your way with MicroProfile GraphQL! (Open Liberty blog post)
MicroProfile Context Propagation
- MicroProfile Context Propagation in Open Liberty (Open Liberty blog post)
- Concurrency with MicroProfile Context Propagation (Open Liberty documentation)
How can I get hands-on with MicroProfile?
If you’d like to get hands-on with the APIs offered as part of the MicroProfile specification, and/or how these interact with other technologies and tools — like Apache Kafka, Kubernetes, Istio, Jaegar, MongoDB, Zipkin, MicroShed Testing, etc. — then head over to Open Liberty Guides. Find labs that cover each of the APIs within the standard MicroProfile stack.
You can either complete these labs locally on your machine or utilize the cloud-hosted environment, which has all of the prerequisites already set up for you.
Or you can check out this tutorial focused on utilizing open technologies, including Open Liberty and MicroProfile, to build a microservice with Java and deploy it to the cloud with Kubernetes: Get your Java microservice up and running.