SlideShare una empresa de Scribd logo
1 de 41
Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Cloud-Native Java Microservices
Workshop
Jamie L Coleman
Software Engineer/Advocate Team Lead
Yasmin Aumeeruddy
Software Engineer/Advocate
Contents
2Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Why move to the Cloud? 03
What the Cloud offers 04
What is the Hybrid Cloud? 07
Eclipse MicroProfile 08
Contributors 10
Community 11
Vendors/Implementations 14
MicroProfile Technologies 15
MicroProfile Stack 16
MicroProfile Core Technologies 17
Docker, Kubenetes and Istio 29
Deploying to the Cloud with Containers 30
MicroProfile Health and Config 33
A Full Open Stack 35
Open Liberty Overview 37
Open J9 Overview 38
@Jamie_Lee_C
Why move to
the Cloud?
3Javantura/ February 22th, 2020 / © 2020 IBM Corporation
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 4
What the Cloud offers
Demand
time
One big server running all the time?
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 5
What the Cloud offers
Demand
time
One big server running all the time?
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 6
What the Cloud offers
Demand
time
One big server running all the time?
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 7
What is Hybrid Cloud and why
Use it?
Hybrid Cloud
The platform for digital
transformation
Integrate seamlessly across
any platform
Add cognitive
capabilities
Adopt a hybrid cloud
strategy
Optimize the cost of
existing infrastructure
Implement Microservices Architecture &
leverage Docker Containers for portability
Enhance applications with new
services
Adopt and Expand API
usage
Move a portion of IT infrastructure to
cloud
DevTest in the cloud
@Jamie_Lee_C
Eclipse
MicroProfile
8Javantura/ February 22th, 2020 / © 2020 IBM Corporation
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 9
What is MicroProfile?
● Eclipse MicroProfile is an open-source
community specification for Enterprise Java
microservices
● A community of individuals, organizations, and
vendors collaborating within an open source
(Eclipse) project to bring microservices to the
Enterprise Java community
microprofile.io
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 10
MicroProfile Contributors
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 11
MicroProfile Community
● Over a dozen vendors and Java user groups
● 140 individual contributors
● Over half a dozen independent
implementations
@Jamie_Lee_C
Locations of some
MicroProfile Contributors
12Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Seattle – USA
Ontario – Canada
Canberra – Australia
Stuttgart – Germany
Rochester – USA
Prague – Czech Rep
Newcastle – UK
Munich – Germany
Paris – France
Hursley – UK
Centurion – South Africa
Boston – USA
Sao Paulo – Brazil
Rio de Janeiro – Brazil
Coimbra – Portugal
Amsterdam – Netherlands
Source: MicroProfile.io
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 13
MicroProfile Community
Video HangoutsBi-Weekly & Quarterly
General community
Meetings
MicroProfile ProjectsGoogle Groups
YouTube Channel
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 14
MicroProfile
Vendors/Implementations
@Jamie_Lee_C
MicroProfile
Technologies
15Javantura/ February 22th, 2020 / © 2020 IBM Corporation
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 16
MicroProfile 3.0 Stack
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.3
Fault
Tolerance 2.0
JWT
Propagation
1.1
Health
Check 2.0
Metrics 2.0
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1
Rest Client
1.3
@Jamie_Lee_C
MicroProfile Core Technologies
17Javantura/ February 22th, 2020 / © 2020 IBM Corporation
B
@Path("/brews")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class BrewsResource {
@POST
public Response startCoffeeBrew(CoffeeBrew brew) {...)
}
JAX-RS
@Jamie_Lee_C
MicroProfile Core Technologies
18Javantura/ February 22th, 2020 / © 2020 IBM Corporation
REST Client
BA
@RegisterRestClient
@Path("/resources/brews")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface BaristaClient {
@POST
public Response startCoffeeBrew(CoffeeBrew brew);
}
@Jamie_Lee_C
MicroProfile Core Technologies
19Javantura/ February 22th, 2020 / © 2020 IBM Corporation
CDI
BA
@Path("/orders")
public class OrdersResource {
@Inject
CoffeeShop coffeeShop;
...
}
@Jamie_Lee_C
MicroProfile Core Technologies
20Javantura/ February 22th, 2020 / © 2020 IBM Corporation
JSON-B &
JSON-P
A B
...
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response startCoffeeBrew(CoffeeBrew brew) {
CoffeeType coffeeType = brew.getType();
...
}
public class CoffeeBrew {
private CoffeeType type;
public CoffeeType getType() {
return type;
}
public void setType(CoffeeType type) {
this.type = type;
}
}
@Jamie_Lee_C
MicroProfile Core Technologies
21Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Open API
A B
openapi: 3.0.0
info:
title: Deployed APIs
version: 1.0.0
servers:
- url: http://grahams-mbp-2.lan:9081/barista
paths:
/resources/brews:
post:
operationId: startCoffeeBrew
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CoffeeBrew'
responses:
default:
description: default response
components:
schemas:
CoffeeBrew:
type: object
properties:
type:
type: string
enum:
- ESPRESSO
- LATTE
- POUR_OVER
@Jamie_Lee_C
MicroProfile Core Technologies
22Javantura/ February 22th, 2020 / © 2020 IBM Corporation
JWT
@POST
@RolesAllowed({ "admin", "coffee-shop" })
public Response startCoffeeBrew(CoffeeBrew brew) {...}
BA
@Jamie_Lee_C
MicroProfile Core Technologies
23Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Fault
Tolerance
A B
@Retry(retryOn = TimeoutException.class,
maxRetries = 4,
maxDuration = 10,
durationUnit = ChronoUnit.SECONDS)
public void startCoffeeBrew(CoffeeBrew brew) {
Response response = baristaClient.startCoffeeBrew(brew);
...
}
@Jamie_Lee_C
MicroProfile Core Technologies
24Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Config
A B
@ApplicationScoped
public class Barista {
@Inject
@ConfigProperty(name="default_barista_base_url")
String baristaBaseURL;
...
}
@Jamie_Lee_C
MicroProfile Core Technologies
25Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Health
A B
{
"checks": [
{
"data": {
"barista service": "available"
},
"name": "CoffeeShopHealth",
"state": "UP"
}
],
"outcome": "UP"
}
@Health
@ApplicationScoped
public class HealthResource implements HealthCheck {
...
public boolean isHealthy() {...}
@Override
public HealthCheckResponse call() {
if (!isHealthy()) {
return HealthCheckResponse.named(...).down().build();
}
return HealthCheckResponse.named(...).up().build();
}
}
@Jamie_Lee_C
MicroProfile Core Technologies
26Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Metrics
A B
@POST
@Counted(name="order", displayName="Order count",
description="Number of times orders requested.", monotonic=true)
public Response orderCoffee(@Valid @NotNull CoffeeOrder order) {
...
}
@Jamie_Lee_C
MicroProfile Core Technologies
27Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Open
Tracing
A B
@Traced
public void startBrew(CoffeeType coffeeType) {
...
}
JAX-RS methods
are automatically
traced by default
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 28
MicroProfile 3.0 Stack
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.3
Fault
Tolerance 2.0
JWT
Propagation
1.1
Health
Check 2.0
Metrics 2.0
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1
Rest Client
1.3
Reactive
Streams
Operators 1.1
Reactive
Messaging
1.0
GraphQL 1.0
Context
Propagation
1.0
Standalone Projects
@Jamie_Lee_C
Containers
Kubernetes
& Istio
29Javantura/ February 22th, 2020 / © 2020 IBM Corporation
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 30
MicroProfile & Containers
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.3
Fault
Tolerance 2.0
JWT
Propagation
1.1
Health
Check 2.0
Metrics 2.0
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1
Rest Client
1.3
Containers Kubernetes Istio
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 31
Containers
docker build -t ol-runtime --no-cache=true .
docker run -d --name rest-app -p 9080:9080 -p
9443:9443 -v <absolute path to
guide>/start/target/liberty/wlp/usr/servers:/servers
ol-runtime
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 32
Kubernetes @Jamie_Lee_C
MicroProfile with Kubernetes
33Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Config
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;
@Jamie_Lee_C
MicroProfile with Kubernetes
34Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Health
A B
readinessProbe:
httpGet:
path: /health
port: 9080
initialDelaySeconds:
15
periodSeconds: 5
failureThreshold: 1
@Jamie_Lee_C
A Full Open
Stack
35Javantura/ February 22th, 2020 / © 2020 IBM Corporation
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 36
A Full Open Stack
MicroProfile
Open Liberty
OpenJ9
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 37
Open Liberty Overview
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 38
Open J9 Overview
Designed from the start to span all the
operating systems needed by IBM products
This JVM can go from small to large
Can handle constrained environments or
memory rich ones
Is used by the largest enterprises on the
planet
If any JVM can be said to be at the heart of
the enterprise – its this one.
@Jamie_Lee_C
Javantura/ February 22th, 2020 / © 2020 IBM Corporation 39
Recap
MicroProfile
• No vendor lock in
• Full set of cloud ready APIs
• Config
• Health
• Metrics
• Fault Tolerance
• …
• Big community
Open Liberty
• Modular Application server
• Light weight
• Easy to configure
• Jakarta EE 8 certified
• Production ready
• Official Docker images available
All Open Source!
Open J9
• Low memory footprint
• Fast startup time
• High application throughput
• Smoother ramp-up in the cloud
• Easy to use Docker images
@Jamie_Lee_C
Thank you
40Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Jamie Lee Coleman
Software Engineer/Advocate Team Lead
Email: jlcoleman@uk.ibm.com
Twitter: @Jamie_Lee_C
Yasmin Aumeeruddy
Software Engineer/Advocate
Email: tevans@uk.ibm.com
@Jamie_Lee_C
41Javantura/ February 22th, 2020 / © 2020 IBM Corporation
Time To Code
To get started visit the following URL in your browser
https://ide.skillsnetwork.site/events/javantura
Please log out after each module to clear your
workspace
@Jamie_Lee_C

Más contenido relacionado

La actualidad más candente

Bluemix 로 접근하는 DevOps - Cognitive Cloud Connect
Bluemix 로 접근하는 DevOps - Cognitive Cloud ConnectBluemix 로 접근하는 DevOps - Cognitive Cloud Connect
Bluemix 로 접근하는 DevOps - Cognitive Cloud ConnectJin Gi Kong
 
Bluemix overview with Internet of Things
Bluemix overview with Internet of ThingsBluemix overview with Internet of Things
Bluemix overview with Internet of ThingsEric Cattoir
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" James Watters
 
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg ZhurakouskyCloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg ZhurakouskyVMware Tanzu
 
Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?Rohit Kelapure
 
Back your app with MySQL and Redis on Cloud Foundry
Back your app with MySQL and Redis on Cloud FoundryBack your app with MySQL and Redis on Cloud Foundry
Back your app with MySQL and Redis on Cloud FoundryKenny Bastani
 
apidays LIVE Australia 2020 - Data with a Mission by Matt McLarty
apidays LIVE Australia 2020 -  Data with a Mission by Matt McLarty apidays LIVE Australia 2020 -  Data with a Mission by Matt McLarty
apidays LIVE Australia 2020 - Data with a Mission by Matt McLarty apidays
 
James Watters Kafka Summit NYC 2019 Keynote
James Watters Kafka Summit NYC 2019 KeynoteJames Watters Kafka Summit NYC 2019 Keynote
James Watters Kafka Summit NYC 2019 KeynoteJames Watters
 
Microservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrMicroservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrJoshua Toth
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
PaaS on Openstack
PaaS on OpenstackPaaS on Openstack
PaaS on OpenstackOpen Stack
 
apidays LIVE New York 2021 - Supercharge microservices with Service Mesh by S...
apidays LIVE New York 2021 - Supercharge microservices with Service Mesh by S...apidays LIVE New York 2021 - Supercharge microservices with Service Mesh by S...
apidays LIVE New York 2021 - Supercharge microservices with Service Mesh by S...apidays
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterAlexander Arda
 
What Makes up a Modern Application Platform?
What Makes up a Modern Application Platform?What Makes up a Modern Application Platform?
What Makes up a Modern Application Platform?All Things Open
 
[WSO2 Integration Summit San Francisco 2019] Cloud-native Integration for the...
[WSO2 Integration Summit San Francisco 2019] Cloud-native Integration for the...[WSO2 Integration Summit San Francisco 2019] Cloud-native Integration for the...
[WSO2 Integration Summit San Francisco 2019] Cloud-native Integration for the...WSO2
 
apidays LIVE Australia 2020 - Building a scalable API platform for an IoT eco...
apidays LIVE Australia 2020 - Building a scalable API platform for an IoT eco...apidays LIVE Australia 2020 - Building a scalable API platform for an IoT eco...
apidays LIVE Australia 2020 - Building a scalable API platform for an IoT eco...apidays
 
WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2
 
apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...
apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...
apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...apidays
 

La actualidad más candente (20)

Bluemix 로 접근하는 DevOps - Cognitive Cloud Connect
Bluemix 로 접근하는 DevOps - Cognitive Cloud ConnectBluemix 로 접근하는 DevOps - Cognitive Cloud Connect
Bluemix 로 접근하는 DevOps - Cognitive Cloud Connect
 
Bluemix overview with Internet of Things
Bluemix overview with Internet of ThingsBluemix overview with Internet of Things
Bluemix overview with Internet of Things
 
E031202024029
E031202024029E031202024029
E031202024029
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming"
 
Latest dev ops trends in 2021 you should know
Latest dev ops trends in 2021 you should knowLatest dev ops trends in 2021 you should know
Latest dev ops trends in 2021 you should know
 
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg ZhurakouskyCloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
 
Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?
 
Back your app with MySQL and Redis on Cloud Foundry
Back your app with MySQL and Redis on Cloud FoundryBack your app with MySQL and Redis on Cloud Foundry
Back your app with MySQL and Redis on Cloud Foundry
 
apidays LIVE Australia 2020 - Data with a Mission by Matt McLarty
apidays LIVE Australia 2020 -  Data with a Mission by Matt McLarty apidays LIVE Australia 2020 -  Data with a Mission by Matt McLarty
apidays LIVE Australia 2020 - Data with a Mission by Matt McLarty
 
