The document discusses how to develop cloud-native applications with Java using microservices, containers, Kubernetes, and Istio. It provides an example application to demonstrate traffic management, resiliency, and distributed logging capabilities. The example application code is available on GitHub to allow readers to try out the end-to-end microservices example discussed in the document.
The Codex of Business Writing Software for Real-World Solutions 2.pptx
How to develop your first cloud-native Applications with Java - 30 Minutes
1. How to develop your first
cloud-native Applications
with Java—
Niklas Heidloff
Developer Advocate, IBM
@nheidloff
Harald Uebele
Developer Advocate, IBM
@Harald_U
3. “Never not be afraid”
@nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
Grug Crood
Beginning of ‘The Croods’
4. “Microservices are a software
development technique [...]
that structures an application
as a collection of loosely
coupled services.”
Wikipedia
@nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
5. Continuous delivery
→ DevOps
Elasticity
→ Responsive apps
What are cloud-native Applications?
@nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
7. “A container image is a
lightweight, standalone,
executable package of
software that includes
everything needed to run an
application.”
docker.com
#IBMDeveloper github.com/nheidloff/cloud-native-starter
Infrastructure
Host Operating System
Container Runtime
AppA
AppB
AppC
AppD
AppE
8. “I’m a caveman. Can you
explain containers so that I
understand it?”
@nheidloff @Harald_U
Grug Crood
Caveman learning microservices
10. Java Image
@nheidloff @Harald_U
Open source stack
OpenJ9 0.12.1
OpenJDK 8u202-b08 from AdoptOpenJDK
Open Liberty 18.0.0.4
MicroProfile 2.1
Dockerfile
#IBMDeveloper github.com/nheidloff/cloud-native-starter
11. “Kubernetes (K8s) is an open-
source system for automating
deployment, scaling, and
management of containerized
applications.”
kubernetes.io
@nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
12. “When a container contains
everything to run a
microservice, why do I need
Kubernetes?”
@nheidloff @Harald_U
Grug Crood
Caveman learning microservices
16. “Istio is an open platform for
providing a uniform way to
integrate microservices,
manage traffic flow across
microservices, enforce
policies and aggregate
telemetry data.”
github.com/istio/istio
@nheidloff @Harald_U
17. “Why do I need a service
mesh? Can’t I just use
Kubernetes?”
@nheidloff @Harald_U
Grug Crood
Caveman learning microservices
18. Example Application – Traffic Management
Web-App
Web-API v1 Articles
Web-API v2 Authors
Browser Kubernetes with Istio
23. “Optimizing Enterprise Java
for a Microservices
Architecture.
[...] by innovating [...] with a
goal of standardization.”
microprofile.io
@nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
24. “Dude, I just learned Istio and
Kubernetes. Can you show
me a simple MicroProfile
example?”
@nheidloff @Harald_U
Grug Crood
Caveman learning microservices
25. Example Application – Resiliency
Web-App Web-API
Articles
Authors
Browser Kubernetes with Istio
39. “Never not be afraid”
@nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
Grug Crood
Beginning of ‘The Croods’
40. “Never be afraid”
@nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
Grug Crood
End of ‘The Croods’
41. IBM Developer
developer.ibm.com
IBM Cloud Lite account
ibm.biz/nheidloff
IBM loves open source
Kubernetes and Istio
OpenJ9 & AdoptOpenJDK
MicroProfile
Open Liberty
Get familiar with cloud-
native applications and
microservices
Thank you !
Get the code à
@nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter