The Definitive Guide to Modernizing Applications on Google Cloud: The what, why, and how of application modernization on Google Cloud
- Length: 488 pages
- Edition: 1
- Language: English
- Publisher: Packt Publishing
- Publication Date: 2022-01-06
- ISBN-10: 1800209797
- ISBN-13: 9781800209794
- Sales Rank: #8537145 (See Top 100 Books)
Get to grips with the tools, services, and functions needed for application migration to help you move from legacy applications to cloud-native on Google Cloud
Key Features
- Discover how a sample legacy application can be transformed into a cloud-native application on Google Cloud
- Learn where to start and how to apply application modernization techniques and tooling
- Work with real-world use cases and instructions to modernize an application on Google Cloud
Book Description
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.
What you will learn
- Discover the principles and best practices for building cloud-native applications
- Study the six Rs of migration strategy and learn when to choose which strategy
- Rehost a legacy enterprise application on Google Compute Engine
- Replatform an application to use Google Load Balancer and Google Cloud SQL
- Refactor into a single-page application (SPA) supported by REST services
- Replatform an application to use Google Identity Platform and Firebase Authentication
- Refactor to microservices using the strangler pattern
- Automate the deployment process using a CI/CD pipeline with Google Cloud Build
Who this book is for
This book is for software developers and solutions architects looking to gain experience in modernizing their enterprise applications to run on Google Cloud and transform them into cloud-native applications. Basic knowledge of Java and Spring Boot is necessary. Prior knowledge of Google Cloud is useful but not mandatory.
The Definitive Guide to Modernizing Applications on Google Cloud Contributors About the authors About the reviewer Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Reviews Share Your Thoughts Section 1: Cloud-Native Application Development and App Modernization in Google Cloud Chapter 1: Cloud-Native Application Fundamentals The cloud-native ecosystem Benefits of cloud-native applications Increased speed of delivery Increased scalability Increased resiliency Mixed technology stack and workforce Continuous integration and delivery Increased automation Principles of cloud-native architecture Principle 1 – lightweight microservices Principle 2 – leveraging automation Principle 3 – DevOps culture Principle 4 – better to go managed Principle 5 – innovate Limitations of microservices Applying the 12-factor app principles on Google Cloud Code base Dependencies Config Backing services Build, release, run Processes Port binding Concurrency Disposability Dev/prod parity Logs Admin processes Summary Chapter 2: End-to-End Extensible Tooling for Cloud-Native Application Development Moving past third-party services – the beauty of end-to-end tooling Google Cloud Code Features and benefits of Cloud Code The role of Cloud Code in the cloud-native app development pipeline Google Cloud Build Features and benefits of Cloud Build The role of Cloud Build in the cloud-native app development pipeline Google Container Registry Features and benefits of GCR The next-gen container registry – Artifact Registry The role of GCR in the cloud-native app development pipeline Google Cloud Run Features and benefits of Cloud Run The role of Google Cloud Run in the cloud-native app development pipeline Google Kubernetes Engine Features and benefits of GKE The role of GKE in the cloud-native app development pipeline Operations suite Features of Google Cloud Monitoring Features of Google Cloud Logging The role of the Cloud operations suite in the cloud-native app development pipeline Summary Chapter 3: Cloud-Native Architecture Patterns and System Architecture Tenets Cloud-native patterns The scope of cloud-native patterns Solving challenges with cloud-native patterns Be proactive, not reactive Scaling and performance Deployments Resiliency and availability Monitoring Security Cloud-native design patterns Microservices Strangler applications Decomposition patterns Event-driven patterns Command Query Responsibility Segregation The saga pattern Multiple service instances Canary deployments Stateless services Immutable infrastructure Anti-corruption layer API composition Event sourcing The Retry pattern Circuit breaker pattern The bulkhead pattern Using the cloud-native pattern judiciously Hybrid and multi-cloud architecture recommendations Distributed deployment patterns Redundant deployment patterns Summary Section 2: Selecting the Right Google Cloud Services Chapter 4: Choosing the Right Compute Option Five compute options… and Firebase Firebase Cloud Functions GAE Cloud Run GKE GCE Pricing How important is it to choose the right option? Changing compute options Making a decision Summary Chapter 5: Choosing the Right Database and Storage Storage and database options on Google Cloud – the big three GCS – basics GCS Cloud SQL Cloud Firestore (previously Datastore) Cloud Spanner Cloud Bigtable Wrapping up the big five Additional storage and database options BigQuery Filestore Persistent disks/local solid-state drive (SSD) (block storage) MemoryStore Security and flexibility Summary Chapter 6: Implementing a Messaging and Scheduling System Understanding the requirements of a messaging system Requirement #1: Scalability Requirement #2: Extensibility Requirement #3: Agility Requirement #4: Resiliency Introduction to asynchronous messaging Messaging products available (open source and cloud native) on the market Amazon SQS Kafka RabbitMQ NATS Streaming Advantages of asynchronous messaging Introduction to Pub/Sub What is Cloud Pub/Sub? Pub/Sub key features Additional benefits Pub/Sub Concepts – topics and subscriptions Pub/Sub model – fan-in and fan-out Pull versus push types – differences and when to use each type Getting started with Cloud Pub/Sub Introduction to Cloud Tasks Introduction to Cloud Scheduler Summary Chapter 7: Implementing Cloud-Native Security The principles and concepts of cloud security Economy of Mechanism Defense in Depth Principle of Least Privilege Adding infrastructure security layers (revision) Cloud IAM Traditional access control versus Cloud IAM Concepts of IAM Entity Identity Permissions Policy Authentication and authorization Cloud IAM on Google Cloud Platform Features of Cloud IAM Components of Cloud IAM Members All authenticated users All users Resources Permissions Roles IAM policy bindings Limitations of Cloud IAM Cloud Identity Features of Cloud Identity Setting up Cloud Identity Cloud Identity Platform Features of Cloud Identity Platform BeyondCorp (a new approach to enterprise security) Cloud Identity-Aware Proxy (IAP) Summary Section 3: Rehosting and Replatforming the Application Chapter 8: Introducing the Legacy Application Technical requirements The infrastructure architecture The software architecture Spring Boot Thymeleaf Bootstrap jQuery Explaining the software architecture Implementing the software Spring Boot configuration Understanding the layers of the application The presentation layer The controller layer The domain layer Validation and defensive programming Summary Chapter 9: The Initial Architecture on Google Compute Engine Technical requirements The initial infrastructure design Designing our network Designing our network security Creating the modernization project Implementing the network Implementing the VMs Importing the data Summary Chapter 10: Addressing Scalability and Availability Technical Requirements Designing for scalability and availability Using instance templates Using managed instance groups Using an HTTP(S) load balancer Summary Chapter 11: Re-Platforming the Data Layer Designing for scalability and availability Using Cloud Memorystore Provisioning a Cloud Memorystore instance Updating the Regional Managed Instance Group Using Cloud SQL Using Cloud SQL Proxy Using Cloud Spanner Provisioning Cloud Spanner Updating the build Updating the application settings Importing data into Cloud SQL Exporting data from our MySQL virtual machine Importing to Cloud SQL Cloud SQL versus Cloud Spanner Summary Chapter 12: Designing the Interim Architecture The infrastructure architecture Google Identity Platform Cloud Pub/Sub The software architecture Refactoring the frontend and exposing REST services Adding Google Identity Platform for identity and authentication Publishing events Consuming events Refactoring to microservices Microservice boundaries Summary Chapter 13: Refactoring to Microservices Technical requirements Analyzing the structure of the application backend Refactoring into microservices Refactoring the database The web frontend The Strangler Pattern revisited Google HTTP(S) Load Balancer Routing Google App Engine Dispatcher Apigee API Manager Containerizing the deployment units with Docker Summary Section 4: Refactoring the Application on Cloud-Native/PaaS and Serverless in Google Cloud Chapter 14: Refactoring the Frontend and Exposing REST Services Technical requirements Creating REST controllers Creating an AngularJS web frontend Modules Components Routing Services Authenticating in the web frontend Setting up Firebase and Google Identity Platform Initializing Firebase Authentication Router updates The authentication cycle The signout controller Validating the authentication token in the REST controllers The authentication filter Summary Chapter 15: Handling Eventual Consistency with the Compensation Pattern Technical requirements The distributed transaction problem The compensation pattern Creating topics and subscriptions with Google Cloud Pub/Sub Implementing eventual consistency and the compensation pattern Deploying and testing the application Summary Chapter 16: Orchestrating Your Application with Google Kubernetes Engine Technical requirements Introducing GKE Modes of operation Creating a GKE cluster Configuring the environment Kubernetes ConfigMaps and Secrets Deploying and configuring the microservices Kubernetes Pods Kubernetes ReplicaSets Kubernetes Deployments Kubernetes Horizontal Pod Autoscalers Kubernetes Services Automating the deployment of our components Configuring public access to the application Kubernetes-managed certificates Kubernetes Ingress When to use GKE Summary Chapter 17: Going Serverless with Google App Engine Technical requirements Introducing Google App Engine Google App Engine standard environment Google App Engine flexible environment Components of App Engine and the hierarchy of an application deployed on App Engine Deploying containers to the App Engine flexible environment Application configuration updates Deployment configuration Automating deployment When to use Google App Engine Summary Chapter 18: Future Proofing Your App with Google Cloud Run Technical requirements Cloud Run The Knative stack Cloud Run environments Deploying containers to Google Cloud Run Frontend configuration Service manifest Google Cloud Build Domain name mapping When to use Cloud Run Summary Appendix A: Choosing the Right Migration Strategy Step 1 – assess Cataloging existing applications Educating teams Choosing what to migrate first Capable and innovative teams The effort required for migration License restrictions and compliance Can afford downtime Step 2 – plan Migration paths versus migration strategies Choosing the right migration path Step 3 – migrate Transferring your data Deploying workloads Setting up automated and containerized deployments Step 4 – optimize Letting internal teams takeover Setting up monitoring Leveraging managed services and automation Cost and performance Appendix B: Application Modernization Solutions Modernizing Java apps What is Google Anthos? Preparing to modernize Java apps Phase 1 – containerizing Java applications Phase 2 – Refactoring and re-platforming Modernization strategies (the 6 Rs of modernization) Retire, retain, and re-architect Why subscribe? Other Books You May Enjoy Packt is searching for authors like you Share Your Thoughts
Donate to keep this site alive
How to download source code?
1. Go to: https://github.com/PacktPublishing
2. In the Find a repository… box, search the book title: The Definitive Guide to Modernizing Applications on Google Cloud: The what, why, and how of application modernization on Google Cloud
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.