2 Cloud native patterns and technologies

 

This chapter covers

  • Understanding development principles for cloud native applications
  • Building cloud native applications with Spring Boot
  • Containerizing applications with Docker and Buildpacks
  • Deploying applications to the cloud with Kubernetes
  • Introducing patterns and technologies used in the book

The way we design applications for the cloud is different from traditional approaches. The 12-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 this chapter, and I’ll expand on it throughout the book.

Later in this chapter, we’ll 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. This chapter aims to provide you with a mental map of the journey we’ll undertake from code to production in a cloud environment, while familiarizing you with patterns and technologies that we’ll use in the rest of the book.

Figure 2.1 The journey of a Spring application from Java to container to Kubernetes
02-01

Finally, I’ll introduce you to the cloud native project we’ll build throughout this book using Spring and Kubernetes. We’ll employ all the properties and patterns for cloud native applications introduced in this first part of the book.

2.1 Cloud native development principles: 12 Factors and beyond

2.1.1 One codebase, one application

2.1.2 API first

2.1.3 Dependency management

2.1.4 Design, build, release, run

2.1.5 Configuration, credentials, and code

2.1.6 Logs

2.1.7 Disposability

2.1.8 Backing services

2.1.9 Environment parity

2.1.10 Administrative processes

sitemap