Welcome to the book Cloud Native Development Patterns and Best Practices. This book will help you along your cloud-native journey. I have personally found delivering cloud-native solutions to be, by far, the most fun and satisfying. This is because cloud-native is more than just optimizing for the cloud. It is an entirely different way of thinking and reasoning about software systems. Cloud-native enables companies to rapidly and continuously deliver innovation with confidence. It empowers everyday teams to build massive-scale systems with much less effort than ever before.
In this book, you will learn modern patterns such as Event Sourcing, CQRS, Data Lake, and Backend For Frontend, but with a cloud-native twist. You will leverage value-added cloud services to build reactive cloud-native systems that turn the database inside-out and ultimately turn the cloud into the database. Your team will build confidence in its ability to deliver because your cloud-native system is composed of bounded isolated components with proper bulkheads based on asynchronous, message-driven inter-component communication and data replication. You will learn how to build cloud-native systems that are responsive, resilient, elastic, and global.
You will also learn cutting-edge best practices for development, testing, monitoring, security, and migration. You will learn how to decouple deployment from release and leverage feature flags. You will be able to increase confidence with transitive testing and build on the shared responsibility model of the cloud to deliver secure systems. Also, you will learn how to optimize the observability of your system and empower teams to focus on the mean time to recovery. You will apply the strangler pattern to perform value-focused migration to cloud-native and to build evolutionary cloud-native architecture.
To get the most out of this book, be prepared with an open mind to uncover why cloud-native is different. Cloud-native forces us to rewire how we reason about systems. It tests all our preconceived notions of software architecture. So, be prepared to have a lot of fun building cloud-native systems.