SlideShare a Scribd company logo
1
Deploy and Update Jakarta EE &
MicroProfile applications @
Lightspeed
With Paketo
Name: Jamie L Coleman
Title: Software Developer/Advocate @ IBM
Twitter: @Jamie_Lee_C
2
2
Contents
3
Contents of this talk
• What are Polyglot
applications?
• Why use different languages?
• What is a Buildpack?
o Compliance
o Security
o Control
o Maintainability
• Introduction to Paketo!
o What is Paketo?
o How does Paketo work?
o Paketo & Java
o Open Liberty Buildpack
o Getting started with Paketo
• Introduction to Open Liberty
• MicroProfile & Jakarta EE
• Paketo with Open Liberty Demo
• Recap
• Useful Links
4
4
What are Polyglot
applications?
5
Polyglot applications
• Application written in multiple languages.
• Used to capture additional functionality &
efficiency of different languages.
• Allow development teams to choose the
technology stack they want to use.
• If abiding by the rules of the 15 factors
for cloud-native development such as
API first, then this can be achieved easily
depending on the skills of your
developers.
6
Saving energy with efficient
applications
There is over 500,000 data centres worldwide
The area of land they consume is around the same as 6,000 football
pitches
UK energy consumption x 1.5 == global data centre energy
consumption (2019).
7
Luckily Hardware efficiency is helping
8
Application
9
Microservices and the JVM
10
Many metrics must be balanced for Java Performance
• Wide variety of use cases means many metrics must be balanced
• Different goals  different design decisions
• No single “right” answer
• Must keep a balance  make sensible trade-offs
• Key performance metrics tracked
• start-up time
• ramp-up time
• memory footprint
• response time
• CPU/Throughput
Optimizing for cloud requires a different balance across these performance metrics
start-up
time
footprin
ramp-up
response
time
CPU
11
Overview of OpenJ9
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
12
Overview of OpenJ9
13
Research on greenest languages
https://medium.com/codex/what-are-the-greenest-
programming-languages-e738774b1957
14
Save time, money & energy!
Advantages
• Increase Engineer creativity
• Speed up time to market
• Draw from a big pool of talent
• More efficient applications
Disadvantages
• Scaling Issues
• Complexity!
15
15
What are Buildpacks?
16
Buildpacks
• Transform application source code into OCI images
• Conceived by Heroku (Creators of the 12 factor applications) in 2011
• Created by Pivotal and Heroku in 2018
17
Buildpacks
• Advanced Caching
o Robust caching is used to improve performance
• Auto-detection
o Images can be built directly from source without additional
instructions
• Bill of Materials
o Insights into the contents of the app through standard SBOMs
• Modular/Pluggable
o Multiple buildpacks can be used to create an image
• Multi Language
o Supports multiple programming language stacks
18
Buildpacks
• Multi Process
o Images can have multiple entry
• Minimal App image
o Image contains only what is required
• Rebasing
o Instant updates on base images without re-building
• Reproducibility
o Reproduces the same app image digest with a rebuild
• Reusability
o Leverage pre-built buildpacks maintained by a large community
19
Compliance
Ensuring your software licences are being used correctly
Top causes of software non-compliance
1. Complexity of software licences
2. Inadvertent misuse
3. Lack of software asset management procedures and tools
4. Lack of education
5. Intentional misuse
20
Stacks & Buildpacks
Ensuring your stacks are updated and secure
Buildpacks/Paketo use the notion of a stack
A stack is composed of two images that are intended to work together:
1. The build image of a stack provides the base image from which the build
environment is constructed.
2. The run image of a stack provides the base image from which application
images are built.
21
Security & Hardening features
• By using Ubuntu 18.04 and 22.04 as the base images for the stacks, you benefit from all of
the security provided by Canonical and Ubuntu.
• Automatic monitoring and patching of CVEs means that our stacks are often updated within
hours of Canonical’s patches.
• The stack images are run as a dedicated non-root user when building and running
applications.
• Each stack image has detailed metadata describing the image’s components, such as the
base operating system and packages.
• Each stack has separate images for building and running applications. The packages on
the runtime image are curated to exclude compilers and other tools that might pose
security risks.
• The build and run images have different user IDs. This means that sensitive files and
dependencies installed at build-time cannot be corrupted at run-time by malicious app
code.
22
Control
With buildpacks, you have full control over the OSes, languages, and
package management your teams can use. This allows you to connect
to a private maven repository and use dependency management
software such as Sonatype’s Nexus product.
They also provide you with a bill of materials through standard build
times SBOMs in different formats that can be used to see
insights in your applications image.
23
Maintainability
Having good maintainability helps your organisation save money and
energy in the long run.
Buildpacks offer certain features that can help with maintainability:
1. Auto-detection of source code changes
2. Using multiple buildpacks to create an application images
3. Image contains only what is required
4. Instant updates of base images without re-building
5. Reuse buildpacks maintained by a large community.
24
Comparing
buildpacks
functionality
with other
technologies
25
25
Introducing Paketo!
26
What is Paketo?
• Paketo transforms your application source code into container
images
• Paketo is Open source and provides production ready buildpacks for
the most popular languages and frameworks such as:
o PHP, Java, Node.js, Go, .NET Core, Ruby, NGINX &
• Allows you to easily build applications and keep them updated
27
How does Paketo work?
Just bring your app and Paketo Buildpacks will detect what language
your app is using, gather the required dependencies, and build it into
an image.
The build tool detects your file structure and decides what build tool to
use or you can manually select the tool you want such as:
• Gradle
• Maven
• Leiningen
• SBT
28
How does Paketo work?
Installing a Specific JVM Version
The following environment variable configures the JVM version at build-time: BP_JVM_VERSION
• Defaults to the latest 11.x version at the time of release.
• Configures a specific JDK or JRE version.
Use an Alternative JVM
• By default, the Paketo Java buildpack will use the Liberica JVM but you are able to use the JVM of your choice:
• Adoptium Paketo Adoptium Buildpack
• Alibaba Dragonwell(opens in a new tab) 2 Paketo Alibaba Dragonwell Buildpack
• Amazon Corretto(opens in a new tab) 2 Paketo Amazon Corretto Buildpack
• Azul Zulu(opens in a new tab) Paketo Azul Zulu Buildpack
• BellSoft Liberica(opens in a new tab) Paketo BellSoft Liberica Buildpack - Default
• Eclipse OpenJ9(opens in a new tab) Paketo Eclipse OpenJ9 Buildpack
• GraalVM(opens in a new tab) 2 Paketo GraalVM Buildpack
• Oracle JDK(opens in a new tab) 2 3 Paketo Oracle Buildpack
• Microsoft OpenJDK(opens in a new tab) 2 Paketo Microsoft OpenJDK Buildpack
29
How does Paketo work?
Paketo can use an alternatives Java Application Servesr from the default!
When deploying your Java application to an application runtime, the
default application server installed by the Paketo Java buildpack is Apache
Tomcat.
If you require a different application runtime, possibly one that supports
JavaEE or JakartaEE, you may select an alternative Java application
server by setting BP_JAVA_APP_SERVER when building your application
such as: samples/war -e BP_JAVA_APP_SERVER=liberty
30
30
Introducing Open Liberty
31
Open Liberty
© 2021 IBM Corporation
32
Open Liberty 5th Birthday!
© 2021 IBM Corporation
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
© 2021 IBM Corporation
Open Liberty Project Goals
34
Developer Experience: dev mode
• Boosts developer productivity
• Immediate feedback for code
and config changes
• No re-build necessary
mvn liberty:dev
© 2021 IBM Corporation
https://developer.ibm.com/tutorials/achieve-rapid-iterative-cloud-native-application-development/
35
Developer productivity
Repositories Build
IDEs
Dev Mode
APIs Testing
© 2021 IBM Corporation
36
6 reasons why Liberty
Just enough runtime
Low operating cost
Continuous delivery
Zero migration
Kubernetes
optimized
80% disk and 56% memory
saving
4x increased density over
Tomcat & Spring Boot
Zero-effort security fixing & zero
technical debt
100% v2v & fixpack migration
saving
Self-tuned optimal perf,
production-ready, kube-native
Developer experience
Container & kube-native
experience, rapid inner loop
Lightweight, highly-
efficient runtime
CI/CD optimized
operational experience
Simple true-to-
production developer
experience
37
37
Paketo & the Open Liberty
Buildpack
38
Open Liberty
The Paketo Buildpack for Liberty is a Cloud-Native Buildpack that
contributes Open Liberty or WebSphere Liberty for Java EE/Jakarta EE
& MicroProfile support.
GitHub - paketo-buildpacks/liberty: A Cloud Native Buildpack that
provides the Open Liberty runtime
39
Open Liberty
The buildpack will support all available profiles of the most recent versions of the Liberty runtime.
Because the Liberty versioning scheme is not conformant to semantic versioning, a Liberty version like
22.0.0.2 is defined here as 22.0.2, and should be referenced as such!
Profiles
Valid profiles for Open Liberty are:
full
kernel
jakartaee9
javaee8
webProfile9
webProfile8
microProfile5
microProfile4
40
40
Getting started with Paketo
41
Getting started
The first thing I would advise is to look at Paketo and your own
applications using things such as: SBOMs and decide on what
technology to use.
If you are working for a big corporation that decides what technology to
use then creating a SBOM is useful to determine if you need to
purchase extra licences and not incur extra fees due to licence
understandings.
42
42
MicroProfile & Jakarta EE
43
https://microprofile.io
44
What is MicroProfile?
● MicroProfile is an open-source community
specification for building Java microservices
● A community of individuals, organizations, and
vendors collaborating within an open source
(Eclipse) working group to bringAPI optimized for
building microservices to the Java community microprofile.io
© 2021 IBM Corporation
45
MicroProfile
Contributors
© 2021 IBM Corporation
46
© 2021 IBM Corporation
MicroProfile
Vendors/Implementations
47
MicroProfile 5.0 Stack
Reactive
Streams
Operators 2.0
Reactive
Messaging
2.0
GraphQL 1.1
Context
Propagation
1.3
Standalone Projects
LRA 1.0
© 2021 IBM Corporation
https://developer.ibm.com/components/open-liberty/series/what-is-microprofile/
Jakarta EE
JSON-B 2.0
Jakarta EE
JSON-P 2.0
Jakatra EE
CDI 3.0
Config 3.0
Fault
Tolerance 4.0
JWT
Propagation
2.0
Health
4.0
Metrics 4.0
Open Tracing
3.0
Open API 3.0
Jakatra EE
JAX-RS 3.0
Rest Client
3.0
48
What is Jakarta EE?
● Eclipse Jakarta EE is an open-source community
driven specification for cloud-native enterprise
Java
● Jakarta EE is a set of specifications, extending
Java SE for enterprise features for things such as
web services etc
© 2021 IBM Corporation
49
Members
50
Jakarta EE Roadmap
© 2021 IBM Corporation
50
Liberty Zero Migration means your
Java EE 7, 8 & Jakarta EE 8 apps
continue to work and can be moved to
Jarkarta EE 9 on your timescale
Jakarta EE 8 (3Q2019)
• API identical with Java
EE 8
Jakarta EE 9 (4Q2020)
• New API namespace
• API equivalent to Java
SE 8
Jakarta EE 9.1 (2Q2021)
• Java SE 11
WebSphere Liberty &
Open Liberty (3Q2019)
• Jakarta EE 8
Jakarta EE X (TBD)
• New APIs
© 2021 IBM Corporation
51
51
Open Liberty with Paketo
Demo
52
Interactive Demo
If you want to participate in this demo then we have provided an online
environment that will allow you to explore this technology!
To access any of the Open Liberty environments for exploration
reasons then head to our Guides and click the “Run In Cloud” button.
https://openliberty.io/guides/
53
53
Recap
54
Recap
• Polyglot applications can provide many benefits but can be complex.
• Buildpacks can help make this less complex by:
o Advanced Caching
o Auto-detection
o Bill of Materials
o Modular/Pluggable
o Multi Language
o Multi Process
o Minimal App image
o Rebasing
o Reproducibility
o Reusability
• Open Liberty with MicroProfile & Jakarta EE are great Open Source choices for your Java
applications and are a fully supported buildpacks that are maintained by the Open Liberty
development team.
55
Links to research for this talk
• Analyzing Polyglot Microservices. An Exploration for Enterprise | by
Tripta Gupta | Capital One Tech | Medium
• Software Compliance - Are You Compliant? - Hypertec Direct
• Cloud Native Buildpacks · Cloud Native Buildpacks
• Paketo Buildpacks - Paketo Buildpacks
56
56
Links and Materials
MicroProfile
• MicroProfile Starter: https://start.microprofile.io/
• What is MicroProfile?
https://developer.ibm.com/components/open-
liberty/series/what-is-microprofile/
• MicroProfile Homepage:
https://projects.eclipse.org/proposals/eclipse-microprofile
Open Liberty
• Open Liberty Starter: https://openliberty.io/start/
• Open Liberty Site: https://openliberty.io/
• Open Liberty Guides: https://openliberty.io/guides
• Open Liberty Docs: https://openliberty.io/docs
Other Useful Links
• Microshed Homepage: https://microshed.org/
• Testcontainers Homepage: https://www.testcontainers.org/
• Jakarta EE Homepage: https://jakarta.ee/
All Open Source!
© 2021 IBM Corporation
57
Connect with us
https://www.linkedin.com/company/openlibertyio/ https://twitter.com/OpenLibertyIO
58
Thank you!
Name: Jamie L Coleman
Title: Software Developer/Advocate @ IBM
Twitter: @Jamie_Lee_C
Ad

