What this book covers
Chapter 1, Cloud-Native Application Fundamentals, introduces the characteristics of cloud-native applications, including their benefits, along with the ever-popular Twelve-Factor App principles.
Chapter 2, End-to-End Extensible Tooling for Cloud-Native Application Development, introduces the development toolset and services available on Google Cloud to aid in building a modern cloud-native application.
Chapter 3, Cloud-Native Architecture Patterns and System Architecture Tenets, explains the different design patterns and best practices to address specific development challenges, client needs, and platform requirements.
Chapter 4, Choosing the Right Compute Option, introduces the various compute options available on Google Cloud from IaaS, PaaS, and containers to serverless options.
Chapter 5, Choosing the Right Database and Storage, introduces the various database and storage services available on Google Cloud.
Chapter 6, Implementing a Messaging and Scheduling System, explains the need for a messaging system for cloud-native applications, introducing the Pub/Sub service in Google Cloud and comparing it to other open source options.
Chapter 7, Implementing Cloud-Native Security, introduces identity and access management and how it can be used to secure applications deployed on Google Cloud.
Chapter 8, Introducing the Legacy Application, introduces the monolithic Java Spring Boot application along with the frontend and backend components that we will modernize at a later stage.
Chapter 9, The Initial Architecture on Google Compute Engine, explains how the sample legacy application can be rehosted on Google Compute Engine virtual machines.
Chapter 10, Addressing Scalability and Availability, addresses the scalability of the legacy application by utilizing Managed Instance Groups (MIG), which is a collection of Google Compute Engine virtual machines.
Chapter 11, Re-platforming the Data Layer, showcases how to move the backend database from a self-hosted option on Google Compute Engine to a managed service on Google Cloud.
Chapter 12, Designing the Interim Architecture, focuses on understanding how infrastructure and software architecture needs to be changed to prepare for the move to microservices.
Chapter 13, Refactoring to Microservices, explains how we can package our application into separate microservices for the frontend and backend.
Chapter 14, Refactoring the Frontend and Exposing REST Services, explains how to break our monolithic legacy application into microservices for the frontend along with the backend REST APIs.
Chapter 15, Handling Eventual Consistency with the Compensation Pattern, explains how our legacy application can be designed to handle eventual consistency to allow loose coupling between the microservices.
Chapter 16, Orchestrating Your Application with Google Kubernetes Engine, explains the deployment of our legacy application to Google Kubernetes Engine. Now that we have all the individual microservices, we are ready to deploy to containerized platforms.
Chapter 17, Going Serverless with Google App Engine, explains how to deploy our containerized legacy application to Google App Engine.
Chapter 18, Future-Proofing Your App with Google Cloud Run, explains how to deploy our legacy application to Google Cloud Run, which is Google's latest serverless offering.
Appendix A, Choosing the Right Migration Strategy, explains the various migration options available when moving to Google Cloud.
Appendix B, Application Modernization Solutions, introduces Anthos, an application modernization platform.