SlideShare a Scribd company logo
When Cloud-Native Java
meets Containers,
Kubernetes and Istio
—
Yee-Kang Chang
yeekangc@ca.ibm.com
@yeekangc
Cloud-Native Java
Java-based
programming
paradigm that is native
or optimized for a
cloud environment
Containers
“A container is a
standard unit of
software that
packages up code and
all its dependencies so
the application runs
quickly and reliably
from one computing
environment to
another.”
- Docker.com
Kubernetes
“Kubernetes (K8s) is
an open-source
system for automating
deployment, scaling,
and management of
containerized
applications.”
- Kubernetes.io
Istio
“… service mesh is …
the network of
microservices that
make up [distributed
microservice]
applications and the
interactions between
them.
… Istio provides
behavioral insights
and operational
control over the
service mesh as a
whole, offering a
complete solution to
satisfy the diverse
requirements of
microservice
applications.”
- Istio.io© 2020 IBM Corporation 2
3
Cloud-Native Microservices
1. RESTful – Like cattle not pet, communicative
2. Configurable
3. Fault tolerant
4. Discoverable
5. Secure
6. Observable
7. Cloud ready – Heartbeat with cloud infrastructure
Eclipse MicroProfile
Config
Fault
Tolerance
JWT
Health
Check
MetricsOpen Tracing
Open API
JAX-RSJSON-PCDIRest Client JSON-B
REST
Foundation
100s of
Microservices
Operation
Focus
Microservice Deployment
Config
Fault
Tolerance
JWT
Health
Check
MetricsOpen Tracing
Open API
JAX-RSJSON-PCDIRest Client JSON-B
Eclipse MicroProfile
Config
Fault
Tolerance
JWT
Health
Check
MetricsOpen Tracing
Open API
JAX-RSJSON-PCDIRest Client JSON-B
REST
Foundation
100s of
Microservices
Operation
Focus
7
MicroProfile Config with Kubernetes
A B
env:
- name: GREETING
valueFrom:
configMapKeyRef:
name: greeting-config
key: message
kubectl create configmap greeting-config --from-literal
message=Greetings...
@Inject
@ConfigProperty(name = "GREETING")
private String greeting;
8
MicroProfile Health with Kubernetes
A B
readinessProbe:
httpGet:
path: /health/ready
port: 9080
initialDelaySeconds: 15
periodSeconds: 5
failureThreshold: 1
9
MicroProfile Metrics with Kubernetes
A B
@POST
@Counted(name="order", displayName="Order count",
description="Number of times orders
requested.")
public Response orderCoffee(@Valid @NotNull
CoffeeOrder order) {
...
}
Data in OpenMetrics
format
Collect and store data
with Prometheus
Visualize data with
Grafana
10
MP OpenTracing with Kubernetes
A B
@Traced
public void startBrew(CoffeeType
coffeeType) {
...
}
JAX-RS methods
are automatically
traced by default
Distributed tracing
system that supports
OpenTracing data
Deploy and view traces
with Zipkin or Jaeger
11
MicroProfile and Istio
MicroProfile Istio
Traffic Management N/A Routing rules • Use Istio for Blue-Green
deployments, canary
rollouts etc
Fault Tolerance Application layer
Retry, Timeout, Circuit
Breaker, Bulkhead, Fallback
Traffic between services
Retry, Timeout, Circuit
Breaker, Bulkhead
• Istio for broader traffic
management (and fault
injection for testing)
• Application-level fallback
with MicroProfile
Security Secure services with
JWT
Mutual TLS for transport
Origin authentication
with JWT
• Use Istio’s origin
authentication if services
are not secured
Observability or
Telemetry
API to instrument apps
Roll your own
Prometheus, Grafana,
Zipkin, Jaeger etc
Integration with
Prometheus, Grafana,
Jaeger, Zipkin
• OOTB integration
between MP-based
services and Istio
• View service mesh with
Istio’s Kiali
THE 12 FACTORS
1. Codebase
2. Dependencies
3. Config
4. Backing Services
5. Build, Release, Run
6. Processes
7. Port binding
8. Concurrency
9. Disposability
10.Dev / Prod parity
11.Logs
12.Admin Processes
THE 12 FACTORS
1. Codebase
2. Dependencies
3. Config
4. Backing Services
5. Build, Release, Run
6. Processes
7. Port binding
8. Concurrency
9. Disposability
10.Dev / Prod parity
11.Logs
12.Admin Processes
Istio to manage the
services …
Cloud-Native Java
programming
model like
MicroProfile to code
application
behaviours easily
for Cloud!
Kubernetes to
orchestrate the
environment …
Containerize your
applications …
Cloud-Native Java
+ Containers, Kubernetes and Istio
= A Nice Match
© 2020 IBM Corporation 13
Resources Further reading
MicroProfile, the
microservice programming
model made for Istio
https://www.eclipse.org/c
ommunity/eclipse_newsle
tter/2018/september/Micr
oProfile_istio.php
Try it out
Configuring microservices
in Kubernetes
https://openliberty.io/guid
es/kubernetes-
microprofile-config.html
Checking the health of
microservices on
Kubernetes
https://openliberty.io/guid
es/kubernetes-
microprofile-health.html
Managing microservice
traffic using Istio
https://openliberty.io/guid
es/istio-intro.html
Sample implementation
https://github.com/ibm-
cloud-
architecture/refarch-
cloudnative-
kubernetes/blob/micropro
file/docs/istio.md
© 2020 IBM Corporation 14
When Cloud-Native Java meets Containers, Kubernetes and Istio

More Related Content

DOCX
Providing user security guarantees in public infrastructure clouds
PDF
Providing user security guarantees in public infrastructure clouds
PPT
Calico and stars policy
PDF
Ignite 2015 NA Technology Breakout Session - "Security, Stability and Scalabi...
PDF
Ignite 2015 EU - Technology Breakout Session "Security, Stability and Scalab...
PPT
Calico and simple policy
PPTX
Design and Deploy Secure Clouds for Financial Services Use Cases
PDF
Automatize a detecção de ameaças e evite falsos positivos
Providing user security guarantees in public infrastructure clouds
Providing user security guarantees in public infrastructure clouds
Calico and stars policy
Ignite 2015 NA Technology Breakout Session - "Security, Stability and Scalabi...
Ignite 2015 EU - Technology Breakout Session "Security, Stability and Scalab...
Calico and simple policy
Design and Deploy Secure Clouds for Financial Services Use Cases
Automatize a detecção de ameaças e evite falsos positivos

What's hot (19)

PDF
Kata containers workshop_openinfrasummit_denver_may2019
PDF
Combining Logs, Metrics, and Traces for Unified Observability
PPTX
Hands-on Lab: Test Drive Your OpenStack Network
PPTX
Monitoring Security Policies for Container and OpenStack Clouds
PDF
Open source IoT gateway
DOCX
AUTHENTICATION HANDOVER AND PRIVACY PROTECTION IN 5G HETNETS USING SOFTWARE-D...
PDF
SECURE DATA SHARING IN CLOUD COMPUTING USING REVOCABLE-STORAGE IDENTITY-BASED...
PDF
ATTRIBUTE-BASED DATA SHARING SCHEME REVISITED IN CLOUD COMPUTING,bulk ieee pr...
PDF
Pro active datacenter-infrastructures-ccie-bulent-morten-16.10.2014
PPTX
MidoNet Differentiation and Overview
PDF
FIWARE-IoT-Broker-introduction
PPT
Calico and juju
PDF
Cloud Computing - ISO/IEC 17788
PPTX
Cloud computing
PPTX
OpenStack Opportunity - Citrix
PDF
IEEE NFV-SDN 2017 - On the establishment of trust in the cloud-based ETSI NFV...
PDF
Comparison: VNS3 vs Vyatta
PDF
Enhancing the Techniques to Secure Grid Computing
PDF
Hybrid Security Network for Cloud Information Centre (HSNIC)
Kata containers workshop_openinfrasummit_denver_may2019
Combining Logs, Metrics, and Traces for Unified Observability
Hands-on Lab: Test Drive Your OpenStack Network
Monitoring Security Policies for Container and OpenStack Clouds
Open source IoT gateway
AUTHENTICATION HANDOVER AND PRIVACY PROTECTION IN 5G HETNETS USING SOFTWARE-D...
SECURE DATA SHARING IN CLOUD COMPUTING USING REVOCABLE-STORAGE IDENTITY-BASED...
ATTRIBUTE-BASED DATA SHARING SCHEME REVISITED IN CLOUD COMPUTING,bulk ieee pr...
Pro active datacenter-infrastructures-ccie-bulent-morten-16.10.2014
MidoNet Differentiation and Overview
FIWARE-IoT-Broker-introduction
Calico and juju
Cloud Computing - ISO/IEC 17788
Cloud computing
OpenStack Opportunity - Citrix
IEEE NFV-SDN 2017 - On the establishment of trust in the cloud-based ETSI NFV...
Comparison: VNS3 vs Vyatta
Enhancing the Techniques to Secure Grid Computing
Hybrid Security Network for Cloud Information Centre (HSNIC)
Ad

Similar to When Cloud-Native Java meets Containers, Kubernetes and Istio (20)

PDF
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
PPTX
Kubernetes And Istio and Azure AKS DevOps
PPTX
Build12 factorappusingmp
PDF
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
PDF
Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...
PDF
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
PDF
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
PDF
How to Make Istio Work with Your App
PDF
How to Make Istio Work with Your App
PPTX
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
PPTX
Federating Infrastructure as a Service cloud computing systems to create a un...
PPTX
Api service mesh and microservice tooling
PDF
DevOpsDays Houston 2024: Kubernetes at Scale Going Multi-Cluster with Istio
PDF
Kubernetes at Scale: Going Multi-Cluster with Istio
PDF
Istio Triangle Kubernetes Meetup Aug 2019
PDF
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
PDF
FIWARE Global Summit - Using ML/AI Techniques with FIWARE and Connected IoT D...
PDF
Istio: Using nginMesh as the service proxy
PPTX
Micro profile and istio
PPTX
Cloud Native Summit 2019 Summary
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Kubernetes And Istio and Azure AKS DevOps
Build12 factorappusingmp
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
How to Make Istio Work with Your App
How to Make Istio Work with Your App
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
Federating Infrastructure as a Service cloud computing systems to create a un...
Api service mesh and microservice tooling
DevOpsDays Houston 2024: Kubernetes at Scale Going Multi-Cluster with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
Istio Triangle Kubernetes Meetup Aug 2019
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
FIWARE Global Summit - Using ML/AI Techniques with FIWARE and Connected IoT D...
Istio: Using nginMesh as the service proxy
Micro profile and istio
Cloud Native Summit 2019 Summary
Ad

Recently uploaded (20)

PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Approach and Philosophy of On baking technology
PDF
Electronic commerce courselecture one. Pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation theory and applications.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
KodekX | Application Modernization Development
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Spectroscopy.pptx food analysis technology
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
sap open course for s4hana steps from ECC to s4
Chapter 3 Spatial Domain Image Processing.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Approach and Philosophy of On baking technology
Electronic commerce courselecture one. Pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation theory and applications.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KodekX | Application Modernization Development
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
The AUB Centre for AI in Media Proposal.docx
Spectroscopy.pptx food analysis technology
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
MYSQL Presentation for SQL database connectivity
sap open course for s4hana steps from ECC to s4

When Cloud-Native Java meets Containers, Kubernetes and Istio

  • 1. When Cloud-Native Java meets Containers, Kubernetes and Istio — Yee-Kang Chang yeekangc@ca.ibm.com @yeekangc
  • 2. Cloud-Native Java Java-based programming paradigm that is native or optimized for a cloud environment Containers “A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.” - Docker.com Kubernetes “Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications.” - Kubernetes.io Istio “… service mesh is … the network of microservices that make up [distributed microservice] applications and the interactions between them. … Istio provides behavioral insights and operational control over the service mesh as a whole, offering a complete solution to satisfy the diverse requirements of microservice applications.” - Istio.io© 2020 IBM Corporation 2
  • 3. 3 Cloud-Native Microservices 1. RESTful – Like cattle not pet, communicative 2. Configurable 3. Fault tolerant 4. Discoverable 5. Secure 6. Observable 7. Cloud ready – Heartbeat with cloud infrastructure
  • 4. Eclipse MicroProfile Config Fault Tolerance JWT Health Check MetricsOpen Tracing Open API JAX-RSJSON-PCDIRest Client JSON-B REST Foundation 100s of Microservices Operation Focus
  • 6. Eclipse MicroProfile Config Fault Tolerance JWT Health Check MetricsOpen Tracing Open API JAX-RSJSON-PCDIRest Client JSON-B REST Foundation 100s of Microservices Operation Focus
  • 7. 7 MicroProfile Config with Kubernetes A B env: - name: GREETING valueFrom: configMapKeyRef: name: greeting-config key: message kubectl create configmap greeting-config --from-literal message=Greetings... @Inject @ConfigProperty(name = "GREETING") private String greeting;
  • 8. 8 MicroProfile Health with Kubernetes A B readinessProbe: httpGet: path: /health/ready port: 9080 initialDelaySeconds: 15 periodSeconds: 5 failureThreshold: 1
  • 9. 9 MicroProfile Metrics with Kubernetes A B @POST @Counted(name="order", displayName="Order count", description="Number of times orders requested.") public Response orderCoffee(@Valid @NotNull CoffeeOrder order) { ... } Data in OpenMetrics format Collect and store data with Prometheus Visualize data with Grafana
  • 10. 10 MP OpenTracing with Kubernetes A B @Traced public void startBrew(CoffeeType coffeeType) { ... } JAX-RS methods are automatically traced by default Distributed tracing system that supports OpenTracing data Deploy and view traces with Zipkin or Jaeger
  • 11. 11 MicroProfile and Istio MicroProfile Istio Traffic Management N/A Routing rules • Use Istio for Blue-Green deployments, canary rollouts etc Fault Tolerance Application layer Retry, Timeout, Circuit Breaker, Bulkhead, Fallback Traffic between services Retry, Timeout, Circuit Breaker, Bulkhead • Istio for broader traffic management (and fault injection for testing) • Application-level fallback with MicroProfile Security Secure services with JWT Mutual TLS for transport Origin authentication with JWT • Use Istio’s origin authentication if services are not secured Observability or Telemetry API to instrument apps Roll your own Prometheus, Grafana, Zipkin, Jaeger etc Integration with Prometheus, Grafana, Jaeger, Zipkin • OOTB integration between MP-based services and Istio • View service mesh with Istio’s Kiali
  • 12. THE 12 FACTORS 1. Codebase 2. Dependencies 3. Config 4. Backing Services 5. Build, Release, Run 6. Processes 7. Port binding 8. Concurrency 9. Disposability 10.Dev / Prod parity 11.Logs 12.Admin Processes THE 12 FACTORS 1. Codebase 2. Dependencies 3. Config 4. Backing Services 5. Build, Release, Run 6. Processes 7. Port binding 8. Concurrency 9. Disposability 10.Dev / Prod parity 11.Logs 12.Admin Processes
  • 13. Istio to manage the services … Cloud-Native Java programming model like MicroProfile to code application behaviours easily for Cloud! Kubernetes to orchestrate the environment … Containerize your applications … Cloud-Native Java + Containers, Kubernetes and Istio = A Nice Match © 2020 IBM Corporation 13
  • 14. Resources Further reading MicroProfile, the microservice programming model made for Istio https://www.eclipse.org/c ommunity/eclipse_newsle tter/2018/september/Micr oProfile_istio.php Try it out Configuring microservices in Kubernetes https://openliberty.io/guid es/kubernetes- microprofile-config.html Checking the health of microservices on Kubernetes https://openliberty.io/guid es/kubernetes- microprofile-health.html Managing microservice traffic using Istio https://openliberty.io/guid es/istio-intro.html Sample implementation https://github.com/ibm- cloud- architecture/refarch- cloudnative- kubernetes/blob/micropro file/docs/istio.md © 2020 IBM Corporation 14