SlideShare ist ein Scribd-Unternehmen logo
1 von 76
1
Are you ready for Cloud-Native Java?
Graham Charters - @gcharters
Steve Poole - @spoole167
1
2
Who we are
Steve Poole
@spoole167
3
Quiz
You’ve been deploying Java applications for years and want to move to
a cloud-native approach. Do you?
a. Decide cloud-native is so different you should throw out everything you
know and have done and start over again.
b. Decide cloud-native is just a “storm-in-a-teacup” and hunker down till the
clouds have passed.
c. Understand how modern Java runtimes let you re-use and extend what
you have in order to create new cloud-native applications.
4
What’s special about Cloud?
4
What ‘Cloud’
promises
a virtual, dynamic environment
which maximizes use, is infinitely
scalable, always available and
needs minimal upfront
investment or commitment
Take your code – host it on someone else's
machine and pay only for the resource you
use for the time you use it
AND be able to do that very quickly and
repeatedly in parallel
https://www.flickr.com/photos/vuhung/
“Compute on demand” – it’s what we’ve always wanted
Cloud computing:
compute == money
Money changes everything
With a measurable and direct relationship
between $£€¥ and CPU/RAM, disk etc the
financial success or failure of a project is
even easier to see
And that means…
Even more focus on value for money.
compute == money
$ == GB/hr
-Xmx: $100
Demand
time
Demand
time
How does your application respond to demand?
Demand
time
One big server running all the time?
Demand
time
One big server running all the time?Look at all that wasted money!
Demand
Smaller compute units are better
Demand
time
Smaller compute units are better
Time
Memory
Traditional profile
Throughput
Time
Lag Over-Peek usage
Doesn’t fit new model
Costs $ Costs
more $
Memory
Throughput
Time
More like this please
Memory
Throughput
Cloud demands:
• Small runtime memory footprint
• Small deployment sizes
• Fast starting applications
• No resource usage when idle
Can we do this all with a JVM?
20
Quiz
Is Cloud so different that the JVM is no longer relevant?
a. Yes - lets move everything to Node.js.
b. Maybe – even re-tuning the JVM isn’t going to cut it.
c. No – Not all JVMs are the same…
http://www.eclipse.org/openj9
https://github.com/eclipse/openj9
Dual License:
Eclipse Public License v2.0
Apache 2.0
Users and contributors very welcome
https://github.com/eclipse/openj9/blob/master/CONTRIBUTING.md
Eclipse OpenJ9
Created Sept 2017
22 https://adoptopenjdk.net/?variant=openjdk8-openj9
23 https://hub.docker.com/r/adoptopenjdk/
24
Java ME Inside!
25
Java ME requirements
 Small footprint
–On disk and runtime.
–Very limited RAM, usually more ROM
 Fast startup
–Everybody wants their games to start quickly
 Quick / immediate rampup
–Your game should not play better the longer you play
26
Java in the Cloud requirements
 Small footprint
–Improves density for providers
–Improves cost for applications
 Fast startup
–Faster scaling for increased demand
 Quick / immediate rampup
