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 a reactive, cloud-native system that is 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, Cloud Native Application Design, dives deep into the development of cloud native architectures, using microservices and serverless computing as a design principle.
Chapter 11, How to Choose Technology Stacks, explores the common technology that is used to create cloud native architectures, from open source to licensed software. It will explore marketplaces that can be used to consume resources in the cloud. Finally, it will discuss the procurement process and licensing models that are common in the cloud.
Chapter 12, Scalable and Available, talks about available tools/features and strategies to employ when designing cloud native systems for scale and HA. The chapter will explore how these tools/features work, how they enable cloud native applications and how to deploy them.
Chapter 13, Optimizing Cost, covers the pricing model for Cloud environments. We will then discuss how to approach costing exercises as well as the differences between the old and cloud models.
Chapter 14, Amazon Web Services, focuses on providing a perspective on Amazon Web Services' cloud native application development capabilities, strengths, ecosystem maturity, and overall approach.
Chapter 15, Microsoft Azure, focuses on providing a perspective on Microsoft Azure's cloud native application development capabilities, strengths, ecosystem maturity, and overall approach.
Chapter 16, Google Cloud Platform, focuses on providing a perspective on Google Cloud Platform's cloud native application development capabilities, strengths, ecosystem maturity, and overall approach.
Chapter 17, What's Next? Cloud Native Application Architecture Trends, looks at future trends and what to expect from various cloud providers in this space.