SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Seriously Open Cloud-
Native Java
Microservices
Jamie Lee Coleman
Software Engineer/Advocate Team Lead
Email: JLColeman@uk.ibm.com
Twitter: @Jamie_Lee_C
Contents
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 2
Why move to the Cloud?
What the Cloud offers
Microservices
Eclipse MicroProfile
Contributors
Community
Vendors/Implementations
MicroProfile Technologies
MicroProfile Stack
MicroProfile Core Technologies
A Full Open Stack
Open Liberty Overview
Open J9 Overview
Docker & Kubernetes
Docker
Testing with Containers
Kubernetes
MicroProfile and Kubernetes
Why move to the
Cloud and what is
Cloud-Native?
3
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 4
What the Cloud offers
Demand
time
One big server running all the time?
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 5
What the Cloud offers
Demand
time
One big server running all the time?
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 6
What the Cloud offers
Demand
time
One big server running all the time?
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 7
Agile, Microservices,
DevOps & Cloud
+ +C
B
A
+
Microservices
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 8
A microservice is an architectural style that
structures an application as a collection of
loosely coupled services
The benefit of having an application made
up of microservices is that it improves
modularity and make it easier to develop,
test and more resilient to changes
Allows teams to work on individual
services
Enables continuous delivery and
deployment per microservice
Eclipse
MicroProfile
9
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 10
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
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 11
MicroProfile
Contributors
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 12
MicroProfile Community
● Over a dozen vendors and Java user groups
● 140 individual contributors
● Over half a dozen independent
implementations
Locations of some
MicroProfile
Contributors
13
IBM Developer/ May 26th, 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
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 14
MicroProfile Community
Video HangoutsBi-Weekly & Quarterly
General community
Meetings
MicroProfile ProjectsGoogle Groups
YouTube Channel
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 15
MicroProfile
Vendors/Implementations
MicroProfile
Technologies
16
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 17
MicroProfile 3.3 Stack
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.4
Fault
Tolerance 2.1
JWT
Propagation
1.1
Health
Check 2.2
Metrics 2.3
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1
Rest Client
1.4
MicroProfile Core
Technologies
18 IBM Developer/ May 26th, 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
MicroProfile Core
Technologies
19 IBM Developer/ May 26th, 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);
}
MicroProfile Core
Technologies
20 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
CDI
BA
@Path("/orders")
public class OrdersResource {
@Inject
CoffeeShop coffeeShop;
...
}
MicroProfile Core
Technologies
21 IBM Developer/ May 26th, 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;
}
}
MicroProfile Core
Technologies
22 IBM Developer/ May 26th, 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
MicroProfile Core
Technologies
23 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
JWT
@POST
@RolesAllowed({ "admin", "coffee-shop" })
public Response startCoffeeBrew(CoffeeBrew brew) {...}
BA
MicroProfile Core
Technologies
24 IBM Developer/ May 26th, 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);
...
}
MicroProfile Core
Technologies
25 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
Config
A B
@ApplicationScoped
public class Barista {
@Inject
@ConfigProperty(name="default_barista_base_url")
String baristaBaseURL;
...
}
MicroProfile Core
Technologies
26 IBM Developer/ May 26th, 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();
}
}
MicroProfile Core
Technologies
27 IBM Developer/ May 26th, 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) {
...
}
MicroProfile Core
Technologies
28 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
Open Tracing
A B
@Traced
public void startBrew(CoffeeType coffeeType) {
...
}
JAX-RS methods
are automatically
traced by default
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 29
MicroProfile 3.3 Stack
Reactive
Streams
Operators 1.1
Reactive
Messaging
1.0
GraphQL 1.0
Context
Propagation
1.0
Standalone Projects
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.4
Fault
Tolerance 2.1
JWT
Propagation
1.1
Health
Check 2.2
Metrics 2.3
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1
Rest Client
1.4
A Full Open
Stack
30
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 31
A Full Open Stack
MicroProfile
Open Liberty
OpenJ9
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 32
Open Liberty Overview
Focus on code
Easy to make fast and iterative changes
Easy to write tests
True-to-production testing (as much as possible)
Ready for containers
Not-in-your-way tools and flexibility
Open Liberty Overview
Developer
Experience: dev
mode
Boosts developer productivity
Immediate feedback for code and config changes
No re-build necessary
mvn liberty:dev
Developer-oriented Docs
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 35
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 36
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.
Containers &
Testing with Containers
37
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 38
MicroProfile &
Containers
Containers Kubernetes Istio
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.4
Fault
Tolerance 2.1
JWT
Propagation
1.1
Health
Check 2.2
Metrics 2.3
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1
Rest Client
1.4
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 39
Containers
build, ship and run any app,
anywhere
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
40
my-app:latest
(app container)
mongo:4.0
(DB container)
Dev/Test env
Production env
integration
tests
end users
my-app:latest
(app container)
mongo:4.0
(DB container)
Testcontainers
‱ Integration tests that are
easy to setup, write, and run
‱ Test your apps the same
way they run in production
‱ Tests are portable to any
compatible implementation:
‱ Liberty
‱ Wildfly
‱ Payara
‱ TomEE
‱ etc

IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
MicroShed Testing
‱ Integration tests that are easy to setup, write,
and run
‱ Test your apps the same way they run in
production...in Containers
‱ Can run multiple containers on same network
(e.g. test DB integration)
‱ http://microshed.org/microshed-testing/
@MicroShedTest
public class MyTest {
// Search for Dockerfile.
// Start app in Container.
// Wait for Container before running tests.
@Container
public static MicroProfileApplication app
= new MicroProfileApplication()
.withAppContextRoot("/myservice")
;
// Inject JAX-RS REST Client
@Inject
public static MyService mySvc;
// A test method like any other
@Test
public void testMyService() {
...
}
}
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
Deploying to the Cloud
with Kubernetes
42
Containers are not enough!
Regain control with Kubernetes
Organize and govern the container chaos
Kubernetes
Intelligent
Scheduling
Self-HealingHorizontal
Scaling
Automated
Rollouts &
Rollbacks
Secret &
Configuration
Management
Service Discovery &
Load Balancing
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 45
Kubernetes
MicroProfile with Kubernetes
46 IBM Developer/ May 26th, 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;
MicroProfile with Kubernetes
47 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
Health
A B
readinessProbe:
httpGet:
path: /health
port: 9080
initialDelaySeconds:
15
periodSeconds: 5
failureThreshold: 1
IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 48
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
‱ Optimized for development
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
Thank you
49IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
Jamie Lee Coleman
Software Engineer/Advocate Team Lead
Email: jlcoleman@uk.ibm.com
Twitter: @Jamie_Lee_C

Weitere Àhnliche Inhalte

Was ist angesagt?

iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...Chris Richardson
 
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM France Lab
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Ken Owens
 
"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
 
Case Study: How to move from a Monolith to Cloud, Containers and Microservices
Case Study: How to move from a Monolith to Cloud, Containers and MicroservicesCase Study: How to move from a Monolith to Cloud, Containers and Microservices
Case Study: How to move from a Monolith to Cloud, Containers and MicroservicesKai WĂ€hner
 
Devoxx 2014 presentation
Devoxx 2014 presentationDevoxx 2014 presentation
Devoxx 2014 presentationEric Cattoir
 
How to Choose the Right Technology, Framework or Tool to Build Microservices
How to Choose the Right Technology, Framework or Tool to Build MicroservicesHow to Choose the Right Technology, Framework or Tool to Build Microservices
How to Choose the Right Technology, Framework or Tool to Build MicroservicesKai WĂ€hner
 
Microservices and containers networking: Contiv, an industry leading open sou...
Microservices and containers networking: Contiv, an industry leading open sou...Microservices and containers networking: Contiv, an industry leading open sou...
Microservices and containers networking: Contiv, an industry leading open sou...Codemotion
 
CICS TS v5.5 support for Node.js applications
CICS TS v5.5 support for Node.js applicationsCICS TS v5.5 support for Node.js applications
CICS TS v5.5 support for Node.js applicationsMark Cocker
 
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
 
Why Microservice
Why Microservice Why Microservice
Why Microservice Kelvin Yeung
 
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...WSO2
 