–GB/hr is key, if you run for less time you pay less money
27
Results
Hotspot OpenJ9 OpenJ9 -Xshareclasses -
Xquickstart
Hotspot OpenJ9 OpenJ9 -Xshareclasses -Xquickstart
Startup time is 30% faster with OpenJ9 –Xshareclasses -Xquickstart
28
Results
Footprint is 60% smaller with OpenJ9
Hotspot OpenJ9 OpenJ9 -Xshareclasses -
Xquickstart
Hotspot OpenJ9 OpenJ9 -Xshareclasses -Xquickstart
Time
Remember this?
Memory
Time
Real data
OpenJDK 9
with Hotspot
Time
Real data
OpenJDK 9
with Hotspot
OpenJDK 9
with OpenJ9
Time
Real data
OpenJDK 9
with Hotspot
OpenJDK 9
with OpenJ9
OpenJDK 9
with OpenJ9
+ AOT
Eclipse
Open J9
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.
@spoole167
http://www.eclipse.org/openj9
https://github.com/eclipse/openj9
Dual License:
Eclipse Public License v2.0
Apache 2.0
Users and contributors very welcome
https://github.com/eclipse/openj9/blob/master/CONTRIBUTING.md
Eclipse OpenJ9
Created Sept 2017
Don’t just
take my word
for it
@spoole167
adoptopenjdk.net
36
Quiz
Cloud-Native Java. Are we done then?
a. Yes - nothing to see. Move along.
b. Not really – still need to re-architect my application
c. No – actually Cloud-Native introduces some new challenges
3737
What you run can outweigh
the JVM benefits
38
Agile & DevOps & Cloud & Microservices
+ + + service C
service B
service A
39
Middle-aged spread
https://www.slideshare.net/delabassee/java-ee-8-february-2017-update
https://medium.com/@alextheedom/java-ee-past-present-future-8bf25df7b6a3
40
Liberty Features
<dependency>
<groupId>io.openliberty.features</groupId>
<artifactId>jaxrs-2.1</artifactId>
<type>esa</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.openliberty.features</groupId>
<artifactId>jsonb-1.0</artifactId>
<type>esa</type>
<scope>provided</scope>
</dependency>
41
Thorntail Fractions
<dependency>
<groupId>io.thorntail</groupId>
<artifactId>thorntail-jaxrs</artifactId>
</dependency>
<dependency>
<groupId>io.thorntail</groupId>
<artifactId>thorntail-jsonp</artifactId>
</dependency>
4242
Not all cloud-native challenges can be
solved by the runtime
4343
44
There’s a good chance you’ll use REST APIs.
45
JAX-RS
B
@Path("/brews")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class BrewsResource {
@POST
public Response startCoffeeBrew(CoffeeBrew brew) {...)
}
46
MicroProfile REST Client
BA
@RegisterRestClient
@Path("/resources/brews")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface BaristaClient {
@POST
public Response startCoffeeBrew(CoffeeBrew brew);
}
47
CDI
BA
@Path("/orders")
public class OrdersResource {
@Inject
CoffeeShop coffeeShop;
...
}
48
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;
}
}
49
Handling 100s of collaborating and frequently
evolving services requires new APIs
50
Where were we...?
A B
51
MicroProfile
OpenAPI
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
52
MicroProfile JWT
A B
@POST
@RolesAllowed({ "admin", "coffee-shop" })
public Response startCoffeeBrew(CoffeeBrew brew) {...}
53
MicroProfile 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);
...
}
54
MicroProfile Config
A B
@ApplicationScoped
public class Barista {
@Inject
@ConfigProperty(name="default_barista_base_url")
String baristaBaseURL;
...
}
55
Handling 100s of collaborating services
requires a strong operations focus
56
Where were we...?
A B
57
MicroProfile Health
A B
@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();
}
}
{
"checks": [
{
"data": {
"barista service": "available"
},
"name": "CoffeeShopHealth",
"state": "UP"
}
],
"outcome": "UP"
}
58
MicroProfile 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) {
...
}
59
MicroProfile OpenTracing
A B
@Traced
public void startBrew(CoffeeType coffeeType) {
...
}
JAX-RS methods
are automatically
traced by default
60
Eclipse MicroProfile
Open specifications
Wide vendor support
REST services
OpenAPI support
Security
Fault Tolerance
Configuration
Metrics
Health
Open Tracing
61
Quiz
A team wants to use your service and has asked you to document it.
Do you?
a. See it as an opportunity to try out that Asciidoc thing you heard about at a
conference.
b. Suggest they fire a few REST requests at it. With an infinite number of
monkeys, they’ll get there eventually.
c. Use the OpenAPI Java support because it documents your API with little to
no effort.
62
Quiz
You’re deploying microservices that depend on other teams’ services
and have noticed occasional errors from them which cause your
service to fail. Do you?
a. Blame the other team every time your service fails. They need to sort their
act out!
b. Hold firm, you trust that they’ll fix all the problems eventually then
everything will be fine.
c. Take responsibility for gracefully coping with instabilities in the services
you depend on.
d. a & c
63
Quiz
You’re about to be the proud owner of a live production microservice.
You like your weekends and want to minimize the time spent resolving
issues. Do you?
a. Decide it’s a no-op due to encapsulation. The great thing about
microservices is you never need to know what’s going on inside.
b. Write everything to stdout. Factor XI of 12factor.net tells you that’s all you
need to do.
c. Instrument your service for health and metrics and use open tracing to
track request flows.
64
Can’t I do all this with a service mesh?
65
Istio Fault Tolerance
A B
Fallback
Retry
Timeout
Circuit Breaker
Bulkhead
6666
Packaging for deployment
67
You’d be hard-pushed to find a cloud that
doesn’t support Docker
68
Making the most of Docker
O/S
JVM
Libs/Server
Application
O/S
JVM
Application
thin war/jar fat jar
Libs/Server
69
Being ready for cloud-native Java
• Open standards-based with wide
open source vendor support?
• JVM Optimized for the cloud
• Application framework designed
for cloud-native Microservices
70
Final Quiz – Are you ready for cloud-native Java?
You’re boss asks you to recommend an open technology stack for
developing and deploying cloud-native microservice applications. Do
you?
a. Recommend Eclipse OpenJ9 to optimise your runtime characteristics and
costs for the cloud
b. Recommend Eclipse MicroProfile to add resilience, monitorability, security,
and more, in a vendor neutral way
c. Recommend a right-sizable runtime with broad open spec support (e.g.
Open Liberty :D ) to optimize your deployments for the cloud
d. All of the above.
71
Calculating...
72
Congratulations, you are now ready for cloud-native Java
Passed
73
Useful Links
• https://www.eclipse.org/openj9/
• https://adoptopenjdk.net/
• https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=openj9
• https://microprofile.io/
• https://github.com/gcharters/workshop-cloud-native-java
• https://openliberty.io/guides/
73
74
Thank You
75
Useful Links
• OpenJ9 - http://www.eclipse.org/openj9/
• AdoptOpenJDK OpenJ9 Builds: https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=openj9
• MicroProfile: http://microprofile.io/
• Eclipse MicroProfile Site: https://projects.eclipse.org/projects/technology.microprofile
• MicroProfile Guides: https://openliberty.io/guides/?search=MicroProfile
• Open Liberty: https://openliberty.io/
75
76
The End
76

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Cloud Native Summit 2019 Summary
Cloud Native Summit 2019 SummaryCloud Native Summit 2019 Summary
Cloud Native Summit 2019 Summary
 
