GCP -  Computing Resources Guide for Beginners.

GCP - Computing Resources Guide for Beginners.

Table of contents

No heading

No headings in the article.

Google Cloud Platform just like any other cloud providers that you know such as AWS, Azure, and many others, has computing resources that allow you to do some computation virtually without buying a computer or server. this is one of the major aspects of the Cloud. Google Cloud Platform offers a lot of services that can be grouped into several core categories which are :

(I) Computing Resources (ii) Storage Resources (III) Databases (iv) Networking Services (iv) Identity Management and Security (IAM) (v) Development Tools (for Developers) (vi) Management Tools (vii) Specialized Services (such as ML)

we will be talking about GCP computing resources in the easiest way possible.

What is Computing Resources? as the name implies computing means a computer (CPU) and resources. GCP offers a range of Computing services options that are grouped into Infrastructure as a service (IaaS) and Platform as a service (PaaS).

Under Infrastructure as a services (IaaS) computing resources, GCP offers two services which are: (I)Computer Engine (VM) and (ii) Kubernetes Engine. Under Platform as a services (PaaS) Computing Resources, GCP offers three services as well which are: (I) App Engine and (ii)Cloud Function (III) Container services

(I) Compute Engine (IaaS): compute engine is an abstraction of a physical server that has a low-level services Hypervisor to perform computing tasks. The Hypervisor on the GCP compute engine is known as KVM (Kernel Virtual Machine) and it is enhanced with KVM security. what does the KVM hypervisor do? to better understand it, see compute engine as a VMs (a virtual computer), Hypervisor allows you to run multiple guest Operating system in isolation which mean Guest OS doesn't interact with Other Guest Operating system on Hypervisor. Multiple Operating systems are contained on Hypervisor and VM stacked Hypervisor on top as a Host server/ compute engine. For each instance of a guest Operating system is a VM instance.

NOTE: There is one thing you have to understand here, IaaS provides PaaS. which means Infrastructure as a service has a platform as a service stacked on top of them for Developers or cloud users to have access to without going deep down .. Platform as a service operates on Infrastructure as a service. for example, an App Engine runs on compute engine, although App Engine is serverless, that doesn't mean there are no server or computing resources doing the task.

Compute Engine can be used by other GCP services such as App Engine and Cloud Functions and many other Development Tools/services) Because compute Engine is an infrastructure as a service (IaaS), any PaaS can make use of it. I hope you get it now.

ii) Kubernetes Engine (IaaS): Similar to compute Engine, where Hypervisor allows you to host multiple guest OS. in Kubernetes Engine, Hypervisor is replaced with Container Manager in which multiple applications are running on a container and multiple containers are managed by container manager. Kubernetes Engine offers a container manager to manage Pods or sets of containers in isolation and each container utilized the host resources. this means the more powerful and resourceful your Kubernetes engines are, the more the performance of the application running in each container. Both Kubernetes Engine and Compute engine have the option of auto-scaling and you can either scale out or scale up depending on your application needs to maximize the performance of your application running in a container. Kubernetes Engine is a GCP product that allows users to describe the compute, storage, and memory resources they’d like to run their services. Kubernetes Engine then provisions the underlying resources.

(iii) App Engine (PaaS): App Engine is a computing resources service that falls under the platform as a service that uses IaaS as its core of operation. With App Engine, developers need not configure or specify any VMs or Specify Kubernetes clusters. Instead, developers create applications in a popular programming language such as Java, Go, Python, or Node.js and deploy that code to a serverless application environment. App Engine manages the underlying computing and network infrastructure. There is no need to configure VMs or harden networks to protect your application. App Engine is well suited for web and mobile backend applications. There are two types of App Engine specifications or environments and they are as follows: (a) Standard App Engine Environment (b) Flexible App Engine Environment

In a standard App Engine Environment, App Engine runs your application in a language-specific sandbox, so your application is isolated from the underlying server’s operating system as well as from other applications running on that server. The standard environment is well suited to applications that are written in one of the supported languages and do not need operating system packages or other compiled software that would have to be installed along with the application code. for example, a Nodejs application is automatically running in a NodeJS server environment to suit the application requirement inside the App Engine. In a Flexible App Engine Environment, the app engine is not language-specific here, applications are built into images by docker and images are running in a container, App Engine makes use of Kubernetes Engines (IaaS) resources here without needing the developer to set up or do complex tasks. In a flexible environment, you can do a lot of things such as installing libraries or packages to support your application.

(iv) Cloud Function (PaaS): Google Cloud Functions is a lightweight computing option that is well suited to event-driven processing. Cloud Functions runs code in response to an event, like a file being uploaded to Cloud Storage or a message being written to a message queue. Code that runs on Cloud Functions is ephemeral which means that they are expected to be short-lived or terminated after a specific period of time. Cloud functions are often used to call other services or used in an application for push notifications. A typical example is AWS Lambda. Cloud functions are serverless products and you can use them as part of your requirement when building your own serverless application.

(v) Container Services: the industrial standard container services are Docker and Kubernetes and they are independent of any cloud provider. Google Cloud Platform has support for Kubernetes by Provisioning Kubernetes engine (IaaS) although confusion arises as GKE(Google Kubernetes Engines) also perform as Platform as a service (PaaS) which automatically managed clusters of containers for you without you doing anything. GKE has a shared responsibility model which means at a Paas (Higher Level): it monitors and protects clusters of containers and at an infrastructure level (IaaS): it provides the underlying infrastructure, including hardware, firmware, kernel, OS, storage, network, and more to support the PaaS (higher level). I hope you get it right and this dissolves the confusion you have in mind.

Summarily, the Google Cloud Platform offers a wide range of services but for simplicity and better understanding, there are categorized into sections/services/resources. The computing resources section offers computing services options both as an IaaS and PaaS. IaaS (Compute Engine and Kubernetes Engine) and PaaS (App Engine and Cloud Functions). As a computing resources service, you can communicate with them through an SSH terminal, the "gcloud compute" command for VMs, and the "Kubectl" command (for Kubernetes Engine). you can read more about it in the GCP documentation.

With that being said, I hope you have a clear understanding of some of the google cloud services that fall under computing resources. follow me to stay updated as I explained the other GCP services and the categories they fall into. I hope you find this post helpful, until the next post, stay blessed. 👋💕 . don't forget to follow me and share this post, someone somewhere might benefit from it. Thanks.