More Related Content

Similar to Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx (20)

No Compromise - Better, Stronger, Faster Java in the Cloud
No Compromise - Better, Stronger, Faster Java in the CloudNo Compromise - Better, Stronger, Faster Java in the Cloud
No Compromise - Better, Stronger, Faster Java in the Cloud
All Things Open
 
document
documentdocument
document
Joyful Vino
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
John Zaccone
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
sparkfabrik
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
C4Media
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
LOGINPHP360
 
Android NDK
Android NDKAndroid NDK
Android NDK
Sentinel Solutions Ltd
 
Docs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesDocs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API Experiences
Anne Gentle
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
Docker, Inc.
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
Dr Ganesh Iyer
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
Grace Jansen
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
LOGINPHP360
 
Android ndk
Android ndkAndroid ndk
Android ndk
Sentinel Solutions Ltd
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
LetsConnect
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
Grace Jansen
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
MagaliDavidCruz
 
IBM Container Service Overview
IBM Container Service OverviewIBM Container Service Overview
IBM Container Service Overview
Kyle Brown
 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Daniel Oh
 
1.INTRODUCTION TO JAVA_2022 MB.ppt .
1.INTRODUCTION TO JAVA_2022 MB.ppt      .1.INTRODUCTION TO JAVA_2022 MB.ppt      .
1.INTRODUCTION TO JAVA_2022 MB.ppt .
happycocoman
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
Microsoft
 
