2 Cloud Native Foundations: Patterns and Technologies

 

This chapter covers:

  • Principles for designing cloud native applications
  • Introducing Spring for building cloud native applications
  • Introducing Docker for portable and self-contained applications
  • Introducing Kubernetes for deploying applications to the cloud
  • Introducing patterns and technologies used in the book

The way we design applications for the cloud is different compared to traditional approaches. The Twelve-Factor methodology, consisting of best practices and development patterns, is a good starting point for building applications that can be considered cloud native. I’ll explain the methodology in the first part of the chapter, and I’ll expand on it throughout the book.

You’ll then build a simple Spring Boot application and run it with Java, Docker, and Kubernetes, as shown in figure 2.1. Throughout the book, I’ll go deeper into each of those topics, so don’t worry if something is not entirely clear. The goal of this chapter is to provide you with a mental map of the journey you will undertake from code to production in a cloud environment while familiarizing with patterns and technologies that you will leverage in the rest of the book.

Figure 2.1. The journey of a Spring application from Java to Docker to Kubernetes.
CH02 F01 Vitale

2.1  Cloud native development principles: Twelve Factors and more

2.1.1  One codebase, one application

2.1.2  Dependency management

2.1.3  Configuration, credentials, and code

2.1.4  Backing services

2.1.5  Design, build, release, run

2.1.6  Stateless processes

2.1.7  Port binding

2.1.8  Concurrency

2.1.9  Disposability

2.1.10   Environment parity

2.1.11  Logs

2.1.12  Administrative processes

2.1.13  API first

2.1.14  Telemetry

2.1.15  Authentication and authorization

2.2  Building cloud native applications with Spring

sitemap