12 Steps to DevOps Nirvana
12 Steps to DevOps Nirvana12 Steps to DevOps Nirvana
12 Steps to DevOps Nirvana
 
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor ApplicationsCloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
 
Availability in a cloud native world - Guidelines for mere mortals v2.0
Availability in a cloud native world - Guidelines for mere mortals v2.0Availability in a cloud native world - Guidelines for mere mortals v2.0
Availability in a cloud native world - Guidelines for mere mortals v2.0
 
Azure DevOps Day - Kochi
Azure DevOps Day - KochiAzure DevOps Day - Kochi
Azure DevOps Day - Kochi
 
CI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformCI/CD on Google Cloud Platform
CI/CD on Google Cloud Platform
 
Professional Cloud DevOps Engineer - Study Group - Week 1
Professional Cloud DevOps Engineer - Study Group - Week 1Professional Cloud DevOps Engineer - Study Group - Week 1
Professional Cloud DevOps Engineer - Study Group - Week 1
 
Azure DevOps Day - Trivandrum
Azure DevOps Day - TrivandrumAzure DevOps Day - Trivandrum
Azure DevOps Day - Trivandrum
 
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
 
How to Build a DevOps Toolchain
How to Build a DevOps ToolchainHow to Build a DevOps Toolchain
How to Build a DevOps Toolchain
 
