SlideShare a Scribd company logo
Hands-on Cloud-native
Java with
MicroProfile,
Kubernetes and
OpenShift
Jamie L Coleman
Software Engineer/Developer Advocate
Twitter: @Jamie_Lee_C
Email: JLColeman@uk.ibm.com
Contents
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 2
Workshop 03
The modules 04
The Environment 06
Why move to the Cloud? 08
What the Cloud offers 12
Microservices 13
Eclipse MicroProfile 14
Contributors 16
Community 17
Vendors/Implementations 20
MicroProfile Technologies 21
MicroProfile Stack 22
MicroProfile Core Technologies 34
A Full Open Stack 35
Open Liberty Overview 37
Open J9 Overview 41
Containers & Testing 43
Docker 47
Testing with Containers 49
Kubernetes & OpenShift
Kubernetes 53
MicroProfile and Kubernetes 59
OpenShift Overview
Workshop &
Environment
3
Workshop Modules
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 4
8 Modules each between 15 – 25 mins
long.
1. Creating RESTful Web Services
2. Injecting dependencies into a Java
microservices
3. Configuring Java microservices
4. Building fault-tolerant
microservices with the @fallback
annotation
5. Containerizing Microservices
6. Introduction to MicroShed Testing
7. Deploying MicroServices to
Kubernetes
8. Building and deploying a RESTful
web service on OpenShift 4.x
Additional Workshop Modules
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 5
3 Modules each between 15 – 25 mins
long on reactive Java Programming.
1. Creating reactive microservices
using MicroProfile Reactive
Messaging
2. Testing reactive Java microservices
3. Building and deploying Reactive
Java microservices on OpenShift 4.x
Skills Network Labs
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 6
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 7
Skills Network Labs
Why move to the
Cloud and what is
Cloud-Native?
8
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 9
What the Cloud offers
Demand
time
One big server running all the time?
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 10
What the Cloud offers
Demand
time
One big server running all the time?
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 11
What the Cloud offers
Demand
time
One big server running all the time?
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 12
Agile, Microservices,
DevOps & Cloud
+ +C
B
A
+
Microservices
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 13
A microservice is an architectural style that
structures an application as a collection of
loosely coupled services
The benefit of having an application made
up of microservices is that it improves
modularity and make it easier to develop,
test and more resilient to changes
Allows teams to work on individual
services
Enables continuous delivery and
deployment per microservice
Eclipse
MicroProfile
14
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 15
What is MicroProfile?
● Eclipse MicroProfile is an open-source
community specification for Enterprise Java
microservices
● A community of individuals, organizations, and
vendors collaborating within an open source
(Eclipse) project to bring microservices to the
Enterprise Java community
microprofile.io
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 16
MicroProfile
Contributors
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 17
MicroProfile Community
● Over a dozen vendors and Java user groups
● 140 individual contributors
● Over half a dozen independent
implementations
Locations of some
MicroProfile
Contributors
18
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Seattle – USA
Ontario – Canada
Canberra – Australia
Stuttgart – Germany
Rochester – USA
Prague – Czech Rep
Newcastle – UK
Munich – Germany
Paris – France
Hursley – UK
Centurion – South Africa
Boston – USA
Sao Paulo – Brazil
Rio de Janeiro – Brazil
Coimbra – Portugal
Amsterdam – Netherlands
Source: MicroProfile.io
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 19
MicroProfile Community
Video HangoutsBi-Weekly & Quarterly
General community
Meetings
MicroProfile ProjectsGoogle Groups
YouTube Channel
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 20
MicroProfile
Vendors/Implementations
MicroProfile
Technologies
21
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 22
MicroProfile 3.3 Stack
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.4
Fault
Tolerance 2.1
JWT
Propagation
1.1
Health
Check 2.2
Metrics 2.3
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1
Rest Client
1.4
MicroProfile Core
Technologies
23 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
B
@Path("/brews")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class BrewsResource {
@POST
public Response startCoffeeBrew(CoffeeBrew brew) {...)
}
JAX-RS
MicroProfile Core
Technologies
24 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
REST Client
BA
@RegisterRestClient
@Path("/resources/brews")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface BaristaClient {
@POST
public Response startCoffeeBrew(CoffeeBrew brew);
}
MicroProfile Core
Technologies
25 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
CDI
BA
@Path("/orders")
public class OrdersResource {
@Inject
CoffeeShop coffeeShop;
...
}
MicroProfile Core
Technologies
26 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
JSON-B & JSON-P
A B
...
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response startCoffeeBrew(CoffeeBrew brew) {
CoffeeType coffeeType = brew.getType();
...
}
public class CoffeeBrew {
private CoffeeType type;
public CoffeeType getType() {
return type;
}
public void setType(CoffeeType type) {
this.type = type;
}
}
MicroProfile Core
Technologies
27 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Open API
A B
openapi: 3.0.0
info:
title: Deployed APIs
version: 1.0.0
servers:
- url: http://grahams-mbp-2.lan:9081/barista
paths:
/resources/brews:
post:
operationId: startCoffeeBrew
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CoffeeBrew'
responses:
default:
description: default response
components:
schemas:
CoffeeBrew:
type: object
properties:
type:
type: string
enum:
- ESPRESSO
- LATTE
- POUR_OVER
MicroProfile Core
Technologies
28 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
JWT
@POST
@RolesAllowed({ "admin", "coffee-shop" })
public Response startCoffeeBrew(CoffeeBrew brew) {...}
BA
MicroProfile Core
Technologies
29 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Fault
Tolerance
A B
@Retry(retryOn = TimeoutException.class,
maxRetries = 4,
maxDuration = 10,
durationUnit = ChronoUnit.SECONDS)
public void startCoffeeBrew(CoffeeBrew brew) {
Response response = baristaClient.startCoffeeBrew(brew);
...
}
MicroProfile Core
Technologies
30 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Config
A B
@ApplicationScoped
public class Barista {
@Inject
@ConfigProperty(name="default_barista_base_url")
String baristaBaseURL;
...
}
MicroProfile Core
Technologies
31 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Health
A B
{
"checks": [
{
"data": {
"barista service": "available"
},
"name": "CoffeeShopHealth",
"state": "UP"
}
],
"outcome": "UP"
}
@Health
@ApplicationScoped
public class HealthResource implements HealthCheck {
...
public boolean isHealthy() {...}
@Override
public HealthCheckResponse call() {
if (!isHealthy()) {
return HealthCheckResponse.named(...).down().build();
}
return HealthCheckResponse.named(...).up().build();
}
}
MicroProfile Core
Technologies
32 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Metrics
A B
@POST
@Counted(name="order", displayName="Order count",
description="Number of times orders requested.", monotonic=true)
public Response orderCoffee(@Valid @NotNull CoffeeOrder order) {
...
}
MicroProfile Core
Technologies
33 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Open Tracing
A B
@Traced
public void startBrew(CoffeeType coffeeType) {
...
}
JAX-RS methods
are automatically
traced by default
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 34
MicroProfile 3.3 Stack
Reactive
Streams
Operators 1.1
Reactive
Messaging
1.0
GraphQL 1.0
Context
Propagation
1.0
Standalone Projects
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.4
Fault
Tolerance 2.1
JWT
Propagation
1.1
Health
Check 2.2
Metrics 2.3
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1
Rest Client
1.4
A Full Open
Stack
35
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 36
A Full Open Stack
MicroProfile
Open Liberty
OpenJ9
OpenShift
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 37
Open Liberty Overview
Focus on code
Easy to make fast and iterative changes
Easy to write tests
True-to-production testing (as much as possible)
Ready for containers
Not-in-your-way tools and flexibility
Open Liberty Overview
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Developer
Experience: dev
mode
Boosts developer productivity
Immediate feedback for code and config changes
No re-build necessary
mvn liberty:dev
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Developer-oriented Docs
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 40
41
0
0.5
1
1.5
2
2.5
December '18 March '19 April '19 July '19 August '19 September '19 April '20
2018-2020 Progression of OpenLiberty+OpenJ9 startup time (seconds)
42
Open Liberty with OpenJ9: the road to one second startup time
OpenJ9 : Improved Cached feature metadata when no change to server.xml Changed bundle activation to start in parallel
Better AOT code RAS processing Optimized loading of CXF JSON/JSONB provider RAS annotation processing at build time
JMX MBeanServer init Cached annotation information for built-in JAX-RS Providers Cached plugin xml and OSGi metadata
OpenJ9 : GC hints in shared classes cache Reduced class loading during startup
Reduced logging overhead
OpenJ9 : More AOT code in shared classes cache
OpenJ9 : Optimize class verification overhead
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Open Liberty startup time comparison (using OpenJ9 JVM)
43
0
1
2
3
4
5
6
7
8
Open Liberty 20.0.0.4 TomEE 8.0.0-M3-
microprofile
Tomcat 9.0.22 +
OpenWebBeans
2.0.11(CDI) + CXF
3.3.2 (jaxrs)
Wildfly 17.0.1 javaee JBoss 7.2 Glassfish web 5 Payara web 5.192
PingPerf application startup time with OpenJ9 Shared Classes Cache (in seconds)
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 44
Open J9 Overview
Designed from the start to span all the
operating systems needed by IBM products
This JVM can go from small to large
Can handle constrained environments or
memory rich ones
Is used by the largest enterprises on the
planet
If any JVM can be said to be at the heart of
the enterprise – its this one.
45
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Time To Code
To get started visit the following URL in your browser:
ibm.biz/cloud-native-java
Or
https://ide.skillsnetwork.site/cloud-native-java-with-microprofile-kubernetes-and-openshift
Please run the cleanup.sh script from the terminal at the end of each
lab to clean up your environment.
Workshop Part 1:
Fast Iterative
Development
46
Containers &
Testing with Containers
47
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 48
MicroProfile &
Containers
Containers Kubernetes OpenShift
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.4
Fault
Tolerance 2.1
JWT
Propagation
1.1
Health
Check 2.2
Metrics 2.3
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1
Rest Client
1.4
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 49
Containers
build, ship and run any app,
anywhere
docker build -t ol-runtime --no-cache=true .
docker run -d --name rest-app -p 9080:9080 -p
9443:9443 -v <absolute path to
guide>/start/target/liberty/wlp/usr/servers:/servers
ol-runtime
my-app:latest
(app container)
mongo:4.0
(DB container)
Dev/Test env
Production env
integration
tests
end users
my-app:latest
(app container)
mongo:4.0
(DB container)
Testcontainers
• Integration tests that are
easy to setup, write, and run
• Test your apps the same
way they run in production
• Tests are portable to any
compatible implementation:
• Liberty
• Wildfly
• Payara
• TomEE
• etc…
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
MicroShed Testing
• Integration tests that are easy to setup, write,
and run
• Test your apps the same way they run in
production...in Containers
• Can run multiple containers on same network
(e.g. test DB integration)
• http://microshed.org/microshed-testing/
@MicroShedTest
public class MyTest {
// Search for Dockerfile.
// Start app in Container.
// Wait for Container before running tests.
@Container
public static MicroProfileApplication app
= new MicroProfileApplication()
.withAppContextRoot("/myservice")
;
// Inject JAX-RS REST Client
@Inject
public static MyService mySvc;
// A test method like any other
@Test
public void testMyService() {
...
}
}
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Workshop Part 2:
Containers &
Testing with Containers
52
Deploying to the Cloud
with Kubernetes &
OpenShift
53
Containers are not enough!
Regain control with Kubernetes
Organize and govern the container chaos
Kubernetes
Intelligent
Scheduling
Self-HealingHorizontal
Scaling
Automated
Rollouts &
Rollbacks
Secret &
Configuration
Management
Service Discovery &
Load Balancing
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 56
Kubernetes
MicroProfile with Kubernetes
57 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Config
A B
env:
- name: GREETING
valueFrom:
configMapKeyRef:
name: greeting-
config
key: message
kubectl create configmap greeting-config --from-literal
message=Greetings...
@Inject
@ConfigProperty(name =
"GREETING")
private String greeting;
MicroProfile with Kubernetes
58 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Health
A B
readinessProbe:
httpGet:
path: /health
port: 9080
initialDelaySeconds:
15
periodSeconds: 5
failureThreshold: 1
59
Why should developers care about
DevOps?
• Enables the delivery of innovation more often
• Improves quality
• Reduces toil to allow developers to focus on code
• Improves confidence
• Improves time to production
• Improves communication and collaboration
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
OpenShift is a Kubernetes-based platform
with added functions. It streamlines the
DevOps process by providing an intuitive
development pipeline. It also provides
integration with multiple tools to make the
deployment and management of cloud
applications easier.
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
IDE integration - With OpenShift's
integration with Eclipse, JBoss
Developer Studio, and Visual
Studio developers can stay entirely
within the IDE that they prefer when
working with OpenShift.
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
63
OpenShift and the
Hybrid Model
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Workshop Part 3:
Deploying To The Cloud
With Kubernetes &
OpenShift
64
65
Recap
MicroProfile
• No vendor lock in
• Full set of cloud ready APIs
• Config
• Health
• Metrics
• Fault Tolerance
• …
• Big community
Open Liberty
• Modular Application server
• Light weight
• Easy to configure
• Jakarta EE 8 certified
• Production ready
• Official Docker images available
• Optimized for development
All Open Source!
Open J9
• Low memory footprint
• Fast startup time
• High application throughput
• Smoother ramp-up in the cloud
• Easy to use Docker images
OpenShift
• Works on all clouds
• Uses Containers for easy portability
• Can run on Private and Public
Clouds
• Integration with IDE’s to make
developers lives easier.
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Thank you
66
Jamie Lee Coleman
Software Engineer/Advocate Team Lead
Email: jlcoleman@uk.ibm.com
Twitter: @Jamie_Lee_C
GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
Ad

