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)

What this book covers

Chapter 1, Understanding Cloud Native Concepts, covers the promise of cloud-native: to enable companies to continuously deliver innovation with confidence. It reveals the core concepts and answers the fundamental question: what is cloud-native?

Chapter 2, The Anatomy of Cloud Native Systems, begins our deep dive into the architectural aspects of cloud-native systems. It covers the important role that asynchronous, message-driven communication plays in creating proper bulkheads to build reactive, cloud-native system that are responsive, resilient, and elastic. You will learn how cloud-native turns the database inside out and ultimately turns the cloud into the database.

Chapter 3, Foundation Patterns, covers the patterns that provide the foundation for creating bounded isolated components. We eliminate all synchronous inter-component communication and build our foundation on asynchronous inter-component communication, replication, and eventual consistency.

Chapter 4, Boundary Patterns, covers the patterns that operate at the boundaries of cloud-native systems. The boundaries are where the system interacts with everything that is external to the system, including humans and other systems.

Chapter 5, Control Patterns, covers the patterns that provide the flow of control for collaboration between the boundary components. It is with these collaborations that we ultimately realize the intended functionality of a system.

Chapter 6, Deployment, describes how we shift deployments all the way to the left and decouple deployment from release to help enable teams to continuously deploy changes to production and continuously deliver innovation to customers with confidence.

 Chapter 7, Testing, describes how we shift testing all the way to the left, weave it into the CI/CD pipeline, and leverage isolated and transitive testing techniques to help enable teams to continuously deploy changes to production and deliver innovation to customers with confidence.

Chapter 8, Monitoring, describes how we shift some aspects of testing all the way to the right into production to assert the success of continuous deployments and instill team confidence by increasing observability, leveraging synthetic transaction monitoring, and placing our focus on the mean time to recovery.

Chapter 9, Security, describes how we leverage the shared responsibility model of cloud-native security and adopt the practice of security-by-design to implement secure systems.

Chapter 10, Value Focused Migration, discusses how to leverage the promise of cloud-native to strangle the monolith and empower teams to mitigate the risks of their migration to cloud-native with a focus on value and incremental evolution.