SlideShare a Scribd company logo
Spring Boot loves k8s
September 2–3, 2020
springone.io
#session-spring-boot-loves-k8s on Slack
1
Stéphane Nicoll @snicoll
Brian Clozel @bclozel
Safe Harbor Statement
The following is intended to outline the general direction of VMware's offerings. It is intended for
information purposes only and may not be incorporated into any contract. Any information regarding
pre-release of VMware offerings, future updates or other planned modifications is subject to ongoing
evaluation by VMware and is subject to change. This information is provided without warranty or any
kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and
should not be relied upon in making purchasing decisions regarding VMware's offerings. These
purchasing decisions should only be based on features currently available. The development, release,
and timing of any features or functionality described for VMware's offerings in this presentation remain
at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this
presentation.
2
k8s implementation details
Distributed systems best practices
Natural deployment to k8s
Agenda
Showcasing Spring Boot 2.3 features during a live coding session
● The “Scribe” application
● Efficient Container images
● Liveness and Readiness
● Graceful Shutdown
● Next in Spring Boot 2.4+
6
Markdown editor with spell check
7
Markdown editor with spell check
7
Markdown editor with spell check
7
Markdown editor with spell check
7
A distributed system!
8
Scribe MarkdownConverter
● Web UI
● Spell check
● Calls Converter +
Fallback
● HTTP endpoint
● Markdown to
HTML
Efficient Container images
Very Basic Dockerfile for Java apps
10
FROM openjdk:8-jre-alpine
WORKDIR application
ARG JAR_FILE=scribe/target/scribe-*.jar
COPY ${JAR_FILE} application.jar
ENTRYPOINT ["java","-jar","application.jar"]
Layers in Container images
11
FROM … [FROM CACHE]
COPY … [FROM CACHE]
COPY … [REBUILDING]
RUN …
Layers represent changes/intermediate images (like git commits)
When rebuilding an image, layers
can be cached and reused if their
content did not change.
Optimizing Container images
12
FROM … [FROM CACHE]
COPY application.jar [REBUILDING]
Regrouping resources with similar lifecycle will improve
image build time and storage efficiency.
In our current Dockerfile, the entire
layer needs to be rebuilt for any
change in the application
https://github.com/wagoodman/dive
13
https://github.com/wagoodman/dive
13
14
Anatomy of a Spring Boot Jar
6
.
├── BOOT-INF
│   ├── classes
│   │   ├── application.properties
│   │   ├── io/spring/sample/scribe
│   │   │  ├── EditorController.class
│   │   │   ├── ScribeApplication.class
│   │   │   ├── …
│   └── lib
│   ├── bulma-0.9.0.jar
│   ├── jackson-databind-2.11.2.jar
│   ├── spring-boot-2.3.3.RELEASE.jar
14
Anatomy of a Spring Boot Jar
6
│   │   │   ├── ScribeApplication.class
│   │   │   ├── …
│   └── lib
│   ├── bulma-0.9.0.jar
│   ├── jackson-databind-2.11.2.jar
│   ├── spring-boot-2.3.3.RELEASE.jar
│   ├── …
├── META-INF
│   ├── MANIFEST.MF
│   └── spring-configuration-metadata.json
└── org/springframework/boot/loader
├── ClassPathIndexFile.class
├── JarLauncher.class
├── …
Layered container images
15
FROM …
COPY --from=builder source/snapshot-dependencies/ ./
COPY --from=builder source/spring-boot-loader/ ./
COPY --from=builder source/dependencies/ ./
Spring Boot can build efficient container images.
Developers can customize
the layer arrangement and
reorder, add their own…
Using the Maven/Gradle
build plugins.
COPY --from=builder source/application/ ./
Spring Boot + Buildpacks
No Dockerfile required!
Build locally with the CLI:
16
./mvnw spring-boot:build-image
./gradlew bootBuildImage
Also, delegate to your company’s builder instance in your build pipeline.
Cloud Native Buildpacks
With buildpacks.io, you can delegate container image building for:
• Balanced control between app devs and platform operators
• Security and compliance requirements handled in one place
• Easier maintenance/upgrades
17
What about other solutions?
Buildpacks, Dockerfiles, Jib, s2i, ko…
They have different approaches and features,
see https://buildpacks.io/features/
Choose what fits best for your team!
18
Next: Spring to image
Later today, check out the “Spring to image” session with Ben Hale.
https://springone.io/2020/sessions/spring-to-image
This session will cover Spring Boot build plugins, the pack CLI, the kpack
Kubernetes service and more!
19
Liveness and Readiness
20
Liveness and Readiness
1. New concepts supported in Spring Boot core.
2. Complement the existing application Health support in Actuator.
3.Empower developers with ApplicationAvailability.
21
Liveness and Readiness states
Liveness
“CORRECT” if the internal state of
the app is fine. External
dependencies or the service
itself might not respond
correctly still.
“BROKEN” if the internal state of
the application is broken and
restarting is the only way to fix
it.
22
Readiness
“ACCEPTING_TRAFFIC” is a way
to tell load balancers that the
app is ready to serve requests.
The app is “REFUSING_TRAFFIC”
if it considers that its load is too
high, or depending on its
lifecycle stage (starting up,
shutting down).
Liveness and Readiness Probes
Liveness and Readiness states are available as health groups.
Enabled automatically on k8s, or with the config property:
23
https://example.org/actuator/health/liveness
https://example.org/actuator/health/readiness
Probes are available here and in sync with the application lifecycle:
management.endpoint.health.probes.enabled=true
Probes as Health Groups
Liveness and readiness probes are using the Health Groups feature.
You can configure additional checks to a probe:
24
management.endpoint.health.group.readiness.include=readinessState,customCheck
⚠ You should be careful about checking for external state in probes.
ApplicationAvailability
25
@Component
public class LocalCacheVerifier {
private final ApplicationEventPublisher eventPublisher;
public void checkLocalCache() {
try { //...
} catch (CacheCompletelyBrokenException ex) {
AvailabilityChangeEvent.publish(this.eventPublisher, ex, LivenessState.BROKEN);
}
}
} // see more in reference docs
Graceful Shutdown
26
Shutting down app with active requests
27
Scribe
MarkdownConverter
MarkdownConverter
MarkdownConverter
HTTP POST /convert
1. Processing…
Shutting down app with active requests
27
Scribe
MarkdownConverter
MarkdownConverter
MarkdownConverter
HTTP POST /convert
1. Processing…
2. Shutdown!
Graceful Shutdown
28
Scribe
MarkdownConverter
HTTP POST /convert
1. Processing…
MarkdownConverter
MarkdownConverter
Graceful Shutdown
28
Scribe
MarkdownConverter
HTTP POST /convert
1. Processing…
2. Stop accepting
MarkdownConverter
MarkdownConverter
Graceful Shutdown
28
Scribe
MarkdownConverter
HTTP POST /convert
1. Processing…
3. Done
2. Stop accepting
MarkdownConverter
MarkdownConverter
Graceful Shutdown
28
Scribe
MarkdownConverter
HTTP POST /convert
1. Processing…
3. Done
2. Stop accepting
MarkdownConverter
MarkdownConverter
4.Shutdown!
Configuring Graceful Shutdown
Enabling Graceful Shutdown and configuring the grace period:
29
server.shutdown=graceful
spring.lifecycle.timeout-per-shutdown-phase=20s
Next in Spring Boot 2.4+
30
Config file processing
Volume mounted configuration trees, multi-document properties files,
profile groups, etc. See config file processing blog post.
31
spring.config.activate.on-cloud-platform=kubernetes
spring.config.import=configtree:/etc/config
spring.config.activate.on-cloud-platform=kubernetes
spring.config.import=configtree:/etc/config
spring.config.activate.on-cloud-platform=kubernetes
spring.config.import=configtree:/etc/config
spring.config.activate.on-cloud-platform=kubernetes
spring.config.import=configtree:/etc/config
spring.config.activate.on-cloud-platform=kubernetes
spring.config.import=configtree:/etc/config
etc/
+- config/
+- my/
| +- application
+- test
Graceful shutdown improvements
The team is considering adding a shutdown delay option because most
platforms still route traffic to while routing state is converging.
Currently you can use a PreStop hook to delay the shutdown sequence.
32
Layered JARs enabled by default
As of 2.4.0, Spring Boot JARs will ship with the layers.idx by default.
Useful metadata for tools in your CI/CD pipeline.
33
Stay Connected.
Q&A #session-spring-boot-loves-k8s on Slack
“Spring to Image” session with Ben Hale
Slides and code:
https://springone.io/2020/sessions/spring-boot-loves-k8s
https://github.com/snicoll/spring-boot-loves-k8s
#springone@s1p
Ad

