Book Image

The Definitive Guide to Modernizing Applications on Google Cloud

By : Steve (Satish) Sangapu, Dheeraj Panyam, Jason Marston
Book Image

The Definitive Guide to Modernizing Applications on Google Cloud

By: Steve (Satish) Sangapu, Dheeraj Panyam, Jason Marston

Overview of this book

Legacy applications, which comprise 75–80% of all enterprise applications, often end up being stuck in data centers. Modernizing these applications to make them cloud-native enables them to scale in a cloud environment without taking months or years to start seeing the benefits. This book will help software developers and solutions architects to modernize their applications on Google Cloud and transform them into cloud-native applications. This book helps you to build on your existing knowledge of enterprise application development and takes you on a journey through the six Rs: rehosting, replatforming, rearchitecting, repurchasing, retiring, and retaining. You'll learn how to modernize a legacy enterprise application on Google Cloud and build on existing assets and skills effectively. Taking an iterative and incremental approach to modernization, the book introduces the main services in Google Cloud in an easy-to-understand way that can be applied immediately to an application. By the end of this Google Cloud book, you'll have learned how to modernize a legacy enterprise application by exploring various interim architectures and tooling to develop a cloud-native microservices-based application.
Table of Contents (26 chapters)
1
Section 1: Cloud-Native Application Development and App Modernization in Google Cloud
5
Section 2: Selecting the Right Google Cloud Services
10
Section 3: Rehosting and Replatforming the Application
17
Section 4: Refactoring the Application on Cloud-Native/PaaS and Serverless in Google Cloud

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.