Dev ops tutorial for beginners what is devops &amp; devops tools
Dev ops tutorial for beginners what is devops &amp; devops toolsDev ops tutorial for beginners what is devops &amp; devops tools
Dev ops tutorial for beginners what is devops &amp; devops tools
 
Why is dev ops essential for fintech development
Why is dev ops essential for fintech developmentWhy is dev ops essential for fintech development
Why is dev ops essential for fintech development
 
Net3 Technology: 5 step guide to DevOps in the Cloud
Net3 Technology: 5 step guide to DevOps in the CloudNet3 Technology: 5 step guide to DevOps in the Cloud
Net3 Technology: 5 step guide to DevOps in the Cloud
 
DOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - SonatypeDOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - Sonatype
 
Cloud Native Operations
Cloud Native OperationsCloud Native Operations
Cloud Native Operations
 
New DevOps for the DBA
New DevOps for the DBANew DevOps for the DBA
New DevOps for the DBA
 
The Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon ElishaThe Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon Elisha
 
LFX Nov 16, 2021 - Find vulnerabilities before security knocks on your door
LFX Nov 16, 2021 - Find vulnerabilities before security knocks on your doorLFX Nov 16, 2021 - Find vulnerabilities before security knocks on your door
LFX Nov 16, 2021 - Find vulnerabilities before security knocks on your door
 
Why cloud native matters
Why cloud native mattersWhy cloud native matters
Why cloud native matters
 
Zero to 12 Million
Zero to 12 MillionZero to 12 Million
Zero to 12 Million
 

Ähnlich wie Are you ready for cloud-native Java?

Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
railsconf
 

Ähnlich wie Are you ready for cloud-native Java? (20)

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
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?
 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
 
Follow these reasons to know java’s importance
Follow these reasons to know java’s importanceFollow these reasons to know java’s importance
Follow these reasons to know java’s importance
 
WWCode Dallas - Kubernetes: Learning from Zero to Production
WWCode Dallas - Kubernetes: Learning from Zero to ProductionWWCode Dallas - Kubernetes: Learning from Zero to Production
WWCode Dallas - Kubernetes: Learning from Zero to Production
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Efficient DevOps Tooling with Java and GraalVM
Efficient DevOps Tooling with Java and GraalVMEfficient DevOps Tooling with Java and GraalVM
Efficient DevOps Tooling with Java and GraalVM
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
 
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
 
JavaOne 2014: Java vs JavaScript
JavaOne 2014:   Java vs JavaScriptJavaOne 2014:   Java vs JavaScript
JavaOne 2014: Java vs JavaScript
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/Kubernetes
 
Java Day Minsk 2016 Keynote about Microservices in real world
Java Day Minsk 2016 Keynote about Microservices in real worldJava Day Minsk 2016 Keynote about Microservices in real world
Java Day Minsk 2016 Keynote about Microservices in real world
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
NodeJS and what is actually does
NodeJS and what is actually doesNodeJS and what is actually does
NodeJS and what is actually does
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus
 
Kicking Up the Dust with Node JS
Kicking Up the Dust with Node JSKicking Up the Dust with Node JS
Kicking Up the Dust with Node JS
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New Tricks
 
SFScon 21 - Davide Montesin - Typescript vs. Java
SFScon 21 - Davide Montesin - Typescript vs. JavaSFScon 21 - Davide Montesin - Typescript vs. Java
SFScon 21 - Davide Montesin - Typescript vs. Java
 
Nodejs overview
Nodejs overviewNodejs overview
Nodejs overview
 
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
 

Mehr von Graham Charters

Mehr von Graham Charters (10)

Explore Jakarta EE and MicroProfile on Azure with Open Liberty & OpenShift
Explore Jakarta EE and MicroProfile on Azure with Open Liberty & OpenShiftExplore Jakarta EE and MicroProfile on Azure with Open Liberty & OpenShift
Explore Jakarta EE and MicroProfile on Azure with Open Liberty & OpenShift
 
