Build a cloud-native microservices application in Java, step-by-step
Understand cloud-native concepts provided by Kubernetes and Istio, and learn how to write microservices with Java EE and Eclipse MicroProfile
In this series, IBM developer advocates Niklas Heidloff and Harald Uebele simplify the sometimes-intimidating process of building a full-featured microservices application running in Kubernetes. Follow along in easy-to-understand tutorials, with hands-on examples, as Niklas and Harald explain many aspects of modern application development. For additional details, see the project overview and design principles.
Learn how to put together a complete, secure back-end stack to run an enterprise application with a web front end that's fault-tolerant and scalable using modern cloud-native technologies like:
- Open Liberty, a high-performance open source Java application server
- Eclipse MicroProfile, a set of Java standards aimed at microservice development
- Kubernetes, the standard container orchestration platform
Some tutorials rely on services in IBM Cloud, all of which are available in the free tier. However, you will need a credit card or promo code to use the free Kubernetes cluster. A Kubernetes lite cluster itself is free of charge, but it cannot be created in an IBM Cloud Lite account.
The following figure shows the key services and components used in this project:
This project should take you less than an hour to set up. It is focused on first-time experience and consumability, so there are scripts to make setup easy.
Provision the necessary infrastructure and deploy the sample app on IBM Cloud.
Provision the necessary infrastructure and deploy the sample app to a local or public cloud.
Provision a free Kubernetes cluster on IBM Cloud and deploy your containerized microservices.
Learn how to create a Docker image from your Open Liberty application so that it's ready for deployment to Kubernetes.
Learn how to use MicroProfile Fallback annotations to allow your Java service to gracefully handle network errors.
Use Istio's declarative traffic shaping and routing features to safely experiment with A/B deployment scenarios in production.
Follow a sample application demonstration of using Istio traffic management with Kiali visualizations.
Learn how to write REST APIs with JAX-RS and document them with the OpenAPI implementation built-in to Open Liberty.
Learn how to use the MicroProfile REST client to invoke REST endpoints from Java.
Learn how to combine application-specific metrics with Istio's built-in telemetry features to monitor traffic inside your cluster.
Learn how to connect a LogDNA service with your Kubernetes cluster for simple centralized log management.
Learn how to use MicroProfile health checking with Kubernetes automatic liveness and readiness probes.
Learn how to inject configuration parameters into Java microservices at run-time using MicroProfile and Kubernetes.
Learn how to integrate an OpenID client library with IBM App ID to provide a simple user authentication mechanism.
Learn how to use Istio JWT based policies along with OpenID to provide secure access to authorized users.
As in the previous tutorial, use AppID and JWTs to only allow authorized users to access the Web app; but this tutorial shows how to use MicroProfile (not Istio) to secure access.
Learn how to use Open Liberty and JPA, an ORM framework, to persist objects to a DB2 database in IBM Cloud.
Telepresensetool to locally debug Java microservices.