A High-Level Overview of Cloud Computing
In this post, I want to learn some of the basics of the Google Cloud Platform (GCP). I have previous experience working with Microsoft’s Azure platform, and so I am looking to expand and strengthen my understanding of cloud computing platforms in general as well as Google’s offerings more specifically.
Introduction
Cloud computing platforms in general offer many different services, which customers can pay for without having to manage the resources themselves [1]. Some of the most common services that these platforms offer are data storage capabilities and computing power [1].
The company offering the platform will typically distribute the computing resources over many locations (each location is known as a data center) [1]. Google Cloud Platform, for example, distributes their infrastructure over tens of different regions, which themselves are split up into smaller zones [2]. This distribution helps ensure that the platform is redundant and protected against outages, and customers can also minimize latency by connecting to the region nearest to them [4]. Some resources are global (they can be accessed from any region) while other resources can only be accessed by resources in the same zone or region [4].
Cloud computing is a useful service because it affords people access to extremely powerful computing resources without having to invest the money themselves in setting up those resources [1]. Many cloud computing providers allow customers to pay as they use the services, which saves them a large up-front capital investment because they don’t have to buy the computers themselves [1]. Customers can also quickly access more resources if necessary (or scale down their use as needed), which again is very convenient considering that the alternative would be to buy more computing resources yourself [3]. However, this cost structure can also induce a little anxiety in the customer, because it is possible to make mistakes (like leaving an instance running) that cost a lot of money!
Google Cloud Platform is one example of a cloud computing platform, and it offers a lot of support for data storage and machine learning [2]. Apparently, GCP is built on the same infrastructure that Google uses for its other products (like GMail and Google Drive) [2]. Apparently GCP is actually an umbrella term because it offers over 100 unique services, including computing resources, data storage, networking, support for AI, management tools, etc.
Any work you do with a GCP resource must be part of a project [4]. Projects contain settings and metadata that control how your resources are used. Once you have established a project (and how you are going to pay for it) you can start to use the resources that GCP provides. GCP offers 3 main avenues for leveraging its services: 1) the console, 2) the command-line interface (CLI) and 3) client libraries [4]. The console is a web-based GUI that you can use to manage your projects [4]. The GCP CLI allows you to do the same thing from your terminal, either directly from your own computer or via a browser window [4]. The client libraries allow you to connect your Node.js and Python projects directly to GCP services, as well as allowing you to manage the resources that you are paying for [4].
Typically when you use a cloud computing platform for AI-related work, one of the first things you will have to do is create a virtual machine to run your code [3]. Typically GCP offers standard virtual machines (with standardized specifications for number of cores, size of RAM, operating system, etc.), but it also allows you to customize your virtual machine so that you can choose optimal specifications for your application (and budget) [3].
Once you have set up your virtual machine, you can interact with it using APIs (application programming interfaces) that are not unique to GCP [3]. That is, if you choose to use GCP to host your work, you are not locked into using a code base that you cannot transfer anywhere else - a lot of the code supporting interfacing with GCP can be used on other cloud computing platforms too [3].
This concludes a brief overview of how Google has set up its cloud computing platform.
References
[1] “Cloud computing.” Wikipedia. https://en.wikipedia.org/wiki/Cloud_computing Visited 7 Apr 2023.
[2] “Google Cloud Platform.” Wikipedia. https://en.wikipedia.org/wiki/Google_Cloud_Platform Visited 7 Apr 2023.
[3] Kevadiyasmeet. “What is Google Cloud Platform (GCP)?” Geeks for Geeks. 22 Jun 2022. https://www.geeksforgeeks.org/what-is-google-cloud-platform-gcp/ Visited 7 Apr 2023.
[4] “Google Cloud overview.” Google Cloud. https://cloud.google.com/docs/overview Visited 7 Apr 2023.