More Related Content

What's hot (20)

Build12 factorappusingmp
Build12 factorappusingmpBuild12 factorappusingmp
Build12 factorappusingmp
Emily Jiang
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
Paul Czarkowski
 
Using Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gameUsing Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform game
Patrick Chanezon
 
Queens release updates
Queens release updatesQueens release updates
Queens release updates
Vietnam Open Infrastructure User Group
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Daniel Krook
 
C219 - Docker and PureApplication Patterns: Better Together
C219 - Docker and PureApplication Patterns: Better TogetherC219 - Docker and PureApplication Patterns: Better Together
C219 - Docker and PureApplication Patterns: Better Together
Hendrik van Run
 
DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for Kubernetes
Ambassador Labs
 
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
VMware Tanzu
 
Docker OpenStack Cloud Foundry
Docker OpenStack Cloud FoundryDocker OpenStack Cloud Foundry
Docker OpenStack Cloud Foundry
Animesh Singh
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native Microservices
Jakarta_EE
 
Docker EE 2.0 Choice, Security & Agility
Docker EE 2.0Choice, Security & AgilityDocker EE 2.0Choice, Security & Agility
Docker EE 2.0 Choice, Security & Agility
Ashnikbiz
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016
Stuart Charlton
 
Getting Groovy with JHipster and Micronaut
Getting Groovy with JHipster and MicronautGetting Groovy with JHipster and Micronaut
Getting Groovy with JHipster and Micronaut
Zachary Klein
 