James Watters Kafka Summit NYC 2019 Keynote
James Watters Kafka Summit NYC 2019 KeynoteJames Watters Kafka Summit NYC 2019 Keynote
James Watters Kafka Summit NYC 2019 Keynote
 
Microservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrMicroservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hr
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
PaaS on Openstack
PaaS on OpenstackPaaS on Openstack
PaaS on Openstack
 
apidays LIVE New York 2021 - Supercharge microservices with Service Mesh by S...
apidays LIVE New York 2021 - Supercharge microservices with Service Mesh by S...apidays LIVE New York 2021 - Supercharge microservices with Service Mesh by S...
apidays LIVE New York 2021 - Supercharge microservices with Service Mesh by S...
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
 
What Makes up a Modern Application Platform?
What Makes up a Modern Application Platform?What Makes up a Modern Application Platform?
What Makes up a Modern Application Platform?
 
[WSO2 Integration Summit San Francisco 2019] Cloud-native Integration for the...
[WSO2 Integration Summit San Francisco 2019] Cloud-native Integration for the...[WSO2 Integration Summit San Francisco 2019] Cloud-native Integration for the...
[WSO2 Integration Summit San Francisco 2019] Cloud-native Integration for the...
 
apidays LIVE Australia 2020 - Building a scalable API platform for an IoT eco...
apidays LIVE Australia 2020 - Building a scalable API platform for an IoT eco...apidays LIVE Australia 2020 - Building a scalable API platform for an IoT eco...
apidays LIVE Australia 2020 - Building a scalable API platform for an IoT eco...
 
WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1
 
apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...
apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...
apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...
 

Similar a Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura

Cloud native java workshop
Cloud native java workshopCloud native java workshop
Cloud native java workshopJamie Coleman
 
JLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldJLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldGrace Jansen
 
Français Patch Tuesday – Octobre
Français Patch Tuesday – OctobreFrançais Patch Tuesday – Octobre
Français Patch Tuesday – OctobreIvanti
 
2023 Patch Tuesday de Octubre
2023 Patch Tuesday de Octubre2023 Patch Tuesday de Octubre
2023 Patch Tuesday de OctubreIvanti
 
2023 October Patch Tuesday
2023 October Patch Tuesday2023 October Patch Tuesday
2023 October Patch TuesdayIvanti
 
JSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven worldJSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven worldGrace Jansen
 
IRJET- Online Compiler for Computer Languages with Security Editor
IRJET-  	  Online Compiler for Computer Languages with Security EditorIRJET-  	  Online Compiler for Computer Languages with Security Editor
IRJET- Online Compiler for Computer Languages with Security EditorIRJET Journal
 
2023 Ottobre Patch Tuesday
2023 Ottobre Patch Tuesday2023 Ottobre Patch Tuesday
2023 Ottobre Patch TuesdayIvanti
 
2023 Ottobre Patch Tuesday
2023 Ottobre Patch Tuesday2023 Ottobre Patch Tuesday
2023 Ottobre Patch TuesdayShazia464689
 
Azure Update Summary (App) 202008
Azure Update Summary (App) 202008Azure Update Summary (App) 202008
Azure Update Summary (App) 202008Issei Hiraoka
 
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...andrejusb
 
GIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven worldGIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven worldGrace Jansen
 
Groovy-Powered Microservices with Micronaut
Groovy-Powered Microservices with MicronautGroovy-Powered Microservices with Micronaut
Groovy-Powered Microservices with MicronautZachary Klein
 
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)Samy Fodil
 
2022 December Patch Tuesday
2022 December Patch Tuesday2022 December Patch Tuesday
2022 December Patch TuesdayIvanti
 
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021StreamNative
 
apidays LIVE Paris 2021 - Scaphander hands on by Benoit Petit, Hubblo
apidays LIVE Paris 2021 - Scaphander hands on by Benoit Petit, Hubbloapidays LIVE Paris 2021 - Scaphander hands on by Benoit Petit, Hubblo
apidays LIVE Paris 2021 - Scaphander hands on by Benoit Petit, Hubbloapidays
 
JavaBin: Reacting to an event driven world
 JavaBin: Reacting to an event driven world JavaBin: Reacting to an event driven world
JavaBin: Reacting to an event driven worldGrace Jansen
 
Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021Jamie Coleman
 
Jfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven worldJfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven worldGrace Jansen
 

Similar a Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura (20)

Cloud native java workshop
Cloud native java workshopCloud native java workshop
Cloud native java workshop
 
JLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldJLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven World
 
Français Patch Tuesday – Octobre
Français Patch Tuesday – OctobreFrançais Patch Tuesday – Octobre
Français Patch Tuesday – Octobre
 
