What this book covers
Chapter 1, Choosing Google Cloud, begins with my own story as a developer and continues to explain how software development has evolved over the years. This chapter also covers the basics of digital transformation and why you should run your code in a public provider in general and on Google Cloud in particular.
Chapter 2, Modern Software Development in Google Cloud, begins by exploring the risks of traditional software development and how modern techniques mitigate these risks. The next part of the chapter covers how Google Cloud provides a set of tools and products that can be used to implement the mentioned modern techniques. The last part covers the different paths to migrate and write code that runs on Google Cloud.
Chapter 3, Starting to Develop on Google Cloud, starts by introducing the Google Cloud web console and then covers all the tools that can be used during the different phases of software development: Cloud Shell and its companion editor for writing code; it also mentions how to integrate Cloud Code in alternative integrated development environments (IDEs) such as Visual Studio Code, Cloud Logging and Cloud Monitoring for observability, and Cloud Trace and Cloud Profiler for troubleshooting.
Chapter 4, Running Serverless Code on Google Cloud – Part 1, covers the first two options for running serverless code on Google Cloud: Cloud Functions and App Engine, including how they work, what their requirements are, and how much they cost. The chapter also uses an example to show how we can use both options to run, test, and troubleshoot our code.
Chapter 5, Running Serverless Code on Google Cloud – Part 2, talks about Cloud Run, the third option available to run serverless code on Google Cloud, and explains the differences between the two environments that can be used. The example from the previous chapter is also implemented using containers, also explaining how to debug our code and how to estimate how much this option costs. The last part of the chapter is used to compare the three available options for serverless code, including some tricks to help you make the best choice.
Chapter 6, Running Containerized Applications with Google Kubernetes Engine, starts with an introduction to Google Kubernetes Engine (GKE), deep diving into the key topics, such as cluster and fleet management, security, monitoring, and cost optimization. The similarities and differences between GKE and Cloud Run are also explained, and tips are provided to help you decide when to use them. A hands-on example where a web application is containerized is also included.
Chapter 7, Managing the Hybrid Cloud with Anthos, starts by enumerating the key points to consider when choosing a cloud provider and how being able to work with different environments and providers simultaneously can be beneficial. Anthos is then introduced as a platform to easily manage hybrid and multi-cloud environments while providing unified management, security, and observability capabilities. After deep diving into Anthos components, concepts, and features, a hands-on example is included that can be deployed to either Google Cloud or Azure to better understand the benefits of Anthos.
Chapter 8, Making the Best of Google Cloud Networking, begins with a brief introduction to networking in Google Cloud, including how regions and zones work and how we can connect to our cloud resources. Next, some of the most important networking services available in Google Cloud are covered, including Cloud DNS, Load Balancing, Cloud Armor, and Cloud CDN. Finally, the two different Network Service Tiers are explained, and a sample architecture is used to showcase many of the network services and products discussed in this chapter.
Chapter 9, Time-Saving Google Cloud Services, this chapter covers some of the basic Google Cloud services that we can use to simplify our development process and our migrations to the cloud, including Cloud Storage to store our files, Cloud Tasks as a managed service for asynchronous task execution, Firestore in Datastore as a NoSQL database, Cloud Workflows to create end-to-end solutions, Pub/Sub for inter-component communication, Secret Manager to store our most sensitive data, and Cloud Scheduler to run our tasks and workflows exactly when we want. Finally, a practical exercise is included that combines most of these services.
Chapter 10, Extending Applications with Google Cloud Machine Learning APIs, explains how we can use Google’s AI services and APIs to easily improve our own code. First, the differences between unstructured and structured data are explained, and then speech-to-text is covered as an example. Then, Cloud Translation is presented as a way to obtain final text files in the same language, and Cloud Natural Language is proposed as an interesting option to analyze these text files. In the next section, Cloud Vision and Cloud Video Intelligence are also presented as an alternative to help us understand the content of images and videos. Finally, a hands-on exercise is used to combine some of the mentioned services.
Chapter 11, Architecture Patterns for Hybrid and Multi-Cloud Solutions, starts by explaining the differences between hybrid and multi-cloud solutions and then justifies why these architectures make sense. Next, a list of some of the best practices to use when designing these kinds of solutions is provided. Then, hybrid and multi-cloud architecture patterns are divided into two different categories, and each of the design patterns is explained, including details such as the recommended network topology to use in each case.
Chapter 12, Practical Use Cases of Google Cloud in Real-World Scenarios, this chapter describes three very different scenarios and goes through the process of deciding which design patterns should be used to modernize and migrate each of them to Google Cloud. The key areas where we should focus our efforts are identified, together with the key decisions we need to take and the right sequence of actions to complete for these migrations to succeed.
Chapter 13, Migration Pitfalls, Best Practices, and Useful Tips, starts by identifying the most common pitfalls that happen while we move or modernize our applications to Google Cloud. Then, a list of best practices to bring our code to Google Cloud is discussed. Tips are included to help you overcome obstacles, handle delicate situations, which are quite usual in this kind of migration, and mitigate the complexity of this kind of process.