Developing Spring Boot Apps for Kubernetes
General info
This is a two-day training course. Select the desired start date at the top right of the screen for practical information regarding the training (location, price, registration, etc.).
Course overview
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.
Who should attend this training
Spring Application developers who want to learn best practices & patterns for containerising Spring Boot Applications with Docker, and integrate them in the Kubernetes platform.
Course Objectives
By the end of the training, you will have learned the following:
- 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
Prerequisites
- This training requires you to have good knowledge of Java & Spring boot (Spring Core/boot training is recommended)
- Basic knowledge of Docker/containers & Kubernetes is recommended
- This is a BYOD (Bring Your Own Device) training. Please bring your own laptop to the course. Please make sure the following software is installed:
- This training has an interactive hosted environment. You will only need an internet browser (preferably Google Chrome)
Course Content
Introduction
- What is Cloud Native?
- Cloud Native design principles
- Cloud Native Journey
- Container introduction (why)
- Docker introduction
- Containerize your Spring Boot application
- Best practices / optimizing containers
- Jib
- Pack / Buildpacks
- Building containers with Spring Boot
- 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
- External configuration
- Spring Profiles
- Spring Boot Cloud Platform config
- Kubernetes Env Vars / ConfigMaps / Secrets
- Deployment strategies:
- Rolling upgrade
- Recreate
- Blue-green
- Canary
- Rolling back deployments
- Rollout considerations
- Spring Booth Health Indicators
- Creating a custom health indicator
- Liveness and Readiness Kubernetes probes
- LivenessState and ReadinessState
- Graceful Shutdown
- Logging challenges in Cloud Native apps
- Logging in Spring Boot
- Logging Architectures
- Metrics and Monitoring
- Metrics in Spring Boot
- Custom metrics
- Prometheus and Grafana
- Kubernetes Resources
- Requests and Limits
- Scheduling