Spring - CDI Interop
Spring - CDI InteropSpring - CDI Interop
Spring - CDI Interop
Ray Ploski
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basics
Sourabh Saxena
 
Journey to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshiftJourney to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshift
Yusuf Hadiwinata Sutandar
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Kalkey
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Toni Jara
 
Cloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source TriumvirateCloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source Triumvirate
Animesh Singh
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
Paul Czarkowski
 
Build12 factorappusingmp
Build12 factorappusingmpBuild12 factorappusingmp
Build12 factorappusingmp
Emily Jiang
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
Paul Czarkowski
 
Using Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gameUsing Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform game
Patrick Chanezon
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Daniel Krook
 
C219 - Docker and PureApplication Patterns: Better Together
C219 - Docker and PureApplication Patterns: Better TogetherC219 - Docker and PureApplication Patterns: Better Together
C219 - Docker and PureApplication Patterns: Better Together
Hendrik van Run
 
DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for Kubernetes
Ambassador Labs
 
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
VMware Tanzu
 
Docker OpenStack Cloud Foundry
Docker OpenStack Cloud FoundryDocker OpenStack Cloud Foundry
Docker OpenStack Cloud Foundry
Animesh Singh
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native Microservices
Jakarta_EE
 
Docker EE 2.0 Choice, Security & Agility
Docker EE 2.0Choice, Security & AgilityDocker EE 2.0Choice, Security & Agility
Docker EE 2.0 Choice, Security & Agility
Ashnikbiz
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016
Stuart Charlton
 
