Home Cloud & Networking Google Cloud for Developers

Google Cloud for Developers

By Hector Parra Martinez
books-svg-icon Book
eBook $35.99 $24.99
Print $44.99
Subscription $15.99 $10 p/m for three months
$10 p/m for first 3 months. $15.99 p/m after that. Cancel Anytime!
What do you get with a Packt Subscription?
This book & 7000+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook + Subscription?
Download this book in EPUB and PDF formats, plus a monthly download credit
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook?
Download this book in EPUB and PDF formats
Access this title in our online reader
DRM FREE - Read whenever, wherever and however you want
Online reader with customised display settings for better reading experience
What do you get with video?
Download this video in MP4 format
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with video?
Stream this video
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with Audiobook?
Download a zip folder consisting of audio files (in MP3 Format) along with supplementary PDF
What do you get with Exam Trainer?
Flashcards, Mock exams, Exam Tips, Practice Questions
Access these resources with our interactive certification platform
Mobile compatible-Practice whenever, wherever, however you want
BUY NOW $10 p/m for first 3 months. $15.99 p/m after that. Cancel Anytime!
eBook $35.99 $24.99
Print $44.99
Subscription $15.99 $10 p/m for three months
What do you get with a Packt Subscription?
This book & 7000+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook + Subscription?
Download this book in EPUB and PDF formats, plus a monthly download credit
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook?
Download this book in EPUB and PDF formats
Access this title in our online reader
DRM FREE - Read whenever, wherever and however you want
Online reader with customised display settings for better reading experience
What do you get with video?
Download this video in MP4 format
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with video?
Stream this video
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with Audiobook?
Download a zip folder consisting of audio files (in MP3 Format) along with supplementary PDF
What do you get with Exam Trainer?
Flashcards, Mock exams, Exam Tips, Practice Questions
Access these resources with our interactive certification platform
Mobile compatible-Practice whenever, wherever, however you want
  1. Free Chapter
    Chapter 1: Choosing Google Cloud
About this book
As more organizations embrace cloud computing, developers new to the cloud often feel overwhelmed by cloud migration and code running directly on the cloud. Google Cloud for Developers comes packed with practical tips and expert advice to accelerate your application development journey and help you unlock the full potential of cloud computing. You’ll begin by understanding and comparing all the available options to run your code. You’ll write, deploy, monitor, and troubleshoot your code without leaving the Google Cloud IDE while selecting the best option – serverless or GKE containers – for each use case. After that, you’ll get to grips with the basic Google Cloud infrastructure services and connect your code with public APIs. This will help you add features to your application, such as language translation and object detection in images or videos. Furthermore, you’ll explore a comprehensive list of tips and best practices to make your migration smooth. You’ll also gain the necessary knowledge to write code from scratch, by employing the basics of hybrid cloud applications and build services that can run virtually anywhere. By the end of this book, you’ll be well equipped to carry out the application development process and successfully move your code to Google Cloud.
Publication date:
May 2023
Publisher
Packt
Pages
364
ISBN
9781837630745

 

Choosing Google Cloud

I have written this book with a clear purpose in mind: to make it as easy as possible for developers to start writing, running, profiling, and troubleshooting their code in Google Cloud. Indeed, I’m a developer too, and I would love to share my story so I can better explain why I think, first, that you should be writing code on the cloud and, second, why, in my opinion, Google Cloud is the best option to do so nowadays.

We’ll cover the following main topics in this chapter:

  • My story as a developer
  • Project management, Agile, DevOps, and SRE
  • Introducing Digital Transformation
  • Why should you run your code on the cloud?
  • Introducing Google Cloud
  • Why should you choose Google Cloud?
 

My story as a developer

I got my first computer in 1987 as a gift from my parents. I must admit that I chose an Amstrad CPC 464 because it came bundled with a few cassette tapes with games:

Figure 1.1 – Amstrad CPC 464 (author: Bill Bertram, source: https://en.wikipedia.org/wiki/Amstrad_CPC#/media/File:Amstrad_CPC464.jpg)

Figure 1.1 – Amstrad CPC 464 (author: Bill Bertram, source: https://en.wikipedia.org/wiki/Amstrad_CPC#/media/File:Amstrad_CPC464.jpg)

I used to play some of those games during my initial days with the computer, but they were unfortunately quite boring and primitive. One of them was called Animal, Vegetal, Mineral and it especially caught my attention. It was a very simple text game that tried to guess any animal, plant, or mineral that you could think of as soon as possible, by asking questions such as is it a vegetable?, is it green?, and is it a lettuce?

I have always been a very curious person and started to think how that game could work, and mentally pictured some kind of tree structure organizing all the information about potential answers so that the answers provided to the questions could help the code decide which leaf of that tree to traverse. As you can see, my mind was already a good fit for data structures, wasn’t it?

The CPC 464 came with a small book, which was one of the reasons why I became a developer (I’ll leave the other story about reverse engineering the protection scheme of a Lemmings game for another time). The title of the book in English was called Basic Reference Manual for Programmers. I loved reading at that age, indeed the worst punishment I could get was not being allowed to read at night, but this manual surprised and entertained me even more than the sci-fi classics I was used to reading because it opened the door to learning and fostered my digital creativity at the same time:

Figure 1.2 – CPC-464 Basic Reference Manual for Programmers

Figure 1.2 – CPC-464 Basic Reference Manual for Programmers

One step at a time, I was able to learn how to code in Basic on my own and implemented an even more primitive version of the game I mentioned earlier. But much more important than that, I loved the experience and decided at quite a young age that computers in general, and programming, in particular, would both be core parts of any professional career I would choose in the future.

Programming at that time was like writing with a pen on a blank piece of paper but using the bundled and primitive Line Editor application instead. In 1985, I just had that Basic manual to learn and get inspiration from. Forget about autocompletion, online help… and, oh my God, there was no Stack Overflow! Just take a look:

Figure 1.3 – Amstrad screen with Basic code

Figure 1.3 – Amstrad screen with Basic code

In the following years of my professional career, I had the chance to start working with Unix and Linux systems and started using vi and emacs as code editors for shell and Perl scripts, together with code written in C. I have always felt quite comfortable with the console, even for editing code, but I have to admit that graphical and integrated interfaces were game-changers.

A few years later, I moved to a pharma company where the presence of Windows systems was much more frequent. That meant meeting Microsoft’s Visual Studio UI for the first time, and I must admit it was a very pleasant surprise. Coding in Visual Basic felt different when compared with my good old Amstrad CPC and exploring interface design was a very interesting experience. I also started using Notepad++ for my PHP, Perl, and bash scripts. It was great to see how all these applications added new features year after year.

But I still realized I had to create everything from scratch whenever I started working on a new project, and the time required to develop an application or service was just too long.

Fortunately, nowadays, there are a lot of different integrated development environments (IDEs) to choose from, with amazing features such as code completion, code control integration, online references, and samples, which make writing code a much more enjoyable experience. I love the idea of using web-based IDEs, which in my opinion make the experience comfortable. Being able to open a browser and have access to an IDE full of options is just amazing!

Visual Studio Code (https://code.visualstudio.com/) is one example that I use quite often when I develop applications for Google Cloud. Just compare the following screenshot with the previous one from the Amstrad CPC...

Figure 1.4 – Interface of Visual Studio Code

Figure 1.4 – Interface of Visual Studio Code

And we are getting closer and closer to code being automatically written by just providing a summary of what the piece of code should do (https://www.forbes.com/sites/janakirammsv/2022/03/14/5-ai-tools-that-can-generate-code-to-help-programmers/).

However, what I love about developing for the cloud is how easy it is to integrate external services that provide advanced features, or how accessible architecture patterns, reference implementations, or sample code are. Now, I can put together pieces of code during a single day of work that can do much more than what I could achieve years ago working for 2 weeks.

During my first few months at Google, I worked on a solution that analyzed display ads and let advertisers know what elements worked better. Knowing whether ads with a palm tree worked better than those with a swimming pool, or whether an image of a couple with a baby got more clicks than one with a group of friends was cool.

And implementing this application was reasonably easy thanks to what Google calls the Cloud Vision API, an AI-based service able to detect objects, text, and colors on an image. Imagine how long it would take me to develop this system on my own. I will admit it: I would never have been able to do it. But now, it just takes a few minutes to integrate the API of this service with my code.

And the same happens with other key services, such as storage, messaging queues, databases, and many others that we will cover later in this book. I can say loud and clear that Google Cloud has changed the way I understand and conceive software development. Not only can I develop applications much faster and much more securely but I can also deploy them much more comfortably and make them available to any amount of users worldwide. And all of this can be done from a browser running on my laptop.

Now, I can focus my time on innovative applications and use different components, which make use of cutting-edge technologies, to develop and deploy these applications in record time. And this is what Google Cloud can do for you, too.

So, long story short, after spending endless days fixing the effects of bad initial designs and upgrading hardware, operating systems, and applications, I realized that it would be much better if I could design and build resilient and distributed applications while reusing cutting-edge components and services, which would scale great and deploy faster, and try to decouple them from the hardware and the operating system.

But when we talk about developing, it’s not just writing code but also getting to identify what problem or challenge needs to be solved and decide how we can provide a solution that works. And doing all of this properly is the real challenge.

In my case, I was lucky because, just before joining Google, my employer happened to start exploring ways to make projects shorter and more successful. That’s how I became familiarized and started to use project management, Agile, DevOps, and, once I joined Google, Site Reliability Engineering (SRE) practices.

Let’s discuss what these are and how they can help developers.

 

Project management, Agile, DevOps, and SRE

Organizations put a lot of effort into minimizing the waste of time and money in projects since both are frequently scarce. Being able to anticipate bottlenecks and blockers can help reduce the chances for a project to fail.

And it is here that project managers become the key players. Among other tasks, they are responsible for identifying stakeholders, dividing the work into tasks, assigning times to each activity, and following up to ensure that everything is completed on time.

Traditional project management used the so-called waterfall methodology, which divides a project into different steps that are completed in sequential order one after another: requirement gathering, design, implementation, testing, and maintenance.

However, there can be projects that may run for much longer than planned due to different reasons – for example, wrong or incomplete initial assessments leading to undetected dependencies, or never-ending tasks that block others.

Also, projects managed using waterfall methodologies are more rigid in terms of features. As these are defined in the initial phases, any changes due to unexpected reasons, such as a feature not being needed anymore or becoming obsolete, could derail the project.

Project management has evolved and one of the most common practices to reduce the risk of long delays is to split the project into different phases of incremental complexity, also known as sprints, while following an iterative approach instead of a linear one. These practices were introduced in more recent methodologies, such as Agile, which aim to speed up the progress of projects and offer tangible results as soon as possible.

In Agile and similar methodologies, a Minimum Viable Product (MVP) can be provided after completing just one or a few of the initial code sprints; then, the team will work on improving it using an iterative approach that adds new features and capabilities. It fixes any found bugs in each new sprint until the project meets all the requirements and is then considered to be finished.

The following diagram summarizes the different phases for each sprint:

Figure 1.5 – Agile development phases

Figure 1.5 – Agile development phases

Agile is a project management methodology aimed at getting an MVP ready earlier, but it needs a compatible process on the development side to ensure agility. And here is where DevOps comes to the rescue.

DevOps is a set of practices that aims to increase the software delivery velocity, improve service reliability, and build shared ownership among software stakeholders. Many organizations use DevOps to complement Agile project management methodologies and reduce the lead time – that is, how long it takes for a team to go from committing code to having code successfully deployed and running in production:

Figure 1.6 – DevOps development cycle (source: https://nub8.net/wp-content/uploads/2019/12/Nub8-What-is-Devops-1-min.png)

Figure 1.6 – DevOps development cycle (source: https://nub8.net/wp-content/uploads/2019/12/Nub8-What-is-Devops-1-min.png)

By implementing DevOps, you can improve a lot of your development metrics by increasing the speed of your deployments, reducing the number of errors in these deployments, and building security from the start.

These methodologies are very interesting for developers, but agility can only be achieved if the underlying infrastructure components are also compatible with fast deployments. For example, running short and fast sprints will not make sense at all in a platform where virtual machines are provided no earlier than 3 days after being requested and databases after 5 (and I have seen that happen, I promise).

An environment that can help you speed up all your processes is the best option, not only for developers but for everyone involved in IT projects. As we’ll see shortly, the cloud is an extremely good option if you use Agile methodologies, are a big fan of code sprints, or want to implement DevOps in your organization.

And if DevOps helps automate deployments, SRE can also help in a later stage by automating all the manual tasks required to keep your environments up and running, such as those included as part of change management or incident response processes. And guess what – the cloud is a great place to implement SRE practices, too! To learn more about SRE, visit https://sre.google/.

If you are new to concepts such as Agile or DevOps, you may still be wasting a lot of your precious time as a developer doing the wrong kind of things. You should be spending most of your hours on innovating, thus contributing to the Digital Transformation of your team and the whole organization. We’ll use the next section to explain what Digital Transformation means and why it is really important and should be appropriately prioritized if it hasn’t been already.

 

Introducing Digital Transformation

I can imagine that many of you, while reading the first part of this introductory chapter, will have remembered your very own unpleasant experiences of working with infrastructure, applications, and architectures that started to grow and run out of resources due to a limited physical or virtual on-premises environment, a monolithic or overcomplicated initial design that made the application or service die of success after growing much more than expected and that you had to fix for good, or data split among so many databases in the organization that a minor update in the schema of a supposedly rarely used table broke most of the corporate applications.

The situations I just pictured are quite common among organizations that are still using an important amount of their IT time to decide where their infrastructure should run. And that’s probably because they haven’t completed their Digital Transformation yet. Even if you work for a start-up in its first stages, you may still be asking yourself these kinds of questions today. If that is the case, you should embrace the practices of digital transformation starting today.

The reason is that all these sadly common situations are incompatible with innovation. And IT professionals in organizations where innovation is constantly postponed because there are other higher priorities will become either outdated or burnt out, if not both, over time. If we combine this golden jail scenario with the burden of system and infrastructure migrations, there is a lot of precious time wasted on tasks that developers and engineers hate, and that don’t add any value to the organization.

Let’s say it loud and clear: if you want to innovate and if you want to be disruptive, you should focus your efforts on transforming or creating an organization where everyone can drive innovation. Otherwise, you will be wasting precious time and resources focusing on the wrong tasks.

Rob Enslin, former President of Global Customer Operations for Google Cloud, mentioned a few areas to focus on during a digital transformation process in a blog post from the Google Cloud website: https://cloud.google.com/blog/topics/inside-google-cloud/innovation-in-the-era-of-the-transformation-cloud. This list is, in my opinion, a very good summary of four of the main pillars of digital transformation, where organizations should put their efforts to free time and resources and be able to innovate more.

Let’s comment on each of these pillars:

  • Accelerate the transformation, while also maintaining the freedom to adapt to market needs. This is a very important point because while the digital transformation should happen in a reasonable amount of time, the process itself needs to be flexible too; otherwise, it may fail miserably if either the market or any other important external variable suddenly changes without prior notice. For example, during the pandemic, many companies were forced to speed up their digital transformation, and those who were ready to provide remote working capabilities for their employees earlier suffered less from the effects of the lack of productivity during those months that all of us had to spend working from home.
  • Make every employee, from data scientists to sales associates, smarter with real-time data to make the best decisions. First-party data is power; however, it is often split into silos across an organization. A digital transformation should break down these silos by centralizing, deduplicating, and consolidating all data sources so that all the information is available to all members of the organization together with real-time insights that each department can use to make their own informed strategical decisions.
  • Bring people together and enable them to communicate, collaborate, and share, even when they cannot meet in person. After the pandemic, it’s even more clear that physical distance should not be a stopper, and all cultural elements of the organization should be replicable for people working remotely too so that people can also collaborate and share comfortably when they are far away from each other. Consider this as flexibility seen from a very specific angle.
  • Protect everything that matters to your organization: your people, your customers, your data, your customer’s data, and each transaction you undertake. Security is more important than ever, especially now that companies are using the power of technology to provide better services, and it should be a key element in any modern company transformation plan. Your data is your treasure and, together with your intellectual property, it might be what differentiates your organization from the competition. But it is also your responsibility to keep all your data safe, even more so when it probably contains personal and private information about your customers.

Rob summarizes these four pillars into their corresponding objectives: application and infrastructure modernization, data democratization, people connections, and trusted transactions. Any organization able to meet these objectives will have much more time and resources to dedicate to innovation.

If you read the previous paragraph carefully, you will realize that we developers are the key players in each of the four pillars of Digital Transformation, one way or another. During the digital transformation of an organization, developers will be working hand in hand with engineers on application and infrastructure modernization, which should be achieved by simplifying monolithic architectures by splitting them into elastic microservices. These apps and services will be using data as an input, and probably also generating data and insights as an output in many of the cases, so they will benefit from both the data centralization and the democratization mentioned earlier, and code should become simpler once data is easier to access.

And being connected to the rest of the team will also be important to make sure that our code meets everyone’s needs. If we work using sprints, we need to be aligned with the rest of the team, even if each of us is located in a different office, country, or even continent. Finally, security is the key to ensuring that our apps and services are safe to be used and that our customers trust us more than ever.

Designing a Digital Transformation plan is not easy, and that’s why there are a lot of companies working to help others succeed on their transformation journey. Some companies can help you design and execute the plan, but many others have created platforms that can make things much easier.

Some years ago, tech giants had the idea of abstracting the infrastructure up to the point that the customer wanted, letting organizations focus on what they love to do: architect, write, and run modern applications, centralize their data, make the most out of it, and get people connected, all of it in a secured platform. And guess what – Google Cloud is one of them.

 

Why should you run your code on the cloud?

There are a few reasons why I would recommend developers run their code on the cloud.

First of all, let me say once again: if you are spending too much time setting up servers, installing operating systems, deploying patches, and performing migrations, then you simply deserve better. I’ve been there and I can’t put into words how happy I felt after I left it behind. I used to dedicate 20% of my time (and much longer on specific occasions) to maintaining, troubleshooting, and supporting the operating system, applications, and database. Since I joined Google, I can use that extra time to learn, brainstorm innovative solutions with my team, or write better code. I also think that code is poetry (https://www.smashingmagazine.com/2010/05/the-poetics-of-coding/), so IMHO, inspiration arrives better when we have more time and less pressure.

Besides, most cloud-based services offer customizable infrastructure components, or at least different sizes, so you can still have a reasonable degree of control over where your code runs. In summary, running code on the cloud will provide you with more options and better performance and will allow you to focus your time on coding, not on other distracting tasks.

Also, a cloud provider has many data centers in different locations across the world. If the start-up or organization you work for is planning to grow and have customers in more than one market at some point, a single server or even a few servers in a single location may not be enough to offer decent-quality service. This is becoming more and more important as real-time services become predominant and latency has to remain low.

If you can anticipate that you may suffer a potential scaling or latency problem in the future, already being in the cloud can make things much easier if you need to replicate your architecture in another continent for local users. Having infrastructure located closer to users can also help you meet legal requirements, as some countries require data or processes to be located in-country.

And speaking about scaling, the pay-per-use model is reasonably compatible with organizations growing because you will use more resources as you make more business and generate more revenue. Besides, most cloud providers will offer bigger discounts as you increase your usage. And if you have very particular needs, you can use huge clusters for a few minutes or hours and pay a very reasonable price. Indeed, you can have thousands of servers at your command at a very affordable price, something that would be prohibitive in an on-premises data center.

If your infrastructure is affected by traffic peaks, the cloud is also your place to go. If you have a lot of visitors on Sundays, your website crashes during Black Friday, or your app is usually down during the Christmas holiday season because of seasonality peaks, you may have decided not to increase the resources available for your application or website because, during most of the year, it can handle the average demand. With a cloud provider, you can scale up your application automatically when there is a peak and you can do the contrary too – that is, you can scale it down while your customers are sleeping so that you can reduce your costs. You can also schedule some tasks to run when the data center has less workload and save more money. We will discuss all of these opportunities later in this book.

What if you want to implement Agile and DevOps practices? Cloud providers have very fast provisioning times, so you can deploy complex applications and the infrastructure associated with them, as it is no longer static, in a matter of minutes. And that makes a huge difference, which allows you to use that extra time for better testing or even to do more iterations, which in the end will translate into better code.

And regarding the everyday life of a developer, if you are worried because you may not be able to keep on using your favorite IDE or fear that latency while writing code could be a problem, or that processes might be more complicated, just give it a try – you will be delighted. Hosting your repository in the cloud should be easy and you will not notice the difference. And you can connect from anywhere, even while commuting back home if you realize that you forgot to submit a very important CL before leaving the office.

I hope that you have been convinced that running your code on the cloud is a great idea. Now, let me show you why I think that Google Cloud is the best cloud provider to do so.

 

Introducing Google Cloud

Cloud providers offer different infrastructure components and managed services on demand using a pay-per-use model so that you don’t have to worry about migrations, updates, patches, and similar time thieves.

Google’s specific vision is to run their customer’s code (and any other stuff they want to bring over to the cloud) on the same infrastructure used by its well-known products with billions of users, such as Google Search, Gmail, Google Drive, and YouTube. Using these same services is a guarantee of scalability and reliability. And this is what Google calls Google Cloud, a public cloud provider that many companies choose for their digital transformation journey.

If you are new to Google Cloud or are unsure about the number of products it offers, then it’s a perfect time to visit Google's Developer cheat sheet (https://googlecloudcheatsheet.withgoogle.com/) so that you can understand the real magnitude of this offering; there are hundreds of services, organized in different areas, which allow you to accomplish virtually any task on the cloud. When you load the cheat sheet, you will see all the products, along with their corresponding names and icons, organized in different areas with different colors. You can scroll down to see the whole list; putting your mouse cursor over any of the tiles will show a very short description of each product.

A zoomed-out view of the cheat sheet looks like this:

Figure 1.7 – Zoomed-out view of the Google Cloud cheat sheet (source: https://googlecloudcheatsheet.withgoogle.com/)

Figure 1.7 – Zoomed-out view of the Google Cloud cheat sheet (source: https://googlecloudcheatsheet.withgoogle.com/)

If you feel overwhelmed at this point, that’s OK. I do too. This book is not aimed at going through that whole list, but to guide you on a quick and easy path to get you to write, run, and troubleshoot your code as easily as possible in Google Cloud. This book will cover those services directly or indirectly related to code development.

The product and service offerings of Google Cloud cover many different areas. I have selected just a few of the main services so that you can get a better idea of what I’m talking about:

  • Computing resources: Virtual machines running in Google’s Data Centers.
  • Serverless platforms: Run your code without having to worry about the hardware or the operating system, including services such as Cloud Functions or App Engine.
  • Containerized applications: You can use either Cloud Run or Kubernetes Engine.
  • Databases: These offer all flavors: relational, NoSQL, document, serverless, and memory-based. They even offer managed instances of MySQL, PostgreSQL, and SQL Server and tools to easily migrate your database from Oracle, MySQL, and PostgreSQL to Cloud SQL.
  • Storage: This is either for files or any kinds of objects and supports many different scenarios in terms of availability and retention.
  • Data analytics: You can do this with a complete set of tools to help you ingest, process, and analyze all your data.
  • Artificial intelligence and machine learning: These help turn your data into insights and generate models able to make predictions.
  • Networking: This offers cloud and hybrid connectivity security solutions, together with load balancing and content distribution services, among many others.
  • Mobile platform: This provides tools to help you make the most out of your mobile applications.
  • Hybrid and multi-cloud: These options use Anthos to migrate, run, and operate your applications anywhere.
  • Migration tools: These make it easier for you to move your stuff from an on-premises environment or other cloud providers.

But where are the services for developers? I’m a really bad guy and left them out of the previous list on purpose so that you didn’t skip the rest. These are some of the development-related services that you can enjoy in Google Cloud, in addition to those already mentioned:

  • Development tools and services, such as command-line tools and libraries, CloudShell, Cloud Source Repositories, Tools for PowerShell, Cloud Scheduler for task automation and management, Cloud Code, and IDE support to write, run and debug Kubernetes applications.
  • DevOps continuous integration and continuous delivery (CI/CD) tools and services, allowing fast and safe code deployments with low error rates. Use Cloud Build for CI/CD, Artifact Registry to store build artifacts and dependencies, Google Cloud Deploy for fully managed purposes, Google Kubernetes Engine, Tekton for declaring CI/CD pipelines, and Cloud Deployment Manager to create and manage Google Cloud resources. Operations and monitoring tools and services are also provided, built to help you once your code is running in production. Log, Trace, Profile, and Debug can be used to troubleshoot any issue.
  • A long list of public APIs provides a wide range of advanced features offered using a pay-per-use model that you can use to modernize your applications very quickly.

Indeed, the Google Cloud website has a page with a list of all the developer tools: https://cloud.google.com/products/tools.

Combine this a wide variety of managed services with the ability to connect your code to a huge API platform and ecosystem, allowing you to manage all your Google Cloud products and services. Besides, some of these Google Cloud APIs provide access to a set of machine learning that’s pre-trained with advanced capabilities using a pay-per-use model, such as the following:

  • Vision API: Able to identify objects, texts, colors, and faces in images and videos, and also flag explicit content
  • Speech-to-Text: Used to transcribe audio into text (and vice versa) in more than 125 languages and variants
  • AutoML: Allows you easily create, train, and productize custom machine learning models, even if you don’t have any experience
  • Natural Language AI: Allows you to analyze text, understand its structure and meaning, extract sentiment, and annotate it
  • Cloud Translation: This is very useful for translating texts from one language into another
  • Dialogflow: This can help you implement chat or voice conversation agents easily

These APIs can also help you simplify and modernize your applications by integrating the corresponding services to provide advanced capabilities with a few lines of code.

You can find the full list of APIs available in Google Cloud here: https://cloud.google.com/apis.

Technical documentation and videos are also available to help you solve some of the most common developer problems and use cases. You can read more about them here: https://cloud.google.com/docs/get-started/common-developer-use-cases.

 

Why should you choose Google Cloud?

There are many reasons why I would recommend you choose Google Cloud, not only to run your code but also to take your organization to the next level, because I picture us, developers, as main actors in any digital transformation process.

Summarizing all the topics previously covered in this chapter, these are the six key factors I would consider when choosing a cloud provider, in no particular order:

  • Compatibility with Agile practices and app modernization
  • Capabilities for data democratization
  • People connections
  • Protection and security
  • Level of freedom and use of open software
  • Cost-effectiveness

Note

Apart from my personal opinion, which I have shared during this chapter, to put together a more objective list of reasons why you should choose Google Cloud, let’s review each of these factors and summarize all the information about these topics, all of which can be found on Google Cloud’s website (https://cloud.google.com/why-google-cloud).

Thinking about app modernization and agility, Google Cloud is the first cloud provider to release a platform, Anthos (https://cloud.google.com/anthos), that empowers you to quickly build new apps and modernize existing ones to increase your agility and enjoy all the benefits of the multi-cloud. Also, the managed Kubernetes service seamlessly allows you to implement DevOps and SRE practices with cloud-native tools so that you can deploy your code with agility.

From the data democratization point of view, Google Cloud offers the ability to manage every stage of the data life cycle, whether running operational transactions, managing analytical applications across data warehouses and data lakes, or breaking down rich data-driven experiences. Besides, the key differentiator is that artificial intelligence/machine learning is a core component of the data cloud solution, which helps organizations not only build improved insights available to all members but also automate core business processes using data as the core.

Speaking about bringing people together, in Google Cloud, you can integrate video calling, email, chat, and document collaboration in one place with Google Workspace, which already connects more than 3 billion users. Google Workspace is built with a zero-trust approach and comes with enterprise-grade access management, data protection, encryption, and endpoint protections built in.

Protection is a key element of digital transformation, and Google Cloud can help you defend your data and apps against threats and fraudulent activity with the same security technology Google uses. Google keeps more people safe online than anyone else in the world: billions of users and millions of websites globally. Google pioneered the zero-trust model at the core of its services and operations and enables its customers to do the same. Besides, data is encrypted in transit between their facilities and at rest, ensuring that it can only be accessed by authorized roles and services with audited access to the encryption keys.

And if freedom is important for your organization, you should take into account that Google Cloud is the only cloud provider with a clear multi-cloud strategy. In Google Cloud, you can deploy and run each of your applications wherever you want: on-premises, on Google Cloud, or with other cloud providers. Google is also one of the largest contributors to the open source ecosystem, working with the open-source community to develop well-known open-source technologies such as Kubernetes, then roll these out as managed services in Google Cloud to give users maximum choice and increase their IT investments’ longevity and survivability.

Another important point is that Google Cloud is open and standards-based and offers best-in-class integration with open-source standards and APIs, which ensures portability and extensibility to prevent lock-in, with easy interoperability with existing partner solutions and investments.

From a financial point of view, organizations can see significant savings when building on or migrating to a cloud-native architecture on Google Cloud. In addition, a reliable platform with 99.99% availability reduces risk and increases operational efficiency.

In summary, if you choose Google Cloud for your digital transformation, the result will be an organization and its workers being able to take advantage of all of the benefits of cloud computing to drive innovation.

 

Summary

I hope you are convinced about the benefits of choosing Google Cloud and how it is the best platform to help your organization simplify its development and infrastructure-related work to put more focus on innovation by completing your digital transformation, which will help you become much more competitive in your field.

In the next chapter, I will describe how developers work in legacy environments and highlight the differences in development workflows once you move to the cloud in general and Google Cloud in particular.

But before closing this chapter, and especially if you are new to the platform, before your development journey begins, I would recommend you make sure that someone in your organization takes care of building a proper Google Cloud Foundation by completing the 10-step checklist at https://cloud.google.com/docs/enterprise/setup-checklist.

And if you need more details about how to complete these steps, Packt has published an amazing book about it that I had the pleasure to review, called The Ultimate Guide to Building a Cloud Foundation (https://www.amazon.com/Ultimate-Guide-Building-Google-Foundation/dp/1803240857), so that you can start developing with peace of mind, knowing that all the basics have been taken care of.

 

Further reading

To learn more about the topics that were covered in this chapter, take a look at the following resources:

About the Author
  • Hector Parra Martinez

    Hector Parra Martinez worked in Corporate IT for more than 15 years, specializing in Failure Monitoring and Automatic Recovery. Five years ago, he joined Google as a Customer Solutions Engineer, helping the largest customers in Spain and EMEA to make the most out of Google Cloud for their Advanced Marketing Analytics and Data Activation projects in Google Ads and Google Marketing Platform. Hector is a certified Google Cloud Digital Leader and co-leads Google’s ‘Mind the Gap’ program in Spain, created to encourage more young women to pursue science and engineering careers. In his spare time, He is a big fan of retro gaming, TV shows, and electronic music. He also loves traveling with his wife, Eva, and spending quality time with his big family.

    Browse publications by this author
Google Cloud for Developers
Unlock this book and the full library FREE for 7 days
Start now