2023 Patch Tuesday de Octubre
2023 Patch Tuesday de Octubre2023 Patch Tuesday de Octubre
2023 Patch Tuesday de Octubre
 
2023 October Patch Tuesday
2023 October Patch Tuesday2023 October Patch Tuesday
2023 October Patch Tuesday
 
JSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven worldJSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven world
 
IRJET- Online Compiler for Computer Languages with Security Editor
IRJET-  	  Online Compiler for Computer Languages with Security EditorIRJET-  	  Online Compiler for Computer Languages with Security Editor
IRJET- Online Compiler for Computer Languages with Security Editor
 
2023 Ottobre Patch Tuesday
2023 Ottobre Patch Tuesday2023 Ottobre Patch Tuesday
2023 Ottobre Patch Tuesday
 
2023 Ottobre Patch Tuesday
2023 Ottobre Patch Tuesday2023 Ottobre Patch Tuesday
2023 Ottobre Patch Tuesday
 
Azure Update Summary (App) 202008
Azure Update Summary (App) 202008Azure Update Summary (App) 202008
Azure Update Summary (App) 202008
 
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
 
GIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven worldGIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven world
 
Groovy-Powered Microservices with Micronaut
Groovy-Powered Microservices with MicronautGroovy-Powered Microservices with Micronaut
Groovy-Powered Microservices with Micronaut
 
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
 
2022 December Patch Tuesday
2022 December Patch Tuesday2022 December Patch Tuesday
2022 December Patch Tuesday
 
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
 
apidays LIVE Paris 2021 - Scaphander hands on by Benoit Petit, Hubblo
apidays LIVE Paris 2021 - Scaphander hands on by Benoit Petit, Hubbloapidays LIVE Paris 2021 - Scaphander hands on by Benoit Petit, Hubblo
apidays LIVE Paris 2021 - Scaphander hands on by Benoit Petit, Hubblo
 
JavaBin: Reacting to an event driven world
 JavaBin: Reacting to an event driven world JavaBin: Reacting to an event driven world
JavaBin: Reacting to an event driven world
 
Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021
 
Jfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven worldJfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven world
 

Más de Jamie Coleman

Open Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentOpen Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentJamie Coleman
 
The Secret Life of Maven Central - LJC 2022.pptx
The Secret Life of Maven Central - LJC 2022.pptxThe Secret Life of Maven Central - LJC 2022.pptx
The Secret Life of Maven Central - LJC 2022.pptxJamie Coleman
 
Code to Cloud Workshop, Shifting Security to the Left
Code to Cloud Workshop, Shifting Security to the LeftCode to Cloud Workshop, Shifting Security to the Left
Code to Cloud Workshop, Shifting Security to the LeftJamie Coleman
 
The Death Star & The Ultimate Vulnerability.pptx
The Death Star & The Ultimate Vulnerability.pptxThe Death Star & The Ultimate Vulnerability.pptx
The Death Star & The Ultimate Vulnerability.pptxJamie Coleman
 
Why Building Your Ship (Application) with Raw Materials is a Bad Idea!.pptx
Why Building Your Ship (Application) with Raw Materials is a Bad Idea!.pptxWhy Building Your Ship (Application) with Raw Materials is a Bad Idea!.pptx
Why Building Your Ship (Application) with Raw Materials is a Bad Idea!.pptxJamie Coleman
 
Code to Cloud Workshop.pptx
Code to Cloud Workshop.pptxCode to Cloud Workshop.pptx
Code to Cloud Workshop.pptxJamie Coleman
 
Magic of Automation and Everyday Chores.pptx
Magic of Automation and Everyday Chores.pptxMagic of Automation and Everyday Chores.pptx
Magic of Automation and Everyday Chores.pptxJamie Coleman
 
Code to Cloud Workshop
Code to Cloud WorkshopCode to Cloud Workshop
Code to Cloud WorkshopJamie Coleman
 
Using Static Analysis Tools to Become a Superhero Programmer.pptx
Using Static Analysis Tools to Become a Superhero Programmer.pptxUsing Static Analysis Tools to Become a Superhero Programmer.pptx
Using Static Analysis Tools to Become a Superhero Programmer.pptxJamie Coleman
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxJamie Coleman
 
Replicating production on your laptop using the magic of containers v2
Replicating production on your laptop using the magic of containers v2Replicating production on your laptop using the magic of containers v2
Replicating production on your laptop using the magic of containers v2Jamie Coleman
 
Simple tweaks to get the most out of your JVM
Simple tweaks to get the most out of your JVMSimple tweaks to get the most out of your JVM
Simple tweaks to get the most out of your JVMJamie Coleman
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of JavaJamie Coleman
 
Replicating production on your laptop using the magic of containers
Replicating production on your laptop using the magic of containersReplicating production on your laptop using the magic of containers
Replicating production on your laptop using the magic of containersJamie Coleman
 