Getting Groovy with JHipster and Micronaut
Getting Groovy with JHipster and MicronautGetting Groovy with JHipster and Micronaut
Getting Groovy with JHipster and Micronaut
Zachary Klein
 
Spring - CDI Interop
Spring - CDI InteropSpring - CDI Interop
Spring - CDI Interop
Ray Ploski
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basics
Sourabh Saxena
 
Journey to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshiftJourney to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshift
Yusuf Hadiwinata Sutandar
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Kalkey
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Toni Jara
 
Cloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source TriumvirateCloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source Triumvirate
Animesh Singh
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
Paul Czarkowski
 

Similar to Cloud native java workshop (20)

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
 
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
 
Accelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayAccelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is Today
John Duimovich
 
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
andrejusb
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?
Steve Poole
 
DevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast Track
DevOps.com
 
Microsoft, java and you!
Microsoft, java and you!Microsoft, java and you!
Microsoft, java and you!
George Adams
 
GIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdfGIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdf
RichHagarty
 
IBM JavaOne Community Keynote 2015: Cask Strength Java Aged 20 years
IBM JavaOne Community Keynote 2015: Cask Strength Java  Aged 20 yearsIBM JavaOne Community Keynote 2015: Cask Strength Java  Aged 20 years
IBM JavaOne Community Keynote 2015: Cask Strength Java Aged 20 years
John Duimovich
 