IBM Bluemix OpenWhisk: IBM InterConnect 2017, Las Vegas, USA: Technical Strategy
IBM Bluemix OpenWhisk: IBM InterConnect 2017, Las Vegas, USA: Technical StrategyIBM Bluemix OpenWhisk: IBM InterConnect 2017, Las Vegas, USA: Technical Strategy
IBM Bluemix OpenWhisk: IBM InterConnect 2017, Las Vegas, USA: Technical StrategyOpenWhisk
 
Microservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrMicroservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrJoshua Toth
 
Hybrid Programming in Hybrid Cloud: be ready to the success - Ferdinando Gor...
Hybrid Programming in Hybrid Cloud: be ready to the success  - Ferdinando Gor...Hybrid Programming in Hybrid Cloud: be ready to the success  - Ferdinando Gor...
Hybrid Programming in Hybrid Cloud: be ready to the success - Ferdinando Gor...Codemotion
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architectureĆœilvinas Kuusas
 
MicroServices, yet another architectural style?
MicroServices, yet another architectural style?MicroServices, yet another architectural style?
MicroServices, yet another architectural style?ACA IT-Solutions
 
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINXSecure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINXNGINX, Inc.
 
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
 
Domain-driven Design
Domain-driven DesignDomain-driven Design
Domain-driven DesignAltoros
 

Was ist angesagt? (20)

iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
 
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming"
 
Case Study: How to move from a Monolith to Cloud, Containers and Microservices
Case Study: How to move from a Monolith to Cloud, Containers and MicroservicesCase Study: How to move from a Monolith to Cloud, Containers and Microservices
Case Study: How to move from a Monolith to Cloud, Containers and Microservices
 
Devoxx 2014 presentation
Devoxx 2014 presentationDevoxx 2014 presentation
Devoxx 2014 presentation
 
How to Choose the Right Technology, Framework or Tool to Build Microservices
How to Choose the Right Technology, Framework or Tool to Build MicroservicesHow to Choose the Right Technology, Framework or Tool to Build Microservices
How to Choose the Right Technology, Framework or Tool to Build Microservices
 
Microservices and containers networking: Contiv, an industry leading open sou...
Microservices and containers networking: Contiv, an industry leading open sou...Microservices and containers networking: Contiv, an industry leading open sou...
Microservices and containers networking: Contiv, an industry leading open sou...
 
CICS TS v5.5 support for Node.js applications
CICS TS v5.5 support for Node.js applicationsCICS TS v5.5 support for Node.js applications
CICS TS v5.5 support for Node.js applications
 
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
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
 
IBM Bluemix OpenWhisk: IBM InterConnect 2017, Las Vegas, USA: Technical Strategy
IBM Bluemix OpenWhisk: IBM InterConnect 2017, Las Vegas, USA: Technical StrategyIBM Bluemix OpenWhisk: IBM InterConnect 2017, Las Vegas, USA: Technical Strategy
IBM Bluemix OpenWhisk: IBM InterConnect 2017, Las Vegas, USA: Technical Strategy
 
Microservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrMicroservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hr
 
Hybrid Programming in Hybrid Cloud: be ready to the success - Ferdinando Gor...
Hybrid Programming in Hybrid Cloud: be ready to the success  - Ferdinando Gor...Hybrid Programming in Hybrid Cloud: be ready to the success  - Ferdinando Gor...
Hybrid Programming in Hybrid Cloud: be ready to the success - Ferdinando Gor...
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
MicroServices, yet another architectural style?
MicroServices, yet another architectural style?MicroServices, yet another architectural style?
MicroServices, yet another architectural style?
 
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINXSecure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
Secure, Strengthen, Automate, and Scale Modern Workloads with Red Hat & NGINX
 
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
 
Domain-driven Design
Domain-driven DesignDomain-driven Design
Domain-driven Design
 

Ähnlich wie Seriously Open Cloud Native Java Microservices

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
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020Emily Jiang
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020Emily Jiang
 
DevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps.com
 
IBM JavaOne Community Keynote 2017
IBM JavaOne Community Keynote 2017IBM JavaOne Community Keynote 2017
IBM JavaOne Community Keynote 2017John Duimovich
 
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
 
How to deploy machine learning models into production
How to deploy machine learning models into productionHow to deploy machine learning models into production
How to deploy machine learning models into productionDataWorks Summit
 
Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021Jamie 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
 