More Related Content

What's hot (20)

The Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native ApplicationsThe Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native Applications
VMware Tanzu
 
What’s New in Spring Data MongoDB
What’s New in Spring Data MongoDBWhat’s New in Spring Data MongoDB
What’s New in Spring Data MongoDB
VMware Tanzu
 
State of Steeltoe 2020
State of Steeltoe 2020State of Steeltoe 2020
State of Steeltoe 2020
VMware Tanzu
 
What Is Spring?
What Is Spring?What Is Spring?
What Is Spring?
VMware Tanzu
 
Developers Are Users, Too
Developers Are Users, TooDevelopers Are Users, Too
Developers Are Users, Too
VMware Tanzu
 
Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!
VMware Tanzu
 
Spring: Your Next Java Micro-Framework
Spring: Your Next Java Micro-FrameworkSpring: Your Next Java Micro-Framework
Spring: Your Next Java Micro-Framework
VMware Tanzu
 
Not Just Initializing
Not Just InitializingNot Just Initializing
Not Just Initializing
VMware Tanzu
 
Accelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at ScaleAccelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at Scale
Asir Selvasingh
 
Fundamental Spring Boot: Keep it Simple, Get it Right, Be Productive and Have...
Fundamental Spring Boot: Keep it Simple, Get it Right, Be Productive and Have...Fundamental Spring Boot: Keep it Simple, Get it Right, Be Productive and Have...
Fundamental Spring Boot: Keep it Simple, Get it Right, Be Productive and Have...
VMware Tanzu
 
