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/)
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.