ebook img

The Definitive Guide to Modernizing Applications on Google Cloud: The what, why, and how of application modernization on Google Cloud PDF

488 Pages·2022·9.23 MB·english
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview The Definitive Guide to Modernizing Applications on Google Cloud: The what, why, and how of application modernization on Google Cloud

The Definitive Guide to Modernizing Applications on Google Cloud The what, why, and how of application modernization on Google Cloud Steve (Satish) Sangapu Dheeraj Panyam Jason Marston BIRMINGHAM—MUMBAI The Definitive Guide to Modernizing Applications on Google Cloud Copyright © 2021 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. Group Product Manager: Rahul Nair Publishing Product Manager: Rahul Nair Senior Editor: Arun Nadar Content Development Editor: Nihar Kapadia Technical Editor: Shruthi Shetty Copy Editor: Safis Editing Project Coordinator: Ajesh Devavaram Proofreader: Safis Editing Indexer: Subalakshmi Govindhan Production Designer: Alishon Mendonca First published: December 2021 Production reference: 2121121 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-80020-979-4 www.packt.com To the memory of my father, Ishwar, and my mother, Savithri, for their sacrifices and exemplifying that hard work has positive outcomes. To my wife, Sanju, for being my loving and supportive partner, and to my children, Riya and Risha, for keeping us on our toes. – Steve (Satish) Sangapu To my parents, who have encouraged me in writing this book, with their push for tenacity ringing in my ears. – Dheeraj Panyam Contributors About the authors Steve (Satish) Sangapu has been working with software since 2000. He specializes in migrating and modernizing applications from monoliths to containerized microservices as well as creating data engineering pipelines to mine vast amounts of structured and unstructured data. He has extensive experience successfully leading large, cross-functional, geographically dispersed teams utilizing modern Agile development methodologies while collaborating effectively with product teams in creating high-performance, fault-tolerant, and high- availability systems. He also holds seven patents from the United States Patent and Trademark Office and certifications from Carnegie Mellon Software Engineering Institute and Google Cloud. I want to thank the people who have given me and the people around me love and support in different ways in my life. Dheeraj Panyam has been working in the IT industry since 2000. His experience spans diverse domains (optical, telecom, retail, and healthcare) and covers all phases of the SDLC, including application development, production support, QA automation, and cloud architecture. He lives in India and collaborates with a Google Cloud consulting company, helping them design solutions and architecture set up on public cloud platforms. He holds multiple Google Cloud certifications in addition to other certifications in networking and testing.(in new line) Jason Marston is a Cloud Solution Architect based in England. He was recruited by Microsoft because of his OSS background. Jason has worked with Java since version 1 and has a long history with open source. He has over 30 years' of experience in developing software and now helps organizations migrate and modernize legacy applications to the cloud. Jason was an SME in the Worldwide Communities project at Microsoft and, as a part of the leadership team for those communities, helped many people solve their problems by adopting Java on Azure. In his spare time, Jason reads science fiction books and has two children who think he is a geek/nerd. About the reviewer Radhakrishnan (Krishna) Gopal is a cloud evangelist, seasoned technology professional, and mentor with over 22 years of industry experience in all major cloud hyperscalers, including AWS, Azure, and Google Cloud. He is currently helping organizations to drive business value through cloud adoption and innovation. He has worked in many facets of IT throughout his career and delivered high-quality, mission-critical, and innovative technology solutions leveraging multi-cloud, data, AI, and intelligent automation. He is a Google Cloud Certified Professional Cloud Architect, Google data engineer, Azure certified solutions architect expert, Azure data engineer, data science associate, AI engineer, and AWS Certified Solutions Architect Associate. He loves to explore new frontiers of technology and impart them in solutions to make his clients very successful. Table of Contents Preface Section 1: Cloud-Native Application Development and App Modernization in Google Cloud 1 Cloud-Native Application Fundamentals The cloud-native ecosystem 4 Applying the 12-factor app Benefits of cloud-native principles on Google Cloud 16 applications 5 Code base 16 Increased speed of delivery 5 Dependencies 17 Increased scalability 6 Config 17 Increased resiliency 7 Backing services 17 Mixed technology stack and workforce 7 Build, release, run 18 Continuous integration and delivery 8 Processes 18 Increased automation 9 Port binding 18 Concurrency 19 Principles of cloud-native Disposability 19 architecture 11 Dev/prod parity 19 Principle 1 – lightweight microservices 11 Logs 20 Principle 2 – leveraging automation 12 Admin processes 20 Principle 3 – DevOps culture 12 Summary 20 Principle 4 – better to go managed 13 Principle 5 – innovate 13 Limitations of microservices 13 viii Table of Contents 2 End-to-End Extensible Tooling for Cloud-Native Application Development Moving past third-party Google Cloud Run 29 services – the beauty of end-to- Features and benefits of Cloud Run 29 end tooling 22 The role of Google Cloud Run in the Google Cloud Code 24 cloud-native app development pipeline 30 Features and benefits of Cloud Code 24 Google Kubernetes Engine 30 The role of Cloud Code in the cloud- Features and benefits of GKE 30 native app development pipeline 25 The role of GKE in the cloud-native app Google Cloud Build 26 development pipeline 31 Features and benefits of Cloud Build 26 Operations suite 31 The role of Cloud Build in the cloud- Features of Google Cloud Monitoring 32 native app development pipeline 27 Features of Google Cloud Logging 32 Google Container Registry 27 The role of the Cloud operations suite Features and benefits of GCR 27 in the cloud-native app development pipeline 33 The next-gen container registry – Artifact Registry 28 Summary 34 The role of GCR in the cloud-native app development pipeline 28 3 Cloud-Native Architecture Patterns and System Architecture Tenets Cloud-native patterns 36 Cloud-native design patterns 40 The scope of cloud-native patterns 37 Microservices 41 Strangler applications 42 Solving challenges with cloud- Decomposition patterns 43 native patterns 37 Event-driven patterns 44 Be proactive, not reactive 38 Command Query Responsibility Scaling and performance 38 Segregation 45 Deployments 39 The saga pattern 45 Resiliency and availability 39 Multiple service instances 46 Monitoring 40 Canary deployments 46 Security 40 Stateless services 46 Table of Contents ix Immutable infrastructure 47 judiciously 49 Anti-corruption layer 47 Hybrid and multi-cloud API composition 47 architecture recommendations 49 Event sourcing 47 Distributed deployment patterns 49 The Retry pattern 48 Redundant deployment patterns 52 Circuit breaker pattern 48 The bulkhead pattern 48 Summary 55 Using the cloud-native pattern Section 2: Selecting the Right Google Cloud Services 4 Choosing the Right Compute Option Five compute options… and Pricing 70 Firebase 60 How important is it to choose Firebase 60 the right option? 71 Cloud Functions 61 Changing compute options 72 GAE 61 Making a decision 72 Cloud Run 63 GKE 65 Summary 74 GCE 67 5 Choosing the Right Database and Storage Storage and database options Additional storage and on Google Cloud – the big three 76 database options 90 GCS – basics 76 BigQuery 91 GCS 78 Filestore 91 Cloud SQL 80 Persistent disks/local solid-state drive Cloud Firestore (previously Datastore) 83 (SSD) (block storage) 91 Cloud Spanner 85 MemoryStore 92 Cloud Bigtable 88 Security and flexibility 92 Wrapping up the big five 90 Summary 92

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.