Spring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the ObviousSpring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the Obvious
VMware Tanzu
 
PKS: The What and How of Enterprise-Grade Kubernetes
PKS: The What and How of Enterprise-Grade KubernetesPKS: The What and How of Enterprise-Grade Kubernetes
PKS: The What and How of Enterprise-Grade Kubernetes
VMware Tanzu
 
Bulletproof Microservices with Spring and Kubernetes
Bulletproof Microservices with Spring and KubernetesBulletproof Microservices with Spring and Kubernetes
Bulletproof Microservices with Spring and Kubernetes
VMware Tanzu
 
DevOps KPIs as a Service: Daimler’s Solution
DevOps KPIs as a Service: Daimler’s SolutionDevOps KPIs as a Service: Daimler’s Solution
DevOps KPIs as a Service: Daimler’s Solution
VMware Tanzu
 
Next-Generation Cloud Native Apps with Spring Cloud and Kubernetes
Next-Generation Cloud Native Apps with Spring Cloud and KubernetesNext-Generation Cloud Native Apps with Spring Cloud and Kubernetes
Next-Generation Cloud Native Apps with Spring Cloud and Kubernetes
VMware Tanzu
 
Spring to Image
Spring to ImageSpring to Image
Spring to Image
VMware Tanzu
 
From Monolith to K8s - Spring One 2020
From Monolith to K8s - Spring One 2020From Monolith to K8s - Spring One 2020
From Monolith to K8s - Spring One 2020
Mauricio (Salaboy) Salatino
 
Spring Tools 4: Bootiful Spring Tooling for the Masses
Spring Tools 4: Bootiful Spring Tooling for the MassesSpring Tools 4: Bootiful Spring Tooling for the Masses
Spring Tools 4: Bootiful Spring Tooling for the Masses
VMware Tanzu
 
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
VMware Tanzu
 
