The Definitive Guide to Modernizing Applications on Google Cloud: The what, why, and how of application modernization on Google Cloud
Book information
Description
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 FeaturesDiscover how a sample legacy application can be transformed into a cloud-native application on Google CloudLearn where to start and how to apply application modernization techniques and toolingWork with real-world use cases and instructions to modernize an application on Google CloudBook 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 learnDiscover the principles and best practices for building cloud-native applicationsStudy the six Rs of migration strategy and learn when to choose which strategyRehost a legacy enterprise application on Google Compute EngineReplatform an application to use Google Load Balancer and Google Cloud SQLRefactor into a single-page application (SPA) supported by REST servicesReplatform an application to use Google Identity Platform and Firebase AuthenticationRefactor to microservices using the strangler patternAutomate the deployment process using a CI/CD pipeline with Google Cloud BuildWho 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. Table of ContentsCloud-Native Application FundamentalsEnd-to-End Extensible Tooling for Cloud-Native Application DevelopmentCloud-Native Architecture Patterns and System Architecture TenetsChoosing the Right Compute OptionChoosing the Right Database and StorageImplementing a Messaging and Scheduling SystemImplementing Cloud-Native SecurityIntroducing the Legacy ApplicationThe Initial Architecture on Google Compute EngineAddressing Scalability and AvailabilityRe-Platforming the Data LayerDesigning the Interim ArchitectureRefactoring to MicroservicesRefactoring the Frontend and Exposing REST ServicesHandling Eventual Consistency with the Compensation PatternOrchestrating Your Application with Google Kubernetes EngineGoing Serverless with Google App EngineFuture Proofi ng Your App with Google Cloud Run (N.B. Please use the Look Inside option to see further chapters) Cover Title page Copyright and Credits Dedication Contributors Table of Contents Preface 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 About Packt Other Books You May Enjoy Index
Similar books
The Definitive Guide to Modernizing Applications on Google Cloud: The what, why, and how of application modernization on Google Cloud
2022 · EPUB
MySQL® Notes for Professionals book
2018 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
Session C11: Ancient Cultural Landscapes in South Europe – their Ecological Setting and Evolution, Session C22: Gardeners from South America, Session S04: Agro-Pastoralism and Early Metallurgy Sessions, Session WS29: The Idea of Enclosure in Recent Iberian Prehistory, Session C88: Rhytmes et causalites des dynamiques de l'anthropisation en Europe entre 6500 ET 500 BC: Hypotheses socio-culturelles et/ou climatiques: Proceedings of the XV UISPP World Congress (Lisbon 4-9 September 2006) / Actes du XV Congrès Mondial (Lisbonne 4-9 Septembre 2006) Vol.36
2010 · PDF
THE BRITISH ARMY IN INDIA: ITS PRESERVATION BY AN APPROPRIATE CLOTHING, HOUSING, LOCATING, RECREATIVE EMPLOYMENT, AND HOPEFUL ENCOURAGEMENT OF THE TROOPS. with AN APPENDIX ON INDIA : THE CLIMATE OP ITS HILLS ; THE DEVELOPMENT OF ITS RESODRCBS, INDUSTRY, AND ARTS ; THE ADMINISTRATION OF JUSTICE ; THE BLACK ACT ; THE PROGRESS OF CHRISTIANITY ; THE TRAFFIC IN OPIUM ; THE VALUE OF INDIA ; PERMANENT CAUSES OF DISAFFECTION, AND OF THE RECENT REBELLION ; THE TRADITIONARY POLICY; MISGOVERNMENT BY NATIVE RULERS ; ANNEXATIONS OF THEIR TERRITORY, ETC.
1858 · PDF
Idries Shah 27 Books Collection : A Perfumed Scorpion, A Veiled Gazelle, Caravan of Dreams, Darkest England, Destination Mecca, Evenings with Idries Shah, Knowing How to Know, Learning How to Learn, Letters and Lectures of Idries Shah, Neglected aspects of Sufi study, Observations, Oriental Magic, Reflections, Seeker after Truth, Special Illumination, Special Problems in the study of Sufi ideas, Sufi thought and action, Tales of the Dervishes, The Dermis Probe, The Elephant in the Dark, The Englishman Handbook, Idries Shah Antology, The Magic Monastery, The natives are restless, wisdom of the Idiots PDF.
2022 · PDF
The travels of Capts. Lewis and Clarke from St. Louis, by way of the Missouri and Columbia rivers, to the Pacific ocean; performed in the years 1804, 1805 & 1806, by order of the government of the United States. Containing delineations of the manners, customs, religion, &c. of the Indians, comp. from various authentic sources, and original documents, and a summary of the Statistical view of the Indian nations, from the official communication of Meriwether Lewis. Illustrated with a map of the country, inhabited by the western tribes of Indians
1809 · PDF