Simple tweaks to get the most out of your jvm
Simple tweaks to get the most out of your jvmSimple tweaks to get the most out of your jvm
Simple tweaks to get the most out of your jvmJamie Coleman
 
Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopJamie Coleman
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bagJamie Coleman
 
Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Jamie Coleman
 

Más de Jamie Coleman (18)

Open Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentOpen Source Licence to Kill in Software Development
Open Source Licence to Kill in Software Development
 
The Secret Life of Maven Central - LJC 2022.pptx
The Secret Life of Maven Central - LJC 2022.pptxThe Secret Life of Maven Central - LJC 2022.pptx
The Secret Life of Maven Central - LJC 2022.pptx
 
Code to Cloud Workshop, Shifting Security to the Left
Code to Cloud Workshop, Shifting Security to the LeftCode to Cloud Workshop, Shifting Security to the Left
Code to Cloud Workshop, Shifting Security to the Left
 
The Death Star & The Ultimate Vulnerability.pptx
The Death Star & The Ultimate Vulnerability.pptxThe Death Star & The Ultimate Vulnerability.pptx
The Death Star & The Ultimate Vulnerability.pptx
 
Why Building Your Ship (Application) with Raw Materials is a Bad Idea!.pptx
Why Building Your Ship (Application) with Raw Materials is a Bad Idea!.pptxWhy Building Your Ship (Application) with Raw Materials is a Bad Idea!.pptx
Why Building Your Ship (Application) with Raw Materials is a Bad Idea!.pptx
 
Code to Cloud Workshop.pptx
Code to Cloud Workshop.pptxCode to Cloud Workshop.pptx
Code to Cloud Workshop.pptx
 
Magic of Automation and Everyday Chores.pptx
Magic of Automation and Everyday Chores.pptxMagic of Automation and Everyday Chores.pptx
Magic of Automation and Everyday Chores.pptx
 
Code to Cloud Workshop
Code to Cloud WorkshopCode to Cloud Workshop
Code to Cloud Workshop
 
Using Static Analysis Tools to Become a Superhero Programmer.pptx
Using Static Analysis Tools to Become a Superhero Programmer.pptxUsing Static Analysis Tools to Become a Superhero Programmer.pptx
Using Static Analysis Tools to Become a Superhero Programmer.pptx
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
 
Replicating production on your laptop using the magic of containers v2
Replicating production on your laptop using the magic of containers v2Replicating production on your laptop using the magic of containers v2
Replicating production on your laptop using the magic of containers v2
 
Simple tweaks to get the most out of your JVM
Simple tweaks to get the most out of your JVMSimple tweaks to get the most out of your JVM
Simple tweaks to get the most out of your JVM
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of Java
 
Replicating production on your laptop using the magic of containers
Replicating production on your laptop using the magic of containersReplicating production on your laptop using the magic of containers
Replicating production on your laptop using the magic of containers
 
Simple tweaks to get the most out of your jvm
Simple tweaks to get the most out of your jvmSimple tweaks to get the most out of your jvm
Simple tweaks to get the most out of your jvm
 
Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshop
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bag
 
Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019
 