VMware Tanzu Introduction- June 11, 2020
VMware Tanzu Introduction- June 11, 2020VMware Tanzu Introduction- June 11, 2020
VMware Tanzu Introduction- June 11, 2020
VMware Tanzu
 
The Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native ApplicationsThe Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native Applications
VMware Tanzu
 
What’s New in Spring Data MongoDB
What’s New in Spring Data MongoDBWhat’s New in Spring Data MongoDB
What’s New in Spring Data MongoDB
VMware Tanzu
 
State of Steeltoe 2020
State of Steeltoe 2020State of Steeltoe 2020
State of Steeltoe 2020
VMware Tanzu
 
Developers Are Users, Too
Developers Are Users, TooDevelopers Are Users, Too
Developers Are Users, Too
VMware Tanzu
 
Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!
VMware Tanzu
 
Spring: Your Next Java Micro-Framework
Spring: Your Next Java Micro-FrameworkSpring: Your Next Java Micro-Framework
Spring: Your Next Java Micro-Framework
VMware Tanzu
 
Not Just Initializing
Not Just InitializingNot Just Initializing
Not Just Initializing
VMware Tanzu
 
Accelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at ScaleAccelerate Spring Apps to Cloud at Scale
Accelerate Spring Apps to Cloud at Scale
Asir Selvasingh
 
Fundamental Spring Boot: Keep it Simple, Get it Right, Be Productive and Have...
Fundamental Spring Boot: Keep it Simple, Get it Right, Be Productive and Have...Fundamental Spring Boot: Keep it Simple, Get it Right, Be Productive and Have...
Fundamental Spring Boot: Keep it Simple, Get it Right, Be Productive and Have...
VMware Tanzu
 
Spring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the ObviousSpring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the Obvious
VMware Tanzu
 
PKS: The What and How of Enterprise-Grade Kubernetes
PKS: The What and How of Enterprise-Grade KubernetesPKS: The What and How of Enterprise-Grade Kubernetes
PKS: The What and How of Enterprise-Grade Kubernetes
VMware Tanzu
 
Bulletproof Microservices with Spring and Kubernetes
Bulletproof Microservices with Spring and KubernetesBulletproof Microservices with Spring and Kubernetes
Bulletproof Microservices with Spring and Kubernetes
VMware Tanzu
 
DevOps KPIs as a Service: Daimler’s Solution
DevOps KPIs as a Service: Daimler’s SolutionDevOps KPIs as a Service: Daimler’s Solution
DevOps KPIs as a Service: Daimler’s Solution
VMware Tanzu
 
Next-Generation Cloud Native Apps with Spring Cloud and Kubernetes
Next-Generation Cloud Native Apps with Spring Cloud and KubernetesNext-Generation Cloud Native Apps with Spring Cloud and Kubernetes
Next-Generation Cloud Native Apps with Spring Cloud and Kubernetes
VMware Tanzu
 
Spring Tools 4: Bootiful Spring Tooling for the Masses
Spring Tools 4: Bootiful Spring Tooling for the MassesSpring Tools 4: Bootiful Spring Tooling for the Masses
Spring Tools 4: Bootiful Spring Tooling for the Masses
VMware Tanzu
 
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
VMware Tanzu
 
VMware Tanzu Introduction- June 11, 2020
VMware Tanzu Introduction- June 11, 2020VMware Tanzu Introduction- June 11, 2020
VMware Tanzu Introduction- June 11, 2020
VMware Tanzu
 

Similar to Spring Boot Loves K8s (20)

Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
VMware Tanzu
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
VMware Tanzu
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Kalkey
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
DonghuKIM2
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
 
VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...
VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...
VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...
VMworld
 
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗
William Yeh
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
VMware Tanzu
 
JOIN 2022: Patching 3rd party software Like a boss
JOIN 2022: Patching 3rd party software Like a bossJOIN 2022: Patching 3rd party software Like a boss
JOIN 2022: Patching 3rd party software Like a boss
Pieter Vincken
 