How to get along with HATEOAS without letting the bad guys steal your lunch?
How to get along with HATEOAS without letting the bad guys steal your lunch?How to get along with HATEOAS without letting the bad guys steal your lunch?
How to get along with HATEOAS without letting the bad guys steal your lunch?
 
Cutting through the fog of microservices: lightsabers optional
Cutting through the fog of microservices: lightsabers optionalCutting through the fog of microservices: lightsabers optional
Cutting through the fog of microservices: lightsabers optional
 
Optimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for DockerOptimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for Docker
 
A first look at Open Liberty
A first look at Open LibertyA first look at Open Liberty
A first look at Open Liberty
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
 
Get Rapid Right-sized and Recent with the Liberty Repository
Get Rapid Right-sized and Recent with the Liberty RepositoryGet Rapid Right-sized and Recent with the Liberty Repository
Get Rapid Right-sized and Recent with the Liberty Repository
 
Monoliths are so 2001 – What you need is Modularity
Monoliths are so 2001 – What you need is ModularityMonoliths are so 2001 – What you need is Modularity
Monoliths are so 2001 – What you need is Modularity
 
Towards a Modularity Maturity Model
Towards a Modularity Maturity ModelTowards a Modularity Maturity Model
Towards a Modularity Maturity Model
 
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Are you ready for cloud-native Java?

Hinweis der Redaktion

  1. Make a big deal about the license Very open, very easy for anyone and everyone to contribute. Operating at the Eclipse Foundation means operating under a set of rules that ensures the project is open, accessible to all, and not controlled by any single company. This is one of the first projects under the EPLv2 which is really cool Additionally, EPLv2 has secondary licenses that make it compatible with the GPL Mention this is a JVM
  2. Are you aware of AdoptOpenJDK? London JUG created “No one competes on build farms” – common infrastructure for all JDK builders A place to get certified builds, of known good quality. Test suites JCKs Tracking the OpenJDK patch levels (Security fixes) And most importantly, they provide binaries for Eclipse OpenJ9 And OpenJ9 was the first set of binaries to have passed certification there.
  3. Make a big deal about the license Very open, very easy for anyone and everyone to contribute. Operating at the Eclipse Foundation means operating under a set of rules that ensures the project is open, accessible to all, and not controlled by any single company. This is one of the first projects under the EPLv2 which is really cool Additionally, EPLv2 has secondary licenses that make it compatible with the GPL Mention this is a JVM
  4. The ability to put something into production every couple of week or even every commit led to infrastructure pressure. An application deployment isn’t possible without infrastructure, and cloud was here to help. The availability of hardware or platforms on tap through cloud mean buy cycles of months were no longer necessary.
  5. Java EE 8 progress was very slow. Cloud-native requirements not being addressed quickly enough MicroProfile set up in Mid 2016 as an industry collaboration.
  6. @GET @Produces(MediaType.APPLICATION_JSON) @APIResponse( responseCode = "200", description = "host:properties pairs stored in the inventory.", content = @Content( mediaType = "application/json", schema = @Schema( type = SchemaType.OBJECT, implementation = InventoryList.class))) @Operation( summary = "List inventory contents.", description = "Returns the stored host:properties pairs.") public InventoryList listContents() { return manager.list(); }
  7. @GET @Produces(MediaType.APPLICATION_JSON) @APIResponse( responseCode = "200", description = "host:properties pairs stored in the inventory.", content = @Content( mediaType = "application/json", schema = @Schema( type = SchemaType.OBJECT, implementation = InventoryList.class))) @Operation( summary = "List inventory contents.", description = "Returns the stored host:properties pairs.") public InventoryList listContents() { return manager.list(); }
  8. @Traced(value = true, operationName = "InventoryManager.list") public InventoryList list() { return ... }
  9. Alasdair Talk about exploiting docker and docker layers.  FAT jars are not your friend. Docker, and kube are your friend and really the future for deployment