No Compromise - Better, Stronger, Faster Java in the Cloud
No Compromise - Better, Stronger, Faster Java in the CloudNo Compromise - Better, Stronger, Faster Java in the Cloud
No Compromise - Better, Stronger, Faster Java in the Cloud
All Things Open
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
John Zaccone
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
sparkfabrik
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
C4Media
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
LOGINPHP360
 
Docs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesDocs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API Experiences
Anne Gentle
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
Docker, Inc.
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
Dr Ganesh Iyer
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
Grace Jansen
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
LOGINPHP360
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
LetsConnect
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
Grace Jansen
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
MagaliDavidCruz
 
IBM Container Service Overview
IBM Container Service OverviewIBM Container Service Overview
IBM Container Service Overview
Kyle Brown
 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Daniel Oh
 
1.INTRODUCTION TO JAVA_2022 MB.ppt .
1.INTRODUCTION TO JAVA_2022 MB.ppt      .1.INTRODUCTION TO JAVA_2022 MB.ppt      .
1.INTRODUCTION TO JAVA_2022 MB.ppt .
happycocoman
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
Microsoft
 

More from Jamie Coleman (20)

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
Jamie 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.pptx
Jamie 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 Left
Jamie 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.pptx
Jamie 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!.pptx
Jamie Coleman
 