2015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.02015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.0
mnriem
 
Extending Kubernetes with Operators
Extending Kubernetes with OperatorsExtending Kubernetes with Operators
Extending Kubernetes with Operators
peychevi
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix
Rohit Kelapure
 
You've Made Kubernetes Available to Your Developers, Now What?
You've Made Kubernetes Available to Your Developers, Now What?You've Made Kubernetes Available to Your Developers, Now What?
You've Made Kubernetes Available to Your Developers, Now What?
cornelia davis
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
Oleg Shalygin
 
Whats new in Enterprise 5.0 Product Suite
Whats new in Enterprise 5.0 Product SuiteWhats new in Enterprise 5.0 Product Suite
Whats new in Enterprise 5.0 Product Suite
Micro Focus
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI Admin
Kendrick Coleman
 
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Codemotion
 
Technology Primer: Closing the DevOps Loop by Integrating CA Application Perf...
Technology Primer: Closing the DevOps Loop by Integrating CA Application Perf...Technology Primer: Closing the DevOps Loop by Integrating CA Application Perf...
Technology Primer: Closing the DevOps Loop by Integrating CA Application Perf...
CA Technologies
 
HDinsight Workshop - Prerequisite Activity
HDinsight Workshop - Prerequisite ActivityHDinsight Workshop - Prerequisite Activity
HDinsight Workshop - Prerequisite Activity
Idan Tohami
 
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Simone Morellato
 
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
VMware Tanzu
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
VMware Tanzu
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Kalkey
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
DonghuKIM2
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
 
VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...
VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...
VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...
VMworld
 
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗
William Yeh
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
VMware Tanzu
 
JOIN 2022: Patching 3rd party software Like a boss
JOIN 2022: Patching 3rd party software Like a bossJOIN 2022: Patching 3rd party software Like a boss
JOIN 2022: Patching 3rd party software Like a boss
Pieter Vincken
 
2015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.02015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.0
mnriem
 
Extending Kubernetes with Operators
Extending Kubernetes with OperatorsExtending Kubernetes with Operators
Extending Kubernetes with Operators
peychevi
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix
Rohit Kelapure
 
You've Made Kubernetes Available to Your Developers, Now What?
You've Made Kubernetes Available to Your Developers, Now What?You've Made Kubernetes Available to Your Developers, Now What?
You've Made Kubernetes Available to Your Developers, Now What?
cornelia davis
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
Oleg Shalygin
 
Whats new in Enterprise 5.0 Product Suite
Whats new in Enterprise 5.0 Product SuiteWhats new in Enterprise 5.0 Product Suite
Whats new in Enterprise 5.0 Product Suite
Micro Focus
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI Admin
Kendrick Coleman
 
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Codemotion
 
Technology Primer: Closing the DevOps Loop by Integrating CA Application Perf...
Technology Primer: Closing the DevOps Loop by Integrating CA Application Perf...Technology Primer: Closing the DevOps Loop by Integrating CA Application Perf...
Technology Primer: Closing the DevOps Loop by Integrating CA Application Perf...
CA Technologies
 
HDinsight Workshop - Prerequisite Activity
HDinsight Workshop - Prerequisite ActivityHDinsight Workshop - Prerequisite Activity
HDinsight Workshop - Prerequisite Activity
Idan Tohami
 
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Simone Morellato
 
Ad

More from VMware Tanzu (20)

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
VMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
VMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
VMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
VMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 
Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
VMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
VMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
VMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
VMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 
Ad

Recently uploaded (20)

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
 
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
 
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
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
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
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
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
 
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
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
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
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
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
 
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
 
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
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
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
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
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
 
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
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
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
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 

