SlideShare une entreprise Scribd logo
1  sur  48
1
1
Cloud Native Dev Tools:
Bringing The Cloud
Back To Earth
GRACE, JANSEN
DEVELOPER ADVOCATE,
IBM
@gracejansen27
Pittsburg JUG @gracejansen27
2
2
WHY?
@gracejansen27
3
4
Image source: https://tenor.com/view/computer-rage-fail-work-pc-gif-23534022
5
Image source: https://gfycat.com/bluewholecockatiel
6
6
WHAT?
@gracejansen27
7
Developers?
• Create a (new) project
• Add or edit code
• Build (and package and run)
• Test code
• Write tests
• … and repeat
• DevOps - Deployment
• Coding assistance when needed
• Choice of editors and IDEs
8
Iterative Development Cycle
Create
Build
Edit
Test
Deploy
9
Iterative Development Cycle
Create
Build
Edit
Test
Deploy
10
10
HOW?
@gracejansen27
11
Beam Me Up
Scotty!
12
Bring The Cloud
Back Down To
Earth
13
13
OSS Java Technologies
@gracejansen27
14
openliberty.io
https://openliberty.io
15
Health
Check
Metrics
Fault
Tolerance
OpenAPI
Config
Open
Tracing
JWT
JSON-B
Rest Client
CDI
JAX-RS JSON-P
Core
Integrate
Observe
https://microprofile.io/
Open cloud-native Java APIs
Open
Telemetry
GraphQL
Reactive
Messaging
17
18
19
Iterative Development Cycle
Create
Build
Edit
Test
Deploy
20
20
CREATE
@gracejansen27
21
Starters
Give me a starter project or
template for my MicroProfile
application
• start.microprofile.io
• VS Code extension
• IntelliJ plugin
Create
22
Starters
Give me a starter project or
template for my Jakarta EE
application
• start.jakarta.ee
• Runtime-specific
starters/generators/templates
• Open Liberty Starter
• start.openliberty.io
Create
23
23
BUILD
@gracejansen27
24
Dev Mode
What if I don’t have to build,
package, deploy and start my
application manually during
development?
• Liberty Maven/Gradle Plugin
• Dev mode for hot deploy
• Continuous/hot testing
• Container support
• Debugging
mvn liberty:dev
mvn liberty:devc
Build
25
WAD - Watch and Deploy
https://wad.sh/
26
26
EDIT
@gracejansen27
27
IDE or Editor Integration
Working with MicroProfile API and
runtimes inside my favorite editor
or IDE
• Eclipse
• IntelliJ
• VS Code
• NetBeans …
• IDE integration for runtime
lifecycle management
• Custom runtime plugins or
extensions
Edit
28
Coding Assistance in Editor/IDE
Can I get help with working with
MicroProfile APIs inside my favorite
editor or IDE?
• Language Server for Eclipse
MicroProfile incubator project at
Eclipse Foundation
• LSP4MP-based VS Code
extension, Tools for
MicroProfile from Red Hat
Contribute at
https://github.com/eclipse/lsp4mp/
Edit
29
Coding Assistance in Editor/IDE
Can I get help with working with
Jakarta EE APIs inside my favorite
editor or IDE?
• Language Server for Jakarta EE
(LSP4Jakarta) incubator project
under the Eclipse Foundation
Contribute at
https://github.com/eclipse/lsp4jakarta
Edit
30
Code Generators
Any additional help with generating
(boilerplate) code?
• MicroProfile Rest Client from
OpenAPI docs
• CLI via OpenAPI Tools
• VS Code extension
• JAX-RS stubs generation in
OpenAPI Tools
Edit
31
31
TEST
@gracejansen27
32
Automated Testing
• The Usual Suspects
• JUnit
• Arquillian …
• Leveraging containers
• Testcontainers
• MicroShed Testing
https://microshed.github.io
Test
33
my-
app:latest
(app
container)
mongo:4.0
(DB container)
Dev/Test env
Production env
integratio
n 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:
o Liberty
o Wildfly
o Payara
o TomEE
o etc…
34
34
DEPLOY
@gracejansen27
35
Buildpacks.io
Provide framework and runtime support for applications
Transforms your application source code into container
images that can run on any cloud
Avoid the need to manage Dockerfiles
</>
Source Code Buildpack
Specification
pack CLI
OCI Image
36
Feature comparison
https://buildpacks.io/features/
37
Paketo Buildpacks
Implementation of the Cloud Native Buildpack interface
specification
Multiple languages
</>
Source Code Paketo
Buildpacks OCI Image
pack CLI
38
Liberty Buildpack
gcr.io/paketo-buildpacks/liberty
https://openliberty.io/blog/2022/04/01/cloud-native-liberty-buildpack.html
https://paketo.io/docs/reference/builders-reference/
39
39
TELEPRESENCE
@gracejansen27
40
What is Telepresence?
• Fast, local development for Kubernetes and
OpenShift Microservices
• Benefits:
• Accelerate Inner Dev Loop
• Shift Testing Left
• Use Your Existing Workflow
https://github.com/sdaschner/liberty-dev-experience https://heidloff.net/article/debugging-microservices-Kubernetes/
41
How does it work?
‘telepresence connect’
`telepresence intercept
service-name’
42
42
TRY IT YOURSELF
43
Open Liberty Guides https://openliberty.io/guides/
44
Interactive cloud-native labshttps://openliberty.io/guides/liberty-deep-dive.html
45
45
Summary
46
Developer Tools MicroProfile - Common Tools Jakarta EE - Common Tools Runtime Tooling (Open Liberty)
Starters
start.microprofile.io
MP Starter IDE Plugins
start.jakarta.ee Open Liberty Starter
Build & Run N/A N/A
Liberty Maven & Gradle Build
Plugins
Dev mode
IDE/Editor Integration
Eclipse LSP4MP
LSP4MP IDE Plugin(s)
MP Extension Pack for VS Code
Code
Eclipse LSP4Jakarta
Liberty Tools for Eclipse, IntelliJ
IntelliJ and VS Code (tech
previews)
Dev mode for any editor
Code Generators
OpenAPI Tools
MP Rest Client Generator
N/A N/A
Automated Testing
JUnit, Arquillian
Testcontainers, MicroShed
Testing
JUnit, Arquillian, Testcontainers,
Hot testing
Deployment N/A N/A
Paketo Buildpacks,
Dev Mode
Telepresence
47
Resource Links
• Liberty Tools for Eclipse: https://github.com/OpenLiberty/liberty-tools-eclipse
• Open Liberty Starter: https://start.openliberty.io/
• Liberty Tools for VS Code:
https://marketplace.visualstudio.com/items?itemName=Open-Liberty.liberty-dev-
vscode-ext
• Liberty Tools for IntelliJ: https://plugins.jetbrains.com/plugin/14856-liberty-tools
• VS Code Extension Pack for MicroProfile:
https://marketplace.visualstudio.com/items?itemName=MicroProfile-
Community.vscode-microprofile-pack
48
Resource Links
• TestContainers: https://www.testcontainers.org/
• Paketo Buildpack for Liberty: gcr.io/paketo-buildpacks/liberty
• Telepresence Examples:
• https://github.com/sdaschner/liberty-dev-experience
• https://heidloff.net/article/debugging-microservices-Kubernetes/
• Open Liberty Guides:
• Jakarta EE: https://openliberty.io/guides/?search=jakarta%20ee&key=tag
• MicroProfile: https://openliberty.io/guides/?search=microprofile&key=tag
• Open Liberty Deep Dive: https://openliberty.io/guides/liberty-deep-dive.html
49
49
Thank You
@gracejansen27

Contenu connexe

Similaire à PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth

Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle ManagementAmazon Web Services
 
Accelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUpAccelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUpjwi11iams
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 
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
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryAndy Piper
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)jaxLondonConference
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery AppliedExcella
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Mike McGarr
 
IBM JavaOne Community Keynote 2017
IBM JavaOne Community Keynote 2017IBM JavaOne Community Keynote 2017
IBM JavaOne Community Keynote 2017John Duimovich
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...Matteo Bisi
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Microsoft
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...Andrea Fontana
 
Docker Concepts for Oracle/MySQL DBAs and DevOps
Docker Concepts for Oracle/MySQL DBAs and DevOpsDocker Concepts for Oracle/MySQL DBAs and DevOps
Docker Concepts for Oracle/MySQL DBAs and DevOpsZohar Elkayam
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Ambassador Labs
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...Ambassador Labs
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
Docker Training - June 2015
Docker Training - June 2015Docker Training - June 2015
Docker Training - June 2015{code}
 

Similaire à PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth (20)

Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Accelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUpAccelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUp
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
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
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
 
IBM JavaOne Community Keynote 2017
IBM JavaOne Community Keynote 2017IBM JavaOne Community Keynote 2017
IBM JavaOne Community Keynote 2017
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...
 
Docker Concepts for Oracle/MySQL DBAs and DevOps
Docker Concepts for Oracle/MySQL DBAs and DevOpsDocker Concepts for Oracle/MySQL DBAs and DevOps
Docker Concepts for Oracle/MySQL DBAs and DevOps
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
Docker Training - June 2015
Docker Training - June 2015Docker Training - June 2015
Docker Training - June 2015
 

Plus de Grace Jansen

JPrime_JITServer.pptx
JPrime_JITServer.pptxJPrime_JITServer.pptx
JPrime_JITServer.pptxGrace Jansen
 
SwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptxSwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptxGrace Jansen
 
ThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxGrace Jansen
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxGrace Jansen
 
JavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptxJavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptxGrace Jansen
 
DevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxDevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxGrace Jansen
 
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxUtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxGrace Jansen
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
JCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptxJCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptxGrace Jansen
 
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxJavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxGrace Jansen
 
JavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptxJavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptxGrace Jansen
 
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxBoost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxGrace Jansen
 
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Grace Jansen
 
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptxJBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptxGrace Jansen
 
2022-Devnexus-StatefulMicroservices.pptx.pdf
2022-Devnexus-StatefulMicroservices.pptx.pdf2022-Devnexus-StatefulMicroservices.pptx.pdf
2022-Devnexus-StatefulMicroservices.pptx.pdfGrace Jansen
 
How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!Grace Jansen
 
Devoxx Ukraine - Going beyond the 12 factors
Devoxx Ukraine - Going beyond the 12 factorsDevoxx Ukraine - Going beyond the 12 factors
Devoxx Ukraine - Going beyond the 12 factorsGrace Jansen
 
BuildStuffConf Going beyond the 12 factors
BuildStuffConf Going beyond the 12 factorsBuildStuffConf Going beyond the 12 factors
BuildStuffConf Going beyond the 12 factorsGrace Jansen
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_ContainersGrace Jansen
 
JLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containersJLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containersGrace Jansen
 

Plus de Grace Jansen (20)

JPrime_JITServer.pptx
JPrime_JITServer.pptxJPrime_JITServer.pptx
JPrime_JITServer.pptx
 
SwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptxSwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptx
 
ThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptx
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptx
 
JavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptxJavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptx
 
DevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxDevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptx
 
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxUtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
JCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptxJCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptx
 
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxJavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
 
JavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptxJavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptx
 
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxBoost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
 
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
 
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptxJBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
 
2022-Devnexus-StatefulMicroservices.pptx.pdf
2022-Devnexus-StatefulMicroservices.pptx.pdf2022-Devnexus-StatefulMicroservices.pptx.pdf
2022-Devnexus-StatefulMicroservices.pptx.pdf
 
How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!
 
Devoxx Ukraine - Going beyond the 12 factors
Devoxx Ukraine - Going beyond the 12 factorsDevoxx Ukraine - Going beyond the 12 factors
Devoxx Ukraine - Going beyond the 12 factors
 
BuildStuffConf Going beyond the 12 factors
BuildStuffConf Going beyond the 12 factorsBuildStuffConf Going beyond the 12 factors
BuildStuffConf Going beyond the 12 factors
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_Containers
 
JLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containersJLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containers
 

Dernier

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
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
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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
 
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
 
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
 
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
 
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.
 
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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
+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
 

Dernier (20)

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
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
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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 ☂️
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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
 
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
 
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
 
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
 
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
 
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...
 
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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
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
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
+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...
 

PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth

Notes de l'éditeur

  1. How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
  2. What do developers care about? What do developers do? (when creating cloud-native apps)
  3. Move to OSS technologies  cloud-native, agility, portability, no vendor-lock in, community driven, etc How do we best work with these technologies locally to effectively build cloud-native applications? We’ll focus on a few Java specific OSS technologies for the examples given and demos shown
  4. Eclipse MicroProfile is a set of cloud native capabilities, implemented by our Java runtimes, that provide standard applications annotations implementations for applications to use in containers – building on a core of familiar Java EE technologies. LRA is one of the newest MicroProfile specificactions, derived from WS-BA, to provide a simple compensating transaction for Java microservices. The blue specs are part of the MicroProfile 3.3 release. ReactiveMessaging and LRA are standalone specs. The LRA model provides a good balance between a loosely coupled transaction model that preserves independence of application lifecycle of each microservce and application simplicity over maintaining data consistency in the presence of failure. Simple Java annotations are used to register completion and compensation tasks while the platfrom takes care of ensuring these get invoked appropriately, across any form of system failure.
  5. * use a more visible list, not so OL focused
  6. Apply OSS tools to what developers actually need – what they do
  7. Can be tedious to have to re-build, re-package, re-deploy applications every time you want to see a code change What tools are there available for us to make this easier? Dev Mode – hot deploy tool, abilities to start server, watch app for changes, re-build and re-package when needed and re-deploy Takes onous off developers Can see changes immediately – live test changes Offered as a maven or gradle plugin from Liberty Snippet shows plug needed (example is the maven plugin) Just need to run command shown Also container integration, just need to run the c goal to be able to test in a local container environment Also offers debugging, so dev mode makes a debug port available and allows you to connect to an IDE through this port to debug at any time
  8. The WAD tool watches for any changes that we make in the project and re-deploys our applications. Without fast deployments and short feedback-cycles about a new feature, you lose a lot of time just “idling”. As a Java/Jakarta EE developer, you will most likely have a local installation for the target application server and deploy the application several times a day during development. In the past, I've used Eclipse/IntelliJ/Netbeans with various vendor plugins to start the application server and deploy on every new code change. This was always quite a fiddling task, as I sometimes got issues with the plugins, had to wait for a new release or it wasn't as fast as I expected until I could see my changes. Luckily Adam Bien (@AdamBien) solved this with a small Java project called WAD (Watch and Deploy) which deploys thin .war ‘s on every change to any server and improves your productivity.
  9. Next is the edit stage
  10. As you’re editing typically we use IDEs or Editors What tools or plugins do we have when using favourite OSS specs or runtimes in fav IDEs? Many out there – screenshot shows just some from VS Code marketplace (search on MP) Many MP-specific Plugins and runtime-specific plugins (e.g. Quarkus, Open Liberty) Integrate straight into your IDE Really convenient Offered for a wide range of IDEs Example shown for Open Liberty here is Liberty tools Open Liberty Tools are lightweight tools for developing, assembling, and deploying apps to Open Liberty. It supports editing Liberty server.xml configuration (Liberty Config Language Server), developing MicroProfile applications, a Liberty Dashboard for organizing your projects (With a few clicks, you can start and stop your app, run tests, and view test reports.), and Liberty dev mode functions, all from within your IDE.
  11. What other coding assistance could I get in an editor or IDE? We are probably aware of the coding assistance editors can give us for working with Java projects, but what about specifically working with OSS Java specs like MicroProfile or Jakarta EE? This is where language server projects come in. One project is Eclipse LSP4MP – language server for Eclipse MicroProfile (all OSS, lives under eclipse foundation) Provides in-editor language features for MP APIs (e.g. code completion or snippets for popular APIs, or diagnostics or quick fixes when you use an API incorrectly), feedback to fix or enhance code before you run your app To use, just install plugins/extensions into your IDE of choice E.g. there is a VS Code extension from Red Hat (Tools for MP) that consumes this language server project
  12. What about working with Jakarta EE APIs? Similar project also under Eclipse foundation Language features support also offered for Jakarta EE APIs (e.g. code completion or snippets for popular APIs, or diagnostics or quick fixes when you use an API incorrectly), feedback to fix or enhance code before you run your app Should mention that both of these projects are considered incubator projects, so always looking for feedback from the community or to get more of the community involved (let us know if there is a feature you’d like to see that isn’t already there)
  13. Ok, what about if we want to generate snippets of code or generating boilerplate code? Are there tools to help? Yes! Code generator tools like OpenAPI tools -> for example you could generate a MicroProfile Rest Client from OpenAPI documentation This is available as a command line interface if you were to use the OpenAPI Tools or as an IDE extension (e.g. VS Code) – example given on the right and in next slide for this Enables you to generate a MP Rest Client directly into your project You can also generate JAX-RS stubs with OpenAPI Tools too Elias giving talk on this next in Room A4 (13:00-13:50)
  14. Like all good developers….
  15. What tools do we have out there for automated testing? Usual suspects are obviously available (Junit, Arquillian) But… if we want to leverage containers…. Can use technologies like TestConatiners or MicroShed testing (implementation of Test Containers) Mimic prod-like container environment – more confidence that code works as expected Helps with 12 factor app methodology (Dev-prod parity) Stops the saying “well it works on my machine”
  16. Oleg giving talk on this tomorrow in RoomA2 (13:00-13:50) Testcontainers make a variety of different testing easier such as: Data access layer integration tests Application integration tests UI/Acceptance tests Much more via contributed modules Supports JUnit 4/5 and Spok Testcontainers give you the ability to do UI/Acceptance testing in a container. This has great benefits such as: - Fresh instance of a browser - No browser state, plugin variations or browser upgrades - Video recoding of test session or just failed test sessions
  17. What about deployment Moving towards more devops style teams Need to consider this…
  18. The Cloud Native Buildpacks project was initiated by Pivotal and Heroku (creators of the 12 factor app methodology) in January 2018 and joined the Cloud Native Computing Foundation in October 2018. The project aims to unify the buildpack ecosystems with a platform-to-buildpack contract that is well-defined and that incorporates learnings from maintaining production-grade buildpacks for years at both Pivotal and Heroku. Cloud Native Buildpacks embrace modern container standards, such as the OCI image format. They take advantage of the latest capabilities of these standards, such as cross-repository blob mounting and image layer "rebasing" on Docker API v2 registries
  19. Advantages: You can build your application without creating a Dockerfile! Advanced Caching: Paketo buildpacks use built-in caching to improve performance so you can quickly rebuild your application by updating only the layers that have changed. Bill-of-Materials: a built-in software bill of materials (SBOM) support provides insights into the contents of the application image. Minimal Application Image: images contain only what is necessary. Reproducibility: reproduce the same application image digest by re-running the build. Auto-detection: images are built directly from application source. Rebasing: instantly update base images without rebuilding your source code by patching the OS layer of your image
  20. Using the knowledge of the many years of experience with buildpacks, the CloudFoundry buildpack engineering team created the Paketo.io project which is based on former CloudFoundry Buildpacks . Paketo is an implementation of the Cloud Native Buildpack interface specification for a wide variety of languages (e.g. .Net, Go, Node.js, Java, Ruby or PHP). The Paketo Liberty buildpack provides the Open Liberty runtime to a workflow that produces an Open Container Initiative (OCI) image that can run just about anywhere. Advantages: You can build your application without creating a Dockerfile! Advanced Caching: Paketo buildpacks use built-in caching to improve performance so you can quickly rebuild your application by updating only the layers that have changed. Bill-of-Materials: a built-in software bill of materials (SBOM) support provides insights into the contents of the application image. Minimal Application Image: images contain only what is necessary. Reproducibility: reproduce the same application image digest by re-running the build. Auto-detection: images are built directly from application source. Rebasing: instantly update base images without rebuilding your source code by patching the OS layer of your image
  21. A builder is an image that contains all the components necessary to execute a build. A builder is an image that contains three components: a set of buildpacks, which provide your app’s dependencies a stack, which provides the OS layer for your app image the CNB lifecycle(opens in a new tab), which puts everything together to produce your final app image We’re using the base builder in this case Now what? With your OCI image, you can run your application locally with the docker run command. Now run your application: docker run --rm -p 9080:9080 myapp or deploy your application to any Kubernetes-based platform, such as Red Hat OpenShift, by using an Open Liberty operator
  22. Telepresence allows you to swap a pod running in Kubernetes with a service running locally. All requests to the pod in Kubernetes are redirected to the local URL and port. Cloud Native Computing Foundation Sandbox project https://heidloff.net/article/debugging-microservices-kubernetes/ Can help with debugging
  23. Telepresence consists of two core architecture components: the client-side (CLI) telepresence binary and (Kubernetes) cluster-side traffic-manager and traffic-agent. 1 The `telepresence connect` command utilizes the traffic-manager to establish a two-way (proxied) tunnel between your local development machine and the cluster. Now you can access remote K8s Service as if they were running locally. 2 Running `telepresence intercept service-name` triggers the traffic-manager to install a traffic-agent proxy container that runs within the Pods associated with the target Services. This can route remote traffic to your local dev machine for dev and test.