Code to Cloud Workshop.pptx
Code to Cloud Workshop.pptxCode to Cloud Workshop.pptx
Code to Cloud Workshop.pptx
Jamie 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.pptx
Jamie Coleman
 
Code to Cloud Workshop
Code to Cloud WorkshopCode to Cloud Workshop
Code to Cloud Workshop
Jamie 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.pptx
Jamie Coleman
 
Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021
Jamie 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 v2
Jamie 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 JVM
Jamie 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 Java
Jamie 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 containers
Jamie 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 jvm
Jamie Coleman
 
Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshop
Jamie Coleman
 
Cloud native java workshop
Cloud native java workshopCloud native java workshop
Cloud native java workshop
Jamie Coleman
 
Seriously Open Cloud Native Java Microservices
Seriously Open Cloud Native Java MicroservicesSeriously Open Cloud Native Java Microservices
Seriously Open Cloud Native Java Microservices
Jamie Coleman
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bag
Jamie Coleman
 
Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura
Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at JavanturaHands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura
Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura
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 Development
Jamie 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.pptx
Jamie 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 Left
Jamie 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.pptx
Jamie 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!.pptx
Jamie Coleman
 
Code to Cloud Workshop.pptx
Code to Cloud Workshop.pptxCode to Cloud Workshop.pptx
Code to Cloud Workshop.pptx
Jamie 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.pptx
Jamie Coleman
 