Spring Boot Loves K8s

  • 1. Spring Boot loves k8s September 2–3, 2020 springone.io #session-spring-boot-loves-k8s on Slack 1 Stéphane Nicoll @snicoll Brian Clozel @bclozel
  • 2. Safe Harbor Statement The following is intended to outline the general direction of VMware's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of VMware offerings, future updates or other planned modifications is subject to ongoing evaluation by VMware and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding VMware's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for VMware's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation. 2
  • 6. Agenda Showcasing Spring Boot 2.3 features during a live coding session ● The “Scribe” application ● Efficient Container images ● Liveness and Readiness ● Graceful Shutdown ● Next in Spring Boot 2.4+ 6
  • 7. Markdown editor with spell check 7
  • 8. Markdown editor with spell check 7
  • 9. Markdown editor with spell check 7
  • 10. Markdown editor with spell check 7
  • 11. A distributed system! 8 Scribe MarkdownConverter ● Web UI ● Spell check ● Calls Converter + Fallback ● HTTP endpoint ● Markdown to HTML
  • 13. Very Basic Dockerfile for Java apps 10 FROM openjdk:8-jre-alpine WORKDIR application ARG JAR_FILE=scribe/target/scribe-*.jar COPY ${JAR_FILE} application.jar ENTRYPOINT ["java","-jar","application.jar"]
  • 14. Layers in Container images 11 FROM … [FROM CACHE] COPY … [FROM CACHE] COPY … [REBUILDING] RUN … Layers represent changes/intermediate images (like git commits) When rebuilding an image, layers can be cached and reused if their content did not change.
  • 15. Optimizing Container images 12 FROM … [FROM CACHE] COPY application.jar [REBUILDING] Regrouping resources with similar lifecycle will improve image build time and storage efficiency. In our current Dockerfile, the entire layer needs to be rebuilt for any change in the application
  • 18. 14 Anatomy of a Spring Boot Jar 6 . ├── BOOT-INF │   ├── classes │   │   ├── application.properties │   │   ├── io/spring/sample/scribe │   │   │  ├── EditorController.class │   │   │   ├── ScribeApplication.class │   │   │   ├── … │   └── lib │   ├── bulma-0.9.0.jar │   ├── jackson-databind-2.11.2.jar │   ├── spring-boot-2.3.3.RELEASE.jar
  • 19. 14 Anatomy of a Spring Boot Jar 6 │   │   │   ├── ScribeApplication.class │   │   │   ├── … │   └── lib │   ├── bulma-0.9.0.jar │   ├── jackson-databind-2.11.2.jar │   ├── spring-boot-2.3.3.RELEASE.jar │   ├── … ├── META-INF │   ├── MANIFEST.MF │   └── spring-configuration-metadata.json └── org/springframework/boot/loader ├── ClassPathIndexFile.class ├── JarLauncher.class ├── …
  • 20. Layered container images 15 FROM … COPY --from=builder source/snapshot-dependencies/ ./ COPY --from=builder source/spring-boot-loader/ ./ COPY --from=builder source/dependencies/ ./ Spring Boot can build efficient container images. Developers can customize the layer arrangement and reorder, add their own… Using the Maven/Gradle build plugins. COPY --from=builder source/application/ ./
  • 21. Spring Boot + Buildpacks No Dockerfile required! Build locally with the CLI: 16 ./mvnw spring-boot:build-image ./gradlew bootBuildImage Also, delegate to your company’s builder instance in your build pipeline.
  • 22. Cloud Native Buildpacks With buildpacks.io, you can delegate container image building for: • Balanced control between app devs and platform operators • Security and compliance requirements handled in one place • Easier maintenance/upgrades 17
  • 23. What about other solutions? Buildpacks, Dockerfiles, Jib, s2i, ko… They have different approaches and features, see https://buildpacks.io/features/ Choose what fits best for your team! 18
  • 24. Next: Spring to image Later today, check out the “Spring to image” session with Ben Hale. https://springone.io/2020/sessions/spring-to-image This session will cover Spring Boot build plugins, the pack CLI, the kpack Kubernetes service and more! 19
  • 26. Liveness and Readiness 1. New concepts supported in Spring Boot core. 2. Complement the existing application Health support in Actuator. 3.Empower developers with ApplicationAvailability. 21
  • 27. Liveness and Readiness states Liveness “CORRECT” if the internal state of the app is fine. External dependencies or the service itself might not respond correctly still. “BROKEN” if the internal state of the application is broken and restarting is the only way to fix it. 22 Readiness “ACCEPTING_TRAFFIC” is a way to tell load balancers that the app is ready to serve requests. The app is “REFUSING_TRAFFIC” if it considers that its load is too high, or depending on its lifecycle stage (starting up, shutting down).
  • 28. Liveness and Readiness Probes Liveness and Readiness states are available as health groups. Enabled automatically on k8s, or with the config property: 23 https://example.org/actuator/health/liveness https://example.org/actuator/health/readiness Probes are available here and in sync with the application lifecycle: management.endpoint.health.probes.enabled=true
  • 29. Probes as Health Groups Liveness and readiness probes are using the Health Groups feature. You can configure additional checks to a probe: 24 management.endpoint.health.group.readiness.include=readinessState,customCheck ⚠ You should be careful about checking for external state in probes.
  • 30. ApplicationAvailability 25 @Component public class LocalCacheVerifier { private final ApplicationEventPublisher eventPublisher; public void checkLocalCache() { try { //... } catch (CacheCompletelyBrokenException ex) { AvailabilityChangeEvent.publish(this.eventPublisher, ex, LivenessState.BROKEN); } } } // see more in reference docs
  • 32. Shutting down app with active requests 27 Scribe MarkdownConverter MarkdownConverter MarkdownConverter HTTP POST /convert 1. Processing…
  • 33. Shutting down app with active requests 27 Scribe MarkdownConverter MarkdownConverter MarkdownConverter HTTP POST /convert 1. Processing… 2. Shutdown!
  • 34. Graceful Shutdown 28 Scribe MarkdownConverter HTTP POST /convert 1. Processing… MarkdownConverter MarkdownConverter
  • 35. Graceful Shutdown 28 Scribe MarkdownConverter HTTP POST /convert 1. Processing… 2. Stop accepting MarkdownConverter MarkdownConverter
  • 36. Graceful Shutdown 28 Scribe MarkdownConverter HTTP POST /convert 1. Processing… 3. Done 2. Stop accepting MarkdownConverter MarkdownConverter
  • 37. Graceful Shutdown 28 Scribe MarkdownConverter HTTP POST /convert 1. Processing… 3. Done 2. Stop accepting MarkdownConverter MarkdownConverter 4.Shutdown!
  • 38. Configuring Graceful Shutdown Enabling Graceful Shutdown and configuring the grace period: 29 server.shutdown=graceful spring.lifecycle.timeout-per-shutdown-phase=20s
  • 39. Next in Spring Boot 2.4+ 30
  • 40. Config file processing Volume mounted configuration trees, multi-document properties files, profile groups, etc. See config file processing blog post. 31 spring.config.activate.on-cloud-platform=kubernetes spring.config.import=configtree:/etc/config spring.config.activate.on-cloud-platform=kubernetes spring.config.import=configtree:/etc/config spring.config.activate.on-cloud-platform=kubernetes spring.config.import=configtree:/etc/config spring.config.activate.on-cloud-platform=kubernetes spring.config.import=configtree:/etc/config spring.config.activate.on-cloud-platform=kubernetes spring.config.import=configtree:/etc/config etc/ +- config/ +- my/ | +- application +- test
  • 41. Graceful shutdown improvements The team is considering adding a shutdown delay option because most platforms still route traffic to while routing state is converging. Currently you can use a PreStop hook to delay the shutdown sequence. 32
  • 42. Layered JARs enabled by default As of 2.4.0, Spring Boot JARs will ship with the layers.idx by default. Useful metadata for tools in your CI/CD pipeline. 33
  • 43. Stay Connected. Q&A #session-spring-boot-loves-k8s on Slack “Spring to Image” session with Ben Hale Slides and code: https://springone.io/2020/sessions/spring-boot-loves-k8s https://github.com/snicoll/spring-boot-loves-k8s #springone@s1p