Distributed tracing with service meshes and tracing spans across polyglot Mic...
Distributed tracing with service meshes and tracing spans across polyglot Mic...Distributed tracing with service meshes and tracing spans across polyglot Mic...
Distributed tracing with service meshes and tracing spans across polyglot Mic...
Nebulaworks
 
How to deploy machine learning models into production
How to deploy machine learning models into productionHow to deploy machine learning models into production
How to deploy machine learning models into production
DataWorks Summit
 
IBM Bluemix saves the game
IBM Bluemix saves the gameIBM Bluemix saves the game
IBM Bluemix saves the game
gjuljo
 
JavaOne 2015 Keynote Presentation
JavaOne 2015 Keynote PresentationJavaOne 2015 Keynote Presentation
JavaOne 2015 Keynote Presentation
ibmwebspheresoftware
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
Emily Jiang
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
Emily Jiang
 
IBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONEIBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONE
Filipe Miranda
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Sanjeev Sharma
 
Kubernetes for Developers - 7 lessons learned from 7 data centers in 7 months...
Kubernetes for Developers - 7 lessons learned from 7 data centers in 7 months...Kubernetes for Developers - 7 lessons learned from 7 data centers in 7 months...
Kubernetes for Developers - 7 lessons learned from 7 data centers in 7 months...
Michael Tougeron
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2
 
Understanding Microservices
Understanding MicroservicesUnderstanding Microservices
Understanding Microservices
vguhesan
 
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
 
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
 
Accelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayAccelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is Today
John Duimovich
 
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
End-to-End Cloud: Oracle Java Cloud, Oracle Mobile Cloud Service, Oracle MAF,...
andrejusb
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?
Steve Poole
 
DevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast Track
DevOps.com
 
Microsoft, java and you!
Microsoft, java and you!Microsoft, java and you!
Microsoft, java and you!
George Adams
 
GIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdfGIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdf
RichHagarty
 
IBM JavaOne Community Keynote 2015: Cask Strength Java Aged 20 years
IBM JavaOne Community Keynote 2015: Cask Strength Java  Aged 20 yearsIBM JavaOne Community Keynote 2015: Cask Strength Java  Aged 20 years
IBM JavaOne Community Keynote 2015: Cask Strength Java Aged 20 years
John Duimovich
 
Distributed tracing with service meshes and tracing spans across polyglot Mic...
Distributed tracing with service meshes and tracing spans across polyglot Mic...Distributed tracing with service meshes and tracing spans across polyglot Mic...
Distributed tracing with service meshes and tracing spans across polyglot Mic...
Nebulaworks
 
How to deploy machine learning models into production
How to deploy machine learning models into productionHow to deploy machine learning models into production
How to deploy machine learning models into production
DataWorks Summit
 
IBM Bluemix saves the game
IBM Bluemix saves the gameIBM Bluemix saves the game
IBM Bluemix saves the game
gjuljo
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
Emily Jiang
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
Emily Jiang
 
IBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONEIBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONE
Filipe Miranda
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Sanjeev Sharma
 
Kubernetes for Developers - 7 lessons learned from 7 data centers in 7 months...
Kubernetes for Developers - 7 lessons learned from 7 data centers in 7 months...Kubernetes for Developers - 7 lessons learned from 7 data centers in 7 months...
Kubernetes for Developers - 7 lessons learned from 7 data centers in 7 months...
Michael Tougeron
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2
 
Understanding Microservices
Understanding MicroservicesUnderstanding Microservices
Understanding Microservices
vguhesan
 
Ad

More from Jamie Coleman (18)

Open Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentOpen Source Licence to Kill in Software Development
Open Source Licence to Kill in Software Development
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
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
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
 
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
 
Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019
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
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
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
 
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
 
Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019
Jamie Coleman
 
Ad

Recently uploaded (20)

Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
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
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
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
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
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
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
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
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
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
 
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
 
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
 
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.
 
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
 
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
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
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
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
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
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
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
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
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
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
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
 
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
 
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
 
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.
 
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
 
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
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 

