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

The software architecture

Our legacy Java web application uses the following main frameworks:

  • Spring Boot
  • Thymeleaf
  • Bootstrap
  • jQuery

Spring Boot

Spring Boot is an opinionated framework built on top of the Spring Framework. In this case, opinionated means that Spring Boot makes a lot of decisions on how to handle things such as security and persistence. This means it is also auto-configuring, so the configuration we need to provide is minimal, and mostly only needed when we are overriding the default decisions made by Spring Boot.

In our application, we are using the following Spring Boot capabilities:

  • Persistence: Spring Data JPA
  • Sessions: Spring Session Data Redis
  • Security: Spring Security
  • Email: Spring mail with Thymeleaf templates
  • Validation: Spring validation
  • Presentation: Spring Model View Controller (MVC) with Thymeleaf templates

The opinions and auto-configuration provided by Spring Boot mean that the developer...