This repository contains the source code accompanying the book Cloud Native Spring in Action - With Spring Boot and Kubernetes written by Thomas Vitale and published by Manning Publications.
There is a folder for each chapter, for which both an initial and final versions are available. For example, for chapter 4, you can use Chapter04/04-begin
as a starting point to follow along with the examples in the chapter and Chapter04/04-end
to check the code as it looks like at the end.
The book uses Spring Boot 2.7.x and this main branch contains the samples updated to version 2.7.18. You can find the same examples upgraded to the latest 3.x version of Spring Boot in a dedicated branche. Feel free to use Spring Boot 3 while reading the book. Only a few minor changes are necessary to the code samples and they are documented here.
Chapter after chapter, you'll build, containerize, and deploy cloud native applications. Along the journey, you will need the following software installed.
- Java 17+
- OpenJDK: Eclipse Temurin
- GraalVM: GraalVM
- JDK Management: SDKMAN
- Docker 26+
- Kubernetes 1.30+
- Other
The code samples in the book use Gradle as the build tool. Should you prefer Maven, here's a table mapping Gradle commands to Maven so that you can easily follow along.
Gradle | Maven |
---|---|
./gradlew clean |
./mvnw clean |
./gradlew build |
./mvnw install |
./gradlew test |
./mvnw test |
./gradlew bootJar |
./mvnw spring-boot:repackage |
./gradlew bootRun |
./mvnw spring-boot:run |
./gradlew bootBuildImage |
./mvnw spring-boot:build-image -DskipTests |
- Configuring IntelliJ IDEA
- Configuring Visual Studio Code
- Knative Platform Cloud Installation
- Minikube configuration behind a proxy
- Observability setup on Kubernetes
- Replacing Kubeval with Kubeconform
- Replacing Octant
- Setting up a Kubernetes cluster for Polar Bookshop on Azure
- Setting up a Kubernetes cluster for Polar Bookshop on DigitalOcean
- Testing RabbitMQ with Testcontainers
- Working with macOS on Apple Silicon
- Working with macOS on Intel
- Working with Windows
Chapter | Starting point | Intermediate version | Final version |
---|---|---|---|
1. Introduction to cloud native | - | - | - |
2. Cloud native patterns and technologies | 02-begin | - | 02-end |
3. Getting started with cloud native development | 03-begin | - | 03-end |
4. Externalized configuration management | 04-begin | - | 04-end |
5. Persisting and managing data in the cloud | 05-begin | 05-intermediate | 05-end |
6. Containerizing Spring Boot | 06-begin | - | 06-end |
7. Kubernetes fundamentals for Spring Boot | 07-begin | - | 07-end |
8. Reactive Spring: Resilience and scalability | 08-begin | - | 08-end |
9. API gateway and circuit breakers | 09-begin | - | 09-end |
10. Event-driven applications and functions | 10-begin | 10-intermediate | 10-end |
11. Security: Authentication and SPA | 11-begin | - | 11-end |
12. Security: Authorization and auditing | 12-begin | - | 12-end |
13. Observability and monitoring | 13-begin | - | 13-end |
14. Configuration and secrets management | 14-begin | - | 14-end |
15. Continuous delivery and GitOps | 15-begin | - | 15-end |
16. Serverless, GraalVM and Knative | 16-begin | - | 10-end |
The final project developed throughout the book is available here.
You can find the source code for the Angular frontend here.
Feel free to submit questions, feedback, or errata to the forum dedicated to "Cloud Native Spring in Action": https://livebook.manning.com/book/cloud-native-spring-in-action/.
You are very welcome to contact me for questions, feedback, or suggestions. Feel free to reach out to me on Twitter, LinkedIn, Mastodon, BlueSky or here on GitHub.