Code to Cloud Workshop
Code to Cloud WorkshopCode to Cloud Workshop
Code to Cloud Workshop
Jamie 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.pptx
Jamie Coleman
 
Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021
Jamie 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 v2
Jamie 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 JVM
Jamie 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 Java
Jamie 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 containers
Jamie 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 jvm
Jamie Coleman
 
Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshop
Jamie Coleman
 
Cloud native java workshop
Cloud native java workshopCloud native java workshop
Cloud native java workshop
Jamie Coleman
 
Seriously Open Cloud Native Java Microservices
Seriously Open Cloud Native Java MicroservicesSeriously Open Cloud Native Java Microservices
Seriously Open Cloud Native Java Microservices
Jamie Coleman
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bag
Jamie Coleman
 
Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura
Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at JavanturaHands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura
Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura
Jamie Coleman
 
Ad

Recently uploaded (20)

Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Ad

Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx

  • 1. 1 Deploy and Update Jakarta EE & MicroProfile applications @ Lightspeed With Paketo Name: Jamie L Coleman Title: Software Developer/Advocate @ IBM Twitter: @Jamie_Lee_C
  • 3. 3 Contents of this talk • What are Polyglot applications? • Why use different languages? • What is a Buildpack? o Compliance o Security o Control o Maintainability • Introduction to Paketo! o What is Paketo? o How does Paketo work? o Paketo & Java o Open Liberty Buildpack o Getting started with Paketo • Introduction to Open Liberty • MicroProfile & Jakarta EE • Paketo with Open Liberty Demo • Recap • Useful Links
  • 5. 5 Polyglot applications • Application written in multiple languages. • Used to capture additional functionality & efficiency of different languages. • Allow development teams to choose the technology stack they want to use. • If abiding by the rules of the 15 factors for cloud-native development such as API first, then this can be achieved easily depending on the skills of your developers.
  • 6. 6 Saving energy with efficient applications There is over 500,000 data centres worldwide The area of land they consume is around the same as 6,000 football pitches UK energy consumption x 1.5 == global data centre energy consumption (2019).
  • 10. 10 Many metrics must be balanced for Java Performance • Wide variety of use cases means many metrics must be balanced • Different goals  different design decisions • No single “right” answer • Must keep a balance  make sensible trade-offs • Key performance metrics tracked • start-up time • ramp-up time • memory footprint • response time • CPU/Throughput Optimizing for cloud requires a different balance across these performance metrics start-up time footprin ramp-up response time CPU
  • 11. 11 Overview of OpenJ9 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
  • 13. 13 Research on greenest languages https://medium.com/codex/what-are-the-greenest- programming-languages-e738774b1957
  • 14. 14 Save time, money & energy! Advantages • Increase Engineer creativity • Speed up time to market • Draw from a big pool of talent • More efficient applications Disadvantages • Scaling Issues • Complexity!
  • 16. 16 Buildpacks • Transform application source code into OCI images • Conceived by Heroku (Creators of the 12 factor applications) in 2011 • Created by Pivotal and Heroku in 2018
  • 17. 17 Buildpacks • Advanced Caching o Robust caching is used to improve performance • Auto-detection o Images can be built directly from source without additional instructions • Bill of Materials o Insights into the contents of the app through standard SBOMs • Modular/Pluggable o Multiple buildpacks can be used to create an image • Multi Language o Supports multiple programming language stacks
  • 18. 18 Buildpacks • Multi Process o Images can have multiple entry • Minimal App image o Image contains only what is required • Rebasing o Instant updates on base images without re-building • Reproducibility o Reproduces the same app image digest with a rebuild • Reusability o Leverage pre-built buildpacks maintained by a large community
  • 19. 19 Compliance Ensuring your software licences are being used correctly Top causes of software non-compliance 1. Complexity of software licences 2. Inadvertent misuse 3. Lack of software asset management procedures and tools 4. Lack of education 5. Intentional misuse
  • 20. 20 Stacks & Buildpacks Ensuring your stacks are updated and secure Buildpacks/Paketo use the notion of a stack A stack is composed of two images that are intended to work together: 1. The build image of a stack provides the base image from which the build environment is constructed. 2. The run image of a stack provides the base image from which application images are built.
  • 21. 21 Security & Hardening features • By using Ubuntu 18.04 and 22.04 as the base images for the stacks, you benefit from all of the security provided by Canonical and Ubuntu. • Automatic monitoring and patching of CVEs means that our stacks are often updated within hours of Canonical’s patches. • The stack images are run as a dedicated non-root user when building and running applications. • Each stack image has detailed metadata describing the image’s components, such as the base operating system and packages. • Each stack has separate images for building and running applications. The packages on the runtime image are curated to exclude compilers and other tools that might pose security risks. • The build and run images have different user IDs. This means that sensitive files and dependencies installed at build-time cannot be corrupted at run-time by malicious app code.
  • 22. 22 Control With buildpacks, you have full control over the OSes, languages, and package management your teams can use. This allows you to connect to a private maven repository and use dependency management software such as Sonatype’s Nexus product. They also provide you with a bill of materials through standard build times SBOMs in different formats that can be used to see insights in your applications image.
  • 23. 23 Maintainability Having good maintainability helps your organisation save money and energy in the long run. Buildpacks offer certain features that can help with maintainability: 1. Auto-detection of source code changes 2. Using multiple buildpacks to create an application images 3. Image contains only what is required 4. Instant updates of base images without re-building 5. Reuse buildpacks maintained by a large community.
  • 26. 26 What is Paketo? • Paketo transforms your application source code into container images • Paketo is Open source and provides production ready buildpacks for the most popular languages and frameworks such as: o PHP, Java, Node.js, Go, .NET Core, Ruby, NGINX & • Allows you to easily build applications and keep them updated
  • 27. 27 How does Paketo work? Just bring your app and Paketo Buildpacks will detect what language your app is using, gather the required dependencies, and build it into an image. The build tool detects your file structure and decides what build tool to use or you can manually select the tool you want such as: • Gradle • Maven • Leiningen • SBT
  • 28. 28 How does Paketo work? Installing a Specific JVM Version The following environment variable configures the JVM version at build-time: BP_JVM_VERSION • Defaults to the latest 11.x version at the time of release. • Configures a specific JDK or JRE version. Use an Alternative JVM • By default, the Paketo Java buildpack will use the Liberica JVM but you are able to use the JVM of your choice: • Adoptium Paketo Adoptium Buildpack • Alibaba Dragonwell(opens in a new tab) 2 Paketo Alibaba Dragonwell Buildpack • Amazon Corretto(opens in a new tab) 2 Paketo Amazon Corretto Buildpack • Azul Zulu(opens in a new tab) Paketo Azul Zulu Buildpack • BellSoft Liberica(opens in a new tab) Paketo BellSoft Liberica Buildpack - Default • Eclipse OpenJ9(opens in a new tab) Paketo Eclipse OpenJ9 Buildpack • GraalVM(opens in a new tab) 2 Paketo GraalVM Buildpack • Oracle JDK(opens in a new tab) 2 3 Paketo Oracle Buildpack • Microsoft OpenJDK(opens in a new tab) 2 Paketo Microsoft OpenJDK Buildpack
  • 29. 29 How does Paketo work? Paketo can use an alternatives Java Application Servesr from the default! When deploying your Java application to an application runtime, the default application server installed by the Paketo Java buildpack is Apache Tomcat. If you require a different application runtime, possibly one that supports JavaEE or JakartaEE, you may select an alternative Java application server by setting BP_JAVA_APP_SERVER when building your application such as: samples/war -e BP_JAVA_APP_SERVER=liberty
  • 31. 31 Open Liberty © 2021 IBM Corporation
  • 32. 32 Open Liberty 5th Birthday! © 2021 IBM Corporation
  • 33. 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 © 2021 IBM Corporation Open Liberty Project Goals
  • 34. 34 Developer Experience: dev mode • Boosts developer productivity • Immediate feedback for code and config changes • No re-build necessary mvn liberty:dev © 2021 IBM Corporation https://developer.ibm.com/tutorials/achieve-rapid-iterative-cloud-native-application-development/
  • 35. 35 Developer productivity Repositories Build IDEs Dev Mode APIs Testing © 2021 IBM Corporation
  • 36. 36 6 reasons why Liberty Just enough runtime Low operating cost Continuous delivery Zero migration Kubernetes optimized 80% disk and 56% memory saving 4x increased density over Tomcat & Spring Boot Zero-effort security fixing & zero technical debt 100% v2v & fixpack migration saving Self-tuned optimal perf, production-ready, kube-native Developer experience Container & kube-native experience, rapid inner loop Lightweight, highly- efficient runtime CI/CD optimized operational experience Simple true-to- production developer experience
  • 37. 37 37 Paketo & the Open Liberty Buildpack
  • 38. 38 Open Liberty The Paketo Buildpack for Liberty is a Cloud-Native Buildpack that contributes Open Liberty or WebSphere Liberty for Java EE/Jakarta EE & MicroProfile support. GitHub - paketo-buildpacks/liberty: A Cloud Native Buildpack that provides the Open Liberty runtime
  • 39. 39 Open Liberty The buildpack will support all available profiles of the most recent versions of the Liberty runtime. Because the Liberty versioning scheme is not conformant to semantic versioning, a Liberty version like 22.0.0.2 is defined here as 22.0.2, and should be referenced as such! Profiles Valid profiles for Open Liberty are: full kernel jakartaee9 javaee8 webProfile9 webProfile8 microProfile5 microProfile4
  • 41. 41 Getting started The first thing I would advise is to look at Paketo and your own applications using things such as: SBOMs and decide on what technology to use. If you are working for a big corporation that decides what technology to use then creating a SBOM is useful to determine if you need to purchase extra licences and not incur extra fees due to licence understandings.
  • 44. 44 What is MicroProfile? ● MicroProfile is an open-source community specification for building Java microservices ● A community of individuals, organizations, and vendors collaborating within an open source (Eclipse) working group to bringAPI optimized for building microservices to the Java community microprofile.io © 2021 IBM Corporation
  • 46. 46 © 2021 IBM Corporation MicroProfile Vendors/Implementations
  • 47. 47 MicroProfile 5.0 Stack Reactive Streams Operators 2.0 Reactive Messaging 2.0 GraphQL 1.1 Context Propagation 1.3 Standalone Projects LRA 1.0 © 2021 IBM Corporation https://developer.ibm.com/components/open-liberty/series/what-is-microprofile/ Jakarta EE JSON-B 2.0 Jakarta EE JSON-P 2.0 Jakatra EE CDI 3.0 Config 3.0 Fault Tolerance 4.0 JWT Propagation 2.0 Health 4.0 Metrics 4.0 Open Tracing 3.0 Open API 3.0 Jakatra EE JAX-RS 3.0 Rest Client 3.0
  • 48. 48 What is Jakarta EE? ● Eclipse Jakarta EE is an open-source community driven specification for cloud-native enterprise Java ● Jakarta EE is a set of specifications, extending Java SE for enterprise features for things such as web services etc © 2021 IBM Corporation
  • 50. 50 Jakarta EE Roadmap © 2021 IBM Corporation 50 Liberty Zero Migration means your Java EE 7, 8 & Jakarta EE 8 apps continue to work and can be moved to Jarkarta EE 9 on your timescale Jakarta EE 8 (3Q2019) • API identical with Java EE 8 Jakarta EE 9 (4Q2020) • New API namespace • API equivalent to Java SE 8 Jakarta EE 9.1 (2Q2021) • Java SE 11 WebSphere Liberty & Open Liberty (3Q2019) • Jakarta EE 8 Jakarta EE X (TBD) • New APIs © 2021 IBM Corporation
  • 51. 51 51 Open Liberty with Paketo Demo
  • 52. 52 Interactive Demo If you want to participate in this demo then we have provided an online environment that will allow you to explore this technology! To access any of the Open Liberty environments for exploration reasons then head to our Guides and click the “Run In Cloud” button. https://openliberty.io/guides/
  • 54. 54 Recap • Polyglot applications can provide many benefits but can be complex. • Buildpacks can help make this less complex by: o Advanced Caching o Auto-detection o Bill of Materials o Modular/Pluggable o Multi Language o Multi Process o Minimal App image o Rebasing o Reproducibility o Reusability • Open Liberty with MicroProfile & Jakarta EE are great Open Source choices for your Java applications and are a fully supported buildpacks that are maintained by the Open Liberty development team.
  • 55. 55 Links to research for this talk • Analyzing Polyglot Microservices. An Exploration for Enterprise | by Tripta Gupta | Capital One Tech | Medium • Software Compliance - Are You Compliant? - Hypertec Direct • Cloud Native Buildpacks · Cloud Native Buildpacks • Paketo Buildpacks - Paketo Buildpacks
  • 56. 56 56 Links and Materials MicroProfile • MicroProfile Starter: https://start.microprofile.io/ • What is MicroProfile? https://developer.ibm.com/components/open- liberty/series/what-is-microprofile/ • MicroProfile Homepage: https://projects.eclipse.org/proposals/eclipse-microprofile Open Liberty • Open Liberty Starter: https://openliberty.io/start/ • Open Liberty Site: https://openliberty.io/ • Open Liberty Guides: https://openliberty.io/guides • Open Liberty Docs: https://openliberty.io/docs Other Useful Links • Microshed Homepage: https://microshed.org/ • Testcontainers Homepage: https://www.testcontainers.org/ • Jakarta EE Homepage: https://jakarta.ee/ All Open Source! © 2021 IBM Corporation
  • 57. 57 Connect with us https://www.linkedin.com/company/openlibertyio/ https://twitter.com/OpenLibertyIO
  • 58. 58 Thank you! Name: Jamie L Coleman Title: Software Developer/Advocate @ IBM Twitter: @Jamie_Lee_C

Editor's Notes

  • #6: Talk about current team using other languages to scrape data from Social media
  • #10: .
  • #32: Jamie
  • #33: Jamie
  • #34: Jamie 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…
  • #35: Jamie
  • #36: Jamie
  • #45: Grace
  • #46: Grace
  • #47: Grace
  • #48: Grace
  • #57: Grace