Cloud native java workshop

  • 1. Hands-on Cloud-native Java with MicroProfile, Kubernetes and OpenShift Jamie L Coleman Software Engineer/Developer Advocate Twitter: @Jamie_Lee_C Email: [email protected]
  • 2. Contents GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 2 Workshop 03 The modules 04 The Environment 06 Why move to the Cloud? 08 What the Cloud offers 12 Microservices 13 Eclipse MicroProfile 14 Contributors 16 Community 17 Vendors/Implementations 20 MicroProfile Technologies 21 MicroProfile Stack 22 MicroProfile Core Technologies 34 A Full Open Stack 35 Open Liberty Overview 37 Open J9 Overview 41 Containers & Testing 43 Docker 47 Testing with Containers 49 Kubernetes & OpenShift Kubernetes 53 MicroProfile and Kubernetes 59 OpenShift Overview
  • 4. Workshop Modules GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 4 8 Modules each between 15 – 25 mins long. 1. Creating RESTful Web Services 2. Injecting dependencies into a Java microservices 3. Configuring Java microservices 4. Building fault-tolerant microservices with the @fallback annotation 5. Containerizing Microservices 6. Introduction to MicroShed Testing 7. Deploying MicroServices to Kubernetes 8. Building and deploying a RESTful web service on OpenShift 4.x
  • 5. Additional Workshop Modules GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 5 3 Modules each between 15 – 25 mins long on reactive Java Programming. 1. Creating reactive microservices using MicroProfile Reactive Messaging 2. Testing reactive Java microservices 3. Building and deploying Reactive Java microservices on OpenShift 4.x
  • 6. Skills Network Labs GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 6
  • 7. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 7 Skills Network Labs
  • 8. Why move to the Cloud and what is Cloud-Native? 8
  • 9. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 9 What the Cloud offers Demand time One big server running all the time?
  • 10. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 10 What the Cloud offers Demand time One big server running all the time?
  • 11. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 11 What the Cloud offers Demand time One big server running all the time?
  • 12. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 12 Agile, Microservices, DevOps & Cloud + +C B A +
  • 13. Microservices GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 13 A microservice is an architectural style that structures an application as a collection of loosely coupled services The benefit of having an application made up of microservices is that it improves modularity and make it easier to develop, test and more resilient to changes Allows teams to work on individual services Enables continuous delivery and deployment per microservice
  • 15. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 15 What is MicroProfile? ● Eclipse MicroProfile is an open-source community specification for Enterprise Java microservices ● A community of individuals, organizations, and vendors collaborating within an open source (Eclipse) project to bring microservices to the Enterprise Java community microprofile.io
  • 16. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 16 MicroProfile Contributors
  • 17. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 17 MicroProfile Community ● Over a dozen vendors and Java user groups ● 140 individual contributors ● Over half a dozen independent implementations
  • 18. Locations of some MicroProfile Contributors 18 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Seattle – USA Ontario – Canada Canberra – Australia Stuttgart – Germany Rochester – USA Prague – Czech Rep Newcastle – UK Munich – Germany Paris – France Hursley – UK Centurion – South Africa Boston – USA Sao Paulo – Brazil Rio de Janeiro – Brazil Coimbra – Portugal Amsterdam – Netherlands Source: MicroProfile.io
  • 19. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 19 MicroProfile Community Video HangoutsBi-Weekly & Quarterly General community Meetings MicroProfile ProjectsGoogle Groups YouTube Channel
  • 20. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 20 MicroProfile Vendors/Implementations
  • 22. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 22 MicroProfile 3.3 Stack JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.4 Fault Tolerance 2.1 JWT Propagation 1.1 Health Check 2.2 Metrics 2.3 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.4
  • 23. MicroProfile Core Technologies 23 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation B @Path("/brews") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class BrewsResource { @POST public Response startCoffeeBrew(CoffeeBrew brew) {...) } JAX-RS
  • 24. MicroProfile Core Technologies 24 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation REST Client BA @RegisterRestClient @Path("/resources/brews") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public interface BaristaClient { @POST public Response startCoffeeBrew(CoffeeBrew brew); }
  • 25. MicroProfile Core Technologies 25 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation CDI BA @Path("/orders") public class OrdersResource { @Inject CoffeeShop coffeeShop; ... }
  • 26. MicroProfile Core Technologies 26 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation JSON-B & JSON-P A B ... @POST @Consumes(MediaType.APPLICATION_JSON) public Response startCoffeeBrew(CoffeeBrew brew) { CoffeeType coffeeType = brew.getType(); ... } public class CoffeeBrew { private CoffeeType type; public CoffeeType getType() { return type; } public void setType(CoffeeType type) { this.type = type; } }
  • 27. MicroProfile Core Technologies 27 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Open API A B openapi: 3.0.0 info: title: Deployed APIs version: 1.0.0 servers: - url: http://grahams-mbp-2.lan:9081/barista paths: /resources/brews: post: operationId: startCoffeeBrew requestBody: content: application/json: schema: $ref: '#/components/schemas/CoffeeBrew' responses: default: description: default response components: schemas: CoffeeBrew: type: object properties: type: type: string enum: - ESPRESSO - LATTE - POUR_OVER
  • 28. MicroProfile Core Technologies 28 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation JWT @POST @RolesAllowed({ "admin", "coffee-shop" }) public Response startCoffeeBrew(CoffeeBrew brew) {...} BA
  • 29. MicroProfile Core Technologies 29 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Fault Tolerance A B @Retry(retryOn = TimeoutException.class, maxRetries = 4, maxDuration = 10, durationUnit = ChronoUnit.SECONDS) public void startCoffeeBrew(CoffeeBrew brew) { Response response = baristaClient.startCoffeeBrew(brew); ... }
  • 30. MicroProfile Core Technologies 30 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Config A B @ApplicationScoped public class Barista { @Inject @ConfigProperty(name="default_barista_base_url") String baristaBaseURL; ... }
  • 31. MicroProfile Core Technologies 31 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Health A B { "checks": [ { "data": { "barista service": "available" }, "name": "CoffeeShopHealth", "state": "UP" } ], "outcome": "UP" } @Health @ApplicationScoped public class HealthResource implements HealthCheck { ... public boolean isHealthy() {...} @Override public HealthCheckResponse call() { if (!isHealthy()) { return HealthCheckResponse.named(...).down().build(); } return HealthCheckResponse.named(...).up().build(); } }
  • 32. MicroProfile Core Technologies 32 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Metrics A B @POST @Counted(name="order", displayName="Order count", description="Number of times orders requested.", monotonic=true) public Response orderCoffee(@Valid @NotNull CoffeeOrder order) { ... }
  • 33. MicroProfile Core Technologies 33 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Open Tracing A B @Traced public void startBrew(CoffeeType coffeeType) { ... } JAX-RS methods are automatically traced by default
  • 34. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 34 MicroProfile 3.3 Stack Reactive Streams Operators 1.1 Reactive Messaging 1.0 GraphQL 1.0 Context Propagation 1.0 Standalone Projects JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.4 Fault Tolerance 2.1 JWT Propagation 1.1 Health Check 2.2 Metrics 2.3 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.4
  • 36. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 36 A Full Open Stack MicroProfile Open Liberty OpenJ9 OpenShift
  • 37. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 37 Open Liberty Overview
  • 38. Focus on code Easy to make fast and iterative changes Easy to write tests True-to-production testing (as much as possible) Ready for containers Not-in-your-way tools and flexibility Open Liberty Overview GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 39. Developer Experience: dev mode Boosts developer productivity Immediate feedback for code and config changes No re-build necessary mvn liberty:dev GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 40. Developer-oriented Docs GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 40
  • 41. 41
  • 42. 0 0.5 1 1.5 2 2.5 December '18 March '19 April '19 July '19 August '19 September '19 April '20 2018-2020 Progression of OpenLiberty+OpenJ9 startup time (seconds) 42 Open Liberty with OpenJ9: the road to one second startup time OpenJ9 : Improved Cached feature metadata when no change to server.xml Changed bundle activation to start in parallel Better AOT code RAS processing Optimized loading of CXF JSON/JSONB provider RAS annotation processing at build time JMX MBeanServer init Cached annotation information for built-in JAX-RS Providers Cached plugin xml and OSGi metadata OpenJ9 : GC hints in shared classes cache Reduced class loading during startup Reduced logging overhead OpenJ9 : More AOT code in shared classes cache OpenJ9 : Optimize class verification overhead GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 43. Open Liberty startup time comparison (using OpenJ9 JVM) 43 0 1 2 3 4 5 6 7 8 Open Liberty 20.0.0.4 TomEE 8.0.0-M3- microprofile Tomcat 9.0.22 + OpenWebBeans 2.0.11(CDI) + CXF 3.3.2 (jaxrs) Wildfly 17.0.1 javaee JBoss 7.2 Glassfish web 5 Payara web 5.192 PingPerf application startup time with OpenJ9 Shared Classes Cache (in seconds) GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 44. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 44 Open J9 Overview Designed from the start to span all the operating systems needed by IBM products This JVM can go from small to large Can handle constrained environments or memory rich ones Is used by the largest enterprises on the planet If any JVM can be said to be at the heart of the enterprise – its this one.
  • 45. 45 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Time To Code To get started visit the following URL in your browser: ibm.biz/cloud-native-java Or https://ide.skillsnetwork.site/cloud-native-java-with-microprofile-kubernetes-and-openshift Please run the cleanup.sh script from the terminal at the end of each lab to clean up your environment.
  • 46. Workshop Part 1: Fast Iterative Development 46
  • 47. Containers & Testing with Containers 47
  • 48. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 48 MicroProfile & Containers Containers Kubernetes OpenShift JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.4 Fault Tolerance 2.1 JWT Propagation 1.1 Health Check 2.2 Metrics 2.3 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.4
  • 49. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 49 Containers build, ship and run any app, anywhere docker build -t ol-runtime --no-cache=true . docker run -d --name rest-app -p 9080:9080 -p 9443:9443 -v <absolute path to guide>/start/target/liberty/wlp/usr/servers:/servers ol-runtime
  • 50. my-app:latest (app container) mongo:4.0 (DB container) Dev/Test env Production env integration tests end users my-app:latest (app container) mongo:4.0 (DB container) Testcontainers • Integration tests that are easy to setup, write, and run • Test your apps the same way they run in production • Tests are portable to any compatible implementation: • Liberty • Wildfly • Payara • TomEE • etc… GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 51. MicroShed Testing • Integration tests that are easy to setup, write, and run • Test your apps the same way they run in production...in Containers • Can run multiple containers on same network (e.g. test DB integration) • http://microshed.org/microshed-testing/ @MicroShedTest public class MyTest { // Search for Dockerfile. // Start app in Container. // Wait for Container before running tests. @Container public static MicroProfileApplication app = new MicroProfileApplication() .withAppContextRoot("/myservice") ; // Inject JAX-RS REST Client @Inject public static MyService mySvc; // A test method like any other @Test public void testMyService() { ... } } GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 52. Workshop Part 2: Containers & Testing with Containers 52
  • 53. Deploying to the Cloud with Kubernetes & OpenShift 53
  • 55. Regain control with Kubernetes Organize and govern the container chaos Kubernetes Intelligent Scheduling Self-HealingHorizontal Scaling Automated Rollouts & Rollbacks Secret & Configuration Management Service Discovery & Load Balancing
  • 56. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation 56 Kubernetes
  • 57. MicroProfile with Kubernetes 57 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Config A B env: - name: GREETING valueFrom: configMapKeyRef: name: greeting- config key: message kubectl create configmap greeting-config --from-literal message=Greetings... @Inject @ConfigProperty(name = "GREETING") private String greeting;
  • 58. MicroProfile with Kubernetes 58 GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation Health A B readinessProbe: httpGet: path: /health port: 9080 initialDelaySeconds: 15 periodSeconds: 5 failureThreshold: 1
  • 59. 59
  • 60. Why should developers care about DevOps? • Enables the delivery of innovation more often • Improves quality • Reduces toil to allow developers to focus on code • Improves confidence • Improves time to production • Improves communication and collaboration GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 61. OpenShift is a Kubernetes-based platform with added functions. It streamlines the DevOps process by providing an intuitive development pipeline. It also provides integration with multiple tools to make the deployment and management of cloud applications easier. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 62. IDE integration - With OpenShift's integration with Eclipse, JBoss Developer Studio, and Visual Studio developers can stay entirely within the IDE that they prefer when working with OpenShift. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 63. 63 OpenShift and the Hybrid Model GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 64. Workshop Part 3: Deploying To The Cloud With Kubernetes & OpenShift 64
  • 65. 65 Recap MicroProfile • No vendor lock in • Full set of cloud ready APIs • Config • Health • Metrics • Fault Tolerance • … • Big community Open Liberty • Modular Application server • Light weight • Easy to configure • Jakarta EE 8 certified • Production ready • Official Docker images available • Optimized for development All Open Source! Open J9 • Low memory footprint • Fast startup time • High application throughput • Smoother ramp-up in the cloud • Easy to use Docker images OpenShift • Works on all clouds • Uses Containers for easy portability • Can run on Private and Public Clouds • Integration with IDE’s to make developers lives easier. GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation
  • 66. Thank you 66 Jamie Lee Coleman Software Engineer/Advocate Team Lead Email: [email protected] Twitter: @Jamie_Lee_C GIDS Java / Sept 9th, 2020 / © 2020 IBM Corporation

Editor's Notes

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