Developing Spring Boot apps for Kubernetes
Nov 29, 2020 2021-01-27 15:49Developing Spring Boot apps for Kubernetes
Spring Boot Apps for Kubernetes
Course Description
Kubernetes is the industry approved platform for growing a Cloud Native strategy. Spring (Boot) has always encouraged developers to leverage the tools/technologies that best solves their business use cases.
In this training, we will bring both worlds together so that you as a Spring (boot) developer can take ownership of your code from development to production. We will look at some best practices/patterns on how to containerize your Spring Boot application & run it on a Kubernetes cluster. We will also look at how you can integrate your Spring Boot app with Kubernetes.
This is an intensive, hands-on training, every student will get access to a Kubernetes cluster to complete the labs.
By the time the training is over, you will have a good understanding of how Spring Boot & Kubernetes work hand in hand and you will have bridged some of the gaps between Dev & Ops.
What you’ll learn
By the end of the training, you will learn:
- Design principles of Cloud Native apps
- Why is Kubernetes the industry approved platform & how does Spring Boot fit in?
- Containerize Spring Boot applications
- Deploy Spring Boot applications on Kubernetes
- Spring Boot configuration in Kubernetes
- Spring Boot application lifecycle in Kubernetes
- Visibility & Observability
-
1.- Introduction
-
What is Cloud Native?
-
Cloud Native design principles
-
Cloud Native Journey
-
-
2.- Building Containers
-
Container introduction (why)
-
Docker introduction
-
Containerize your Spring Boot application
-
-
3.- Going beyond Dockerfiles
-
Best practices / optimizing containers
-
Jib
-
Pack / Buildpacks
-
Building containers with Spring Boot
-
-
4.- Kubernetes Introduction
-
Kubernetes Architecture
-
Main building blocks:
- Pod
- Deployment
- ReplicaSet
- Service
- Ingress
-
Using kubectl imperative commands to generate definitions
-
Manually deploy your spring boot application on Kubernetes
-
Organizing resources
-
-
5.- Spring Boot configuration on Kubernetes
-
External configuration
-
Spring Profiles
-
Spring Boot Cloud Platform config
-
Kubernetes Env Vars / ConfigMaps / Secrets
-
-
6.- Managing application deployments
-
Deployment strategies:
- Rolling upgrade
- Recreate
- Blue-green
- Canary
-
Rolling back deployments
-
Rollout considerations
-
-
7.- Health checks and probes
-
Spring Booth Health Indicators
-
Creating a custom health indicator
-
Liveness and Readiness Kubernetes probes
-
LivenessState and ReadinessState
-
Graceful Shutdown
-
-
8.- Observability I: Logging
-
Logging challenges in Cloud Native apps
-
Logging in Spring Boot
-
Logging Architectures
-
-
9.- Observability II: Metrics
-
Metrics and Monitoring
-
Metrics in Spring Boot
-
Custom metrics
-
Prometheus and Grafana
-
-
10.- The cloud is the limit
-
Kubernetes Resources
-
Requests and Limits
-
Scheduling
-