Scaling up deep learning by scaling down
Scaling up deep learning by scaling downScaling up deep learning by scaling down
Scaling up deep learning by scaling downNick Pentreath
 
IBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONEIBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONEFilipe Miranda
 
Scaling up Deep Learning by Scaling Down
Scaling up Deep Learning by Scaling DownScaling up Deep Learning by Scaling Down
Scaling up Deep Learning by Scaling DownDatabricks
 
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
 
Accelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayAccelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayJohn Duimovich
 
Developing for Hybrid Cloud with Bluemix
Developing for Hybrid Cloud with BluemixDeveloping for Hybrid Cloud with Bluemix
Developing for Hybrid Cloud with BluemixRoberto Pozzi
 
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
 
GIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdfGIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdfRichHagarty
 
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
 
Help, My Kafka is Broken! (Emma Humber & Gantigmaa Selenge, IBM) Kafka Summit...
Help, My Kafka is Broken! (Emma Humber & Gantigmaa Selenge, IBM) Kafka Summit...Help, My Kafka is Broken! (Emma Humber & Gantigmaa Selenge, IBM) Kafka Summit...
Help, My Kafka is Broken! (Emma Humber & Gantigmaa Selenge, IBM) Kafka Summit...HostedbyConfluent
 

Ähnlich wie Seriously Open Cloud Native Java Microservices (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
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
 
DevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast Track
 
IBM JavaOne Community Keynote 2017
IBM JavaOne Community Keynote 2017IBM JavaOne Community Keynote 2017
IBM JavaOne Community Keynote 2017
 
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
 
How to deploy machine learning models into production
How to deploy machine learning models into productionHow to deploy machine learning models into production
How to deploy machine learning models into production
 
Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021
 
Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshop
 
Scaling up deep learning by scaling down
Scaling up deep learning by scaling downScaling up deep learning by scaling down
Scaling up deep learning by scaling down
 
IBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONEIBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONE
 
Scaling up Deep Learning by Scaling Down
Scaling up Deep Learning by Scaling DownScaling up Deep Learning by Scaling Down
Scaling up Deep Learning by Scaling Down
 
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
 
Accelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayAccelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is Today
 
Developing for Hybrid Cloud with Bluemix
Developing for Hybrid Cloud with BluemixDeveloping for Hybrid Cloud with Bluemix
Developing for Hybrid Cloud with Bluemix
 
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
 
GIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdfGIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdf
 
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
 
Help, My Kafka is Broken! (Emma Humber & Gantigmaa Selenge, IBM) Kafka Summit...
Help, My Kafka is Broken! (Emma Humber & Gantigmaa Selenge, IBM) Kafka Summit...Help, My Kafka is Broken! (Emma Humber & Gantigmaa Selenge, IBM) Kafka Summit...
Help, My Kafka is Broken! (Emma Humber & Gantigmaa Selenge, IBM) Kafka Summit...
 

Mehr von 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
 
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
 

Mehr von Jamie Coleman (17)

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
 
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
 

KĂŒrzlich hochgeladen

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfWilly Marroquin (WillyDevNET)
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂anilsa9823
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto GonzĂĄlez Trastoy
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 

KĂŒrzlich hochgeladen (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Vip Call Girls Noida âžĄïž Delhi âžĄïž 9999965857 No Advance 24HRS Live
Vip Call Girls Noida âžĄïž Delhi âžĄïž 9999965857 No Advance 24HRS LiveVip Call Girls Noida âžĄïž Delhi âžĄïž 9999965857 No Advance 24HRS Live
Vip Call Girls Noida âžĄïž Delhi âžĄïž 9999965857 No Advance 24HRS Live
 

Seriously Open Cloud Native Java Microservices

  • 1. Seriously Open Cloud- Native Java Microservices Jamie Lee Coleman Software Engineer/Advocate Team Lead Email: JLColeman@uk.ibm.com Twitter: @Jamie_Lee_C
  • 2. Contents IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 2 Why move to the Cloud? What the Cloud offers Microservices Eclipse MicroProfile Contributors Community Vendors/Implementations MicroProfile Technologies MicroProfile Stack MicroProfile Core Technologies A Full Open Stack Open Liberty Overview Open J9 Overview Docker & Kubernetes Docker Testing with Containers Kubernetes MicroProfile and Kubernetes
  • 3. Why move to the Cloud and what is Cloud-Native? 3
  • 4. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 4 What the Cloud offers Demand time One big server running all the time?
  • 5. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 5 What the Cloud offers Demand time One big server running all the time?
  • 6. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 6 What the Cloud offers Demand time One big server running all the time?
  • 7. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 7 Agile, Microservices, DevOps & Cloud + +C B A +
  • 8. Microservices IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 8 A microservice is an architectural style that structures an application as a collection of loosely coupled services The benefit of having an application made up of microservices is that it improves modularity and make it easier to develop, test and more resilient to changes Allows teams to work on individual services Enables continuous delivery and deployment per microservice
  • 10. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 10 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
  • 11. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 11 MicroProfile Contributors
  • 12. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 12 MicroProfile Community ● Over a dozen vendors and Java user groups ● 140 individual contributors ● Over half a dozen independent implementations
  • 13. Locations of some MicroProfile Contributors 13 IBM Developer/ May 26th, 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
  • 14. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 14 MicroProfile Community Video HangoutsBi-Weekly & Quarterly General community Meetings MicroProfile ProjectsGoogle Groups YouTube Channel
  • 15. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 15 MicroProfile Vendors/Implementations
  • 17. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 17 MicroProfile 3.3 Stack JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.4 Fault Tolerance 2.1 JWT Propagation 1.1 Health Check 2.2 Metrics 2.3 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.4
  • 18. MicroProfile Core Technologies 18 IBM Developer/ May 26th, 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
  • 19. MicroProfile Core Technologies 19 IBM Developer/ May 26th, 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); }
  • 20. MicroProfile Core Technologies 20 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation CDI BA @Path("/orders") public class OrdersResource { @Inject CoffeeShop coffeeShop; ... }
  • 21. MicroProfile Core Technologies 21 IBM Developer/ May 26th, 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; } }
  • 22. MicroProfile Core Technologies 22 IBM Developer/ May 26th, 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
  • 23. MicroProfile Core Technologies 23 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation JWT @POST @RolesAllowed({ "admin", "coffee-shop" }) public Response startCoffeeBrew(CoffeeBrew brew) {...} BA
  • 24. MicroProfile Core Technologies 24 IBM Developer/ May 26th, 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); ... }
  • 25. MicroProfile Core Technologies 25 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation Config A B @ApplicationScoped public class Barista { @Inject @ConfigProperty(name="default_barista_base_url") String baristaBaseURL; ... }
  • 26. MicroProfile Core Technologies 26 IBM Developer/ May 26th, 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(); } }
  • 27. MicroProfile Core Technologies 27 IBM Developer/ May 26th, 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) { ... }
  • 28. MicroProfile Core Technologies 28 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation Open Tracing A B @Traced public void startBrew(CoffeeType coffeeType) { ... } JAX-RS methods are automatically traced by default
  • 29. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 29 MicroProfile 3.3 Stack Reactive Streams Operators 1.1 Reactive Messaging 1.0 GraphQL 1.0 Context Propagation 1.0 Standalone Projects JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.4 Fault Tolerance 2.1 JWT Propagation 1.1 Health Check 2.2 Metrics 2.3 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.4
  • 31. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 31 A Full Open Stack MicroProfile Open Liberty OpenJ9
  • 32. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 32 Open Liberty Overview
  • 33. Focus on code Easy to make fast and iterative changes Easy to write tests True-to-production testing (as much as possible) Ready for containers Not-in-your-way tools and flexibility Open Liberty Overview
  • 34. Developer Experience: dev mode Boosts developer productivity Immediate feedback for code and config changes No re-build necessary mvn liberty:dev
  • 35. Developer-oriented Docs IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 35
  • 36. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 36 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.
  • 37. Containers & Testing with Containers 37
  • 38. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 38 MicroProfile & Containers Containers Kubernetes Istio JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.4 Fault Tolerance 2.1 JWT Propagation 1.1 Health Check 2.2 Metrics 2.3 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.4
  • 39. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 39 Containers build, ship and run any app, anywhere 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
  • 40. 40 my-app:latest (app container) mongo:4.0 (DB container) Dev/Test env Production env integration tests end users my-app:latest (app container) mongo:4.0 (DB container) Testcontainers ‱ Integration tests that are easy to setup, write, and run ‱ Test your apps the same way they run in production ‱ Tests are portable to any compatible implementation: ‱ Liberty ‱ Wildfly ‱ Payara ‱ TomEE ‱ etc
 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
  • 41. MicroShed Testing ‱ Integration tests that are easy to setup, write, and run ‱ Test your apps the same way they run in production...in Containers ‱ Can run multiple containers on same network (e.g. test DB integration) ‱ http://microshed.org/microshed-testing/ @MicroShedTest public class MyTest { // Search for Dockerfile. // Start app in Container. // Wait for Container before running tests. @Container public static MicroProfileApplication app = new MicroProfileApplication() .withAppContextRoot("/myservice") ; // Inject JAX-RS REST Client @Inject public static MyService mySvc; // A test method like any other @Test public void testMyService() { ... } } IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation
  • 42. Deploying to the Cloud with Kubernetes 42
  • 44. Regain control with Kubernetes Organize and govern the container chaos Kubernetes Intelligent Scheduling Self-HealingHorizontal Scaling Automated Rollouts & Rollbacks Secret & Configuration Management Service Discovery & Load Balancing
  • 45. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 45 Kubernetes
  • 46. MicroProfile with Kubernetes 46 IBM Developer/ May 26th, 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;
  • 47. MicroProfile with Kubernetes 47 IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation Health A B readinessProbe: httpGet: path: /health port: 9080 initialDelaySeconds: 15 periodSeconds: 5 failureThreshold: 1
  • 48. IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation 48 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 ‱ Optimized for development 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
  • 49. Thank you 49IBM Developer/ May 26th, 2020 / © 2020 IBM Corporation Jamie Lee Coleman Software Engineer/Advocate Team Lead Email: jlcoleman@uk.ibm.com Twitter: @Jamie_Lee_C

