Book Image

Cloud Native Development Patterns and Best Practices

By : John Gilbert
Book Image

Cloud Native Development Patterns and Best Practices

By: John Gilbert

Overview of this book

Build systems that leverage the benefits of the cloud and applications faster than ever before with cloud-native development. This book focuses on architectural patterns for building highly scalable cloud-native systems. You will learn how the combination of cloud, reactive principles, devops, and automation enable teams to continuously deliver innovation with confidence. Begin by learning the core concepts that make these systems unique. You will explore foundational patterns that turn your database inside out to achieve massive scalability with cloud-native databases. You will also learn how to continuously deliver production code with confidence by shifting deployment and testing all the way to the left and implementing continuous observability in production. There's more—you will also learn how to strangle your monolith and design an evolving cloud-native system. By the end of the book, you will have the ability to create modern cloud-native systems.
Table of Contents (12 chapters)

Decoupling deployment from release

Let's start this chapter by posing three questions:

  1. Did you notice that the Deployment chapter is before the Testing chapter?
  2. Do you find the typical definitions of continuous delivery versus continuous deployment unsatisfying?
  3. How can a company possibly perform multiple deployments each day and still have any confidence that the system will continue to function properly?

I placed the Deployment chapter before the Testing chapter to emphasize the fact that we are shifting the activity of deployment all the way to the left on the life cycle timeline of any given bounded isolated component. In fact, I advocate deploying a new component all the way into production on the very first day of its development. This first deployment is just a boilerplate stub created from a well-crafted template or it may even be just an empty stack. Regardless...