Google Cloud Platform (GCP) is an initiative by Google to provide cloud computing services to the customers. These services run on the same infrastructure and platform on which Google services such as Gmail, YouTube, etc run. GCP was launched on April 7, 2008, and the complete set of services and the platform is written in C++, Python, Go, Java and Ruby. GCP offers a number of resources with a different way to access those resources.
Resources offered by Google can be broadly categorized into physical resources and virtual resources. Physical resources include assets such as hard disk drives (HDDs), computers, etc, and virtual machines (VMs) come under the category of virtual resources that are ubiquitously present round the globe. These data centers are assigned for a particular region (Asia, North America, South America, etc) and each region is further divided into zones. These zones of a particular region are isolated from each other and are identified by a unique name. These unique names are a combination of the name of the region and the name of the zone. For example, the zone c of the East Asia region will be named as Asia-east1-c. This distribution of resources is done for specific reasons. First, redundant data is stored at multiple locations which act as a backup in case of system failure. Second, creating zones reduces the distance between the resources and the clients which reduces communication latency and increases efficiency by fastening the working environment. There are rules to access these distributed resources.
Types of resources offered by GCP
Global, regional and zonal resources are the levels at which resources can be accessed. Global resources include disk snapshots, networks, and preconfigured disk images. These can be accessed by all the other resources also irrespective of the regions and zones in which they are present. Static IP addresses come under the category of regional resources. Resources in this category have constraints that these can be accessed by other resources located in the exact same region. Resources that have Zonal access are VM instances. These also include different types of VM instances and all types of disks. Zonal access means that these resources can be accessed in the same zone only. Different resources have been kept under different access modes keeping in mind the functionalities performed by these resources.
For example: Let us consider we want to reserve an IP address. Since reserving IP addresses is a regional operation, thus it is kept under the category of regional resources. Similarly, if one wants to create a network, then we know network creation is a global task and it will require many other resources in order to perform its task, thus it is kept under the global category.
To have optimized applications that work with full proficiency, the selection of resources is crucial as well as a tedious task. Thus, it becomes important for the user to know the resources offered and the category each resource belongs to.
Projects in GCP
Project in GCP is the uppermost level under which all the resources are allocated. It is the management entity of the services. No resource can be allocated outside the project. GCP project consists of various parameters. These parameters are permissions, settings, and other meta-data describing the applications. Communication between resources in a project is executed easily (abiding by the accessibility rules of global, regional, and zonal resources). A project can also access resources used by other projects using a shared VPC or Network Peering.
To identify each project uniquely, every project is assigned a project name that is provided by the user, a unique project ID, which can be provided either by the user or can be generated by the GCP and a project number which is assigned by the GCP.
Each project ID is unique and this ID can never be reused for some other project even if the initial project is deleted. Resource names in the same project must be unique though resource names can be repeated while working on different projects. For billing purposes of the used resources, the project is assigned to a billing account. One billing account can be assigned to multiple projects for billing the resources.
Modes to access GCP services
GCP services can be accessed using three ways.
- GCP Console (web-based GUI (graphical User Interface))
- Command-line Interface
- Client Libraries