Hinweis der Redaktion

  1. Master Draft 1
  2. Provide the APIs and runtime capabilities that help with creating large numbers of collaborating services Basically having something where you aren't required to do some steps before shutdown - that shooting a container won't leave you in a bad situation Meaning if you just kill it, you don’t leave stuff hanging around. The ‘weight’ of your cloud-native application should be proportional to what the application does/uses. You don’t want to be bringing along 0.5GB of runtime to serve up a simple servlet. https://12factor.net/dev-prod-parity Make the time gap small: a developer may write code and have it deployed hours or even just minutes later. Make the personnel gap small: developers who wrote code are closely involved in deploying it and watching its behavior in production. Make the tools gap small: keep development and production as similar as possible. https://12factor.net/config Resource handles to the database, Memcached, and other backing services Credentials to external services such as Amazon S3 or Twitter Per-deploy values such as the canonical hostname for the deploy Dev env where testing is done is the same as production. Using the same OS, Runtime, etc. Docker. Immutable build
 to make sure code doesn’t have to change. Single build form the Dockerfile – don’t re-build. Explicitly listing version in Dockerfiles Availability of Docker images, single independent process, etc

  3. Advice:- This slide should be the last slide created prior to socialization. It should be presented first as a summary of the rest of the WAD.
  4. While containers are great , managing a container infrastructure without a high degree of automation and orchestration can soon become a nightmare 

  5. Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. Horizontal scaling Scale your application up and down with a simple command, with a UI, or automatically based on CPU usage. Self-healing Restarts containers that fail, replaces and reschedules containers when nodes die, kills containers that don’t respond to your user-defined health check, and doesn’t advertise them to clients until they are ready to serve. Automated rollouts and rollbacks Kubernetes progressively rolls out changes to your application or its configuration, while monitoring application health to ensure it doesn’t kill all your instances at the same time. If something goes wrong, Kubernetes will rollback the change for you. Take advantage of a growing ecosystem of deployment solutions. Service discovery and load balancing No need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives Pods their own IP addresses and a single DNS name for a set of Pods, and can load-balance across them. Open source container orchestration platform Clear governance model with Linux Foundation Jointed effort by IBM, Google, Huawei, Intel, Red Hat and many others Operations rather than developer centric Basic primitives support a rich set of features Releases new versions every three months New features preview in alpha/beta Wide range of deployment options: bare metal, virtualized, private, public, hybrid,