Último

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 

Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura

  • 1. Javantura/ February 22th, 2020 / © 2020 IBM Corporation Cloud-Native Java Microservices Workshop Jamie L Coleman Software Engineer/Advocate Team Lead Yasmin Aumeeruddy Software Engineer/Advocate
  • 2. Contents 2Javantura/ February 22th, 2020 / © 2020 IBM Corporation Why move to the Cloud? 03 What the Cloud offers 04 What is the Hybrid Cloud? 07 Eclipse MicroProfile 08 Contributors 10 Community 11 Vendors/Implementations 14 MicroProfile Technologies 15 MicroProfile Stack 16 MicroProfile Core Technologies 17 Docker, Kubenetes and Istio 29 Deploying to the Cloud with Containers 30 MicroProfile Health and Config 33 A Full Open Stack 35 Open Liberty Overview 37 Open J9 Overview 38 @Jamie_Lee_C
  • 3. Why move to the Cloud? 3Javantura/ February 22th, 2020 / © 2020 IBM Corporation @Jamie_Lee_C
  • 4. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 4 What the Cloud offers Demand time One big server running all the time? @Jamie_Lee_C
  • 5. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 5 What the Cloud offers Demand time One big server running all the time? @Jamie_Lee_C
  • 6. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 6 What the Cloud offers Demand time One big server running all the time? @Jamie_Lee_C
  • 7. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 7 What is Hybrid Cloud and why Use it? Hybrid Cloud The platform for digital transformation Integrate seamlessly across any platform Add cognitive capabilities Adopt a hybrid cloud strategy Optimize the cost of existing infrastructure Implement Microservices Architecture & leverage Docker Containers for portability Enhance applications with new services Adopt and Expand API usage Move a portion of IT infrastructure to cloud DevTest in the cloud @Jamie_Lee_C
  • 8. Eclipse MicroProfile 8Javantura/ February 22th, 2020 / © 2020 IBM Corporation @Jamie_Lee_C
  • 9. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 9 What is MicroProfile? ● Eclipse MicroProfile is an open-source community specification for Enterprise Java microservices ● A community of individuals, organizations, and vendors collaborating within an open source (Eclipse) project to bring microservices to the Enterprise Java community microprofile.io @Jamie_Lee_C
  • 10. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 10 MicroProfile Contributors @Jamie_Lee_C
  • 11. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 11 MicroProfile Community ● Over a dozen vendors and Java user groups ● 140 individual contributors ● Over half a dozen independent implementations @Jamie_Lee_C
  • 12. Locations of some MicroProfile Contributors 12Javantura/ February 22th, 2020 / © 2020 IBM Corporation Seattle – USA Ontario – Canada Canberra – Australia Stuttgart – Germany Rochester – USA Prague – Czech Rep Newcastle – UK Munich – Germany Paris – France Hursley – UK Centurion – South Africa Boston – USA Sao Paulo – Brazil Rio de Janeiro – Brazil Coimbra – Portugal Amsterdam – Netherlands Source: MicroProfile.io @Jamie_Lee_C
  • 13. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 13 MicroProfile Community Video HangoutsBi-Weekly & Quarterly General community Meetings MicroProfile ProjectsGoogle Groups YouTube Channel @Jamie_Lee_C
  • 14. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 14 MicroProfile Vendors/Implementations @Jamie_Lee_C
  • 15. MicroProfile Technologies 15Javantura/ February 22th, 2020 / © 2020 IBM Corporation @Jamie_Lee_C
  • 16. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 16 MicroProfile 3.0 Stack JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.3 Fault Tolerance 2.0 JWT Propagation 1.1 Health Check 2.0 Metrics 2.0 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.3 @Jamie_Lee_C
  • 17. MicroProfile Core Technologies 17Javantura/ February 22th, 2020 / © 2020 IBM Corporation B @Path("/brews") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class BrewsResource { @POST public Response startCoffeeBrew(CoffeeBrew brew) {...) } JAX-RS @Jamie_Lee_C
  • 18. MicroProfile Core Technologies 18Javantura/ February 22th, 2020 / © 2020 IBM Corporation REST Client BA @RegisterRestClient @Path("/resources/brews") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public interface BaristaClient { @POST public Response startCoffeeBrew(CoffeeBrew brew); } @Jamie_Lee_C
  • 19. MicroProfile Core Technologies 19Javantura/ February 22th, 2020 / © 2020 IBM Corporation CDI BA @Path("/orders") public class OrdersResource { @Inject CoffeeShop coffeeShop; ... } @Jamie_Lee_C
  • 20. MicroProfile Core Technologies 20Javantura/ February 22th, 2020 / © 2020 IBM Corporation JSON-B & JSON-P A B ... @POST @Consumes(MediaType.APPLICATION_JSON) public Response startCoffeeBrew(CoffeeBrew brew) { CoffeeType coffeeType = brew.getType(); ... } public class CoffeeBrew { private CoffeeType type; public CoffeeType getType() { return type; } public void setType(CoffeeType type) { this.type = type; } } @Jamie_Lee_C
  • 21. MicroProfile Core Technologies 21Javantura/ February 22th, 2020 / © 2020 IBM Corporation Open API A B openapi: 3.0.0 info: title: Deployed APIs version: 1.0.0 servers: - url: http://grahams-mbp-2.lan:9081/barista paths: /resources/brews: post: operationId: startCoffeeBrew requestBody: content: application/json: schema: $ref: '#/components/schemas/CoffeeBrew' responses: default: description: default response components: schemas: CoffeeBrew: type: object properties: type: type: string enum: - ESPRESSO - LATTE - POUR_OVER @Jamie_Lee_C
  • 22. MicroProfile Core Technologies 22Javantura/ February 22th, 2020 / © 2020 IBM Corporation JWT @POST @RolesAllowed({ "admin", "coffee-shop" }) public Response startCoffeeBrew(CoffeeBrew brew) {...} BA @Jamie_Lee_C
  • 23. MicroProfile Core Technologies 23Javantura/ February 22th, 2020 / © 2020 IBM Corporation Fault Tolerance A B @Retry(retryOn = TimeoutException.class, maxRetries = 4, maxDuration = 10, durationUnit = ChronoUnit.SECONDS) public void startCoffeeBrew(CoffeeBrew brew) { Response response = baristaClient.startCoffeeBrew(brew); ... } @Jamie_Lee_C
  • 24. MicroProfile Core Technologies 24Javantura/ February 22th, 2020 / © 2020 IBM Corporation Config A B @ApplicationScoped public class Barista { @Inject @ConfigProperty(name="default_barista_base_url") String baristaBaseURL; ... } @Jamie_Lee_C
  • 25. MicroProfile Core Technologies 25Javantura/ February 22th, 2020 / © 2020 IBM Corporation Health A B { "checks": [ { "data": { "barista service": "available" }, "name": "CoffeeShopHealth", "state": "UP" } ], "outcome": "UP" } @Health @ApplicationScoped public class HealthResource implements HealthCheck { ... public boolean isHealthy() {...} @Override public HealthCheckResponse call() { if (!isHealthy()) { return HealthCheckResponse.named(...).down().build(); } return HealthCheckResponse.named(...).up().build(); } } @Jamie_Lee_C
  • 26. MicroProfile Core Technologies 26Javantura/ February 22th, 2020 / © 2020 IBM Corporation Metrics A B @POST @Counted(name="order", displayName="Order count", description="Number of times orders requested.", monotonic=true) public Response orderCoffee(@Valid @NotNull CoffeeOrder order) { ... } @Jamie_Lee_C
  • 27. MicroProfile Core Technologies 27Javantura/ February 22th, 2020 / © 2020 IBM Corporation Open Tracing A B @Traced public void startBrew(CoffeeType coffeeType) { ... } JAX-RS methods are automatically traced by default @Jamie_Lee_C
  • 28. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 28 MicroProfile 3.0 Stack JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.3 Fault Tolerance 2.0 JWT Propagation 1.1 Health Check 2.0 Metrics 2.0 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.3 Reactive Streams Operators 1.1 Reactive Messaging 1.0 GraphQL 1.0 Context Propagation 1.0 Standalone Projects @Jamie_Lee_C
  • 29. Containers Kubernetes & Istio 29Javantura/ February 22th, 2020 / © 2020 IBM Corporation @Jamie_Lee_C
  • 30. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 30 MicroProfile & Containers JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.3 Fault Tolerance 2.0 JWT Propagation 1.1 Health Check 2.0 Metrics 2.0 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.3 Containers Kubernetes Istio @Jamie_Lee_C
  • 31. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 31 Containers docker build -t ol-runtime --no-cache=true . docker run -d --name rest-app -p 9080:9080 -p 9443:9443 -v <absolute path to guide>/start/target/liberty/wlp/usr/servers:/servers ol-runtime @Jamie_Lee_C
  • 32. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 32 Kubernetes @Jamie_Lee_C
  • 33. MicroProfile with Kubernetes 33Javantura/ February 22th, 2020 / © 2020 IBM Corporation Config 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; @Jamie_Lee_C
  • 34. MicroProfile with Kubernetes 34Javantura/ February 22th, 2020 / © 2020 IBM Corporation Health A B readinessProbe: httpGet: path: /health port: 9080 initialDelaySeconds: 15 periodSeconds: 5 failureThreshold: 1 @Jamie_Lee_C
  • 35. A Full Open Stack 35Javantura/ February 22th, 2020 / © 2020 IBM Corporation @Jamie_Lee_C
  • 36. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 36 A Full Open Stack MicroProfile Open Liberty OpenJ9 @Jamie_Lee_C
  • 37. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 37 Open Liberty Overview @Jamie_Lee_C
  • 38. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 38 Open J9 Overview Designed from the start to span all the operating systems needed by IBM products This JVM can go from small to large Can handle constrained environments or memory rich ones Is used by the largest enterprises on the planet If any JVM can be said to be at the heart of the enterprise – its this one. @Jamie_Lee_C
  • 39. Javantura/ February 22th, 2020 / © 2020 IBM Corporation 39 Recap MicroProfile • No vendor lock in • Full set of cloud ready APIs • Config • Health • Metrics • Fault Tolerance • … • Big community Open Liberty • Modular Application server • Light weight • Easy to configure • Jakarta EE 8 certified • Production ready • Official Docker images available All Open Source! Open J9 • Low memory footprint • Fast startup time • High application throughput • Smoother ramp-up in the cloud • Easy to use Docker images @Jamie_Lee_C
  • 40. Thank you 40Javantura/ February 22th, 2020 / © 2020 IBM Corporation Jamie Lee Coleman Software Engineer/Advocate Team Lead Email: jlcoleman@uk.ibm.com Twitter: @Jamie_Lee_C Yasmin Aumeeruddy Software Engineer/Advocate Email: tevans@uk.ibm.com @Jamie_Lee_C
  • 41. 41Javantura/ February 22th, 2020 / © 2020 IBM Corporation Time To Code To get started visit the following URL in your browser https://ide.skillsnetwork.site/events/javantura Please log out after each module to clear your workspace @Jamie_Lee_C

Notas del editor

  1. Master Draft 1