Understanding Google Cloud Triad : Compute Engine , Kubernetes Engine and App Engine

Vanshita Singh
10 min readMay 2, 2020

Well these words are the foundation of the Google Cloud , the first three things you will encounter in your further knowledge of Google Cloud and how to work with it . These terms has a very great significance for the Cloud technology and I can say that this is the reason of the advent of the Cloud Technology. Before going deep into the explanation and contrast of these three terms , I would like to give the glimpse of the cloud technology and some of the technical firms that are practicing this cloud technology in full swing.

What is cloud and how it become a technology ?

Well , literally speaking , Cloud is the resource of rain for us , they are nothing else but the clot of droplets of water which I can say preserve water and then bring rain for us when needed . Well you will be thinking that how this geographical studies relate to Cloud technology , well that’s my innovative way of thinking and finding the link between them. Cloud technology came into existence when there felt the serious need to have some advanced technology for the backup and more secure preservation of the data of the people. Well now coming to technical point , “The cloud” refers to servers that are accessed over the Internet, and the software and databases that run on those servers. Cloud servers are located in data centers all over the world. By using cloud computing, users and companies don’t have to manage physical servers themselves or run software applications on their own machines.Cloud Computing service is nothing but providing services like Storage, Databases, Servers, networking and the software through the Internet.

Now coming to the companies and technical firms that are practicing Cloud Computing and Cloud technology in full swing and are the main source of getting the knowledge about the this technology are as per the list:

  1. Kamatera
  2. PhoenixNAP
  3. Amazon Web Services
  4. Microsoft Azure
  5. Google Cloud Platform

But in today’s date the three famous and trending companies in Cloud technology , Cloud Computing , Virtualization and in creating awareness about the Cloud in the youth.

First in the list is Amazon Web Services :

  1. AWS is the safest and protected platform of cloud service which offers a wide set of infrastructure services like database storage, computing power, networking.
  2. Using this AWS one can host the static websites.
  3. By using such services, users are able to build complicated applications that are trustworthy, scalable and flexible.
  4. One can have the hands-on experience of AWS for free.

Second is Microsoft Azure :

  1. Microsoft Azure is used for deploying, designing and managing the applications through a worldwide network.
  2. This Cloud computing service supports various operating systems, databases, tools, programming languages and frameworks.
  3. A free trial version of Microsoft Azure is available for 30 days.

Last but not the least is Google Cloud Platform :

  1. Google Cloud Platform uses resources such as computers, virtual machines, hard disks, etc. located at Google data centers.
  2. Google Cloud Platform is an integrated storage used by developers and enterprises for live data.
  3. Google Cloud provides the practical implementation of it’s working on the real Google Cloud Platform and Cloud Console through Qwiklabs .

Well , Do you find the common thing with all three ? Yes ! they all provide some free access or credits to make us aware about their working and basically about the Cloud Computing and Virtualization with their immense benefits in present date. You can opt any three of it according to your interest . I am actively into learning about Google Cloud Platform an it’s working and is recently pursuing the course on coursera on the Google Cloud Platform , basically about the fundamentals where in I got to know about Compute Engine , Kubernetes Engine and App Engine and realised that behind those advanced technologies and computation , these three engines are the pillar and how they are interlinked but with a contrast. I will be discussing about the Google Cloud Engines and their importance and most importantly their difference.

What is Compute Engine ?

Compute Engine is one of the component of Infrastructure as a Service (IaaS) which enables the users to launch their own Virtual Machine (VM’s) to work in the Google Cloud Project.You can create a virtual machine instance by using the Google Cloud Platform console or the GCloud command line tool.Your VM can run Linux and Windows Server images provided by Google or customized versions of these images, and you can even import images for many of your physical servers. Besides having the predefined and configured VM instance ,you can also define a custom VM according to your needs by assigning the processing power , the storage type , software configuration , boot image mainly LINUX and Windows and those all the prerequisites that one need to define while configuring the Physical server.You can make very large VMs in compute Engine. According to the latest data , maximum number of CPU’s that Google allow it’s user to access on single virtual machine ranges from 32 to 64.

Configuration requirements of VM instances in Google Cloud

Akin to Physical servers , Compute Engine also provides two types of storage : Standard Storage or SSD and Persistent Disks.Compute Engine has a feature called auto scaling that lets you add and take away VMs from your application based on load metrics.

Now coming to second type of Engine which ease much of the work and in the structured way ,Kubernetes Engine .

What is Kubernetes Engine?

Kubernetes Engine as we can say is a bi-platform engine as it serves as an Infrastructure as a Service offering and in that it saves your infrastructure chores whereas it also serve as a platform as a service offering and in that it was built with the needs of developers in mind. The backbone of the Kubernetes Engine are containers .

Now the question is what is containers ?

Difference between Virtual Machine Deployment and Containers Deployment

Containers are a technology for packaging the (compiled) code for an application along with the dependencies it needs at run time. Each container that you run is repeatable; the standardization from having dependencies included means that you get the same behavior wherever you run it.Containers are OS and environment independent.The idea of a Container is to give you the independent scalability of workloads like you get in a PaaS environment, and an abstraction layer of the operating system and hardware, like you get in an Infrastructure as a Service environment.

Now I will let you know importance of Kubernetes Engine by an example .

You’ll likely want to build your applications using lots of Containers, each performing their own function, say using the micro-services pattern. The units of code running in these Containers can communicate with each other over a network fabric.If you build this way, you can make applications modular.They deploy it easily and scale independently across a group of hosts. The host can scale up and down, and start and stop Containers as demand for your application changes,or even as hosts fail and are replaced. The tool which help you in doing this well is Kubernetes. Kubernetes makes it easy to orchestrate many Containers on many hosts. Scale them, roll out new versions of them, and even roll back to the old version if things go wrong.

Kubernetes lets you deploy containers on a set of nodes called a cluster.What’s a cluster?It’s a set of master components that control the system as a whole and a set of nodes that run containers.In Kubernetes, a node represents a computing instance.In Google Cloud, nodes are virtual machines running in Compute Engine. Google Cloud provides Kubernetes Engine,which is Kubernetes as a managed service in the cloud.You can create a Kubernetes cluster with Kubernetes Engine using the GCP console or the g-cloud command that’s provided by the Cloud SDK.

Whenever Kubernetes deploys a container or a set of related containers,it does so inside an abstraction called a pod. A pod is the smallest deployable unit in Kubernetes .If you have multiple containers with a hard dependency, you can package them into a single pod. They’ll automatically share networking and they can have disk storage volumes in common.

What is App Engine?

Compute Engine and Kubernetes Engine both choose the infrastructure in which your application runs, based on virtual machines for Compute Engine and containers for Kubernetes Engine.But what if you don’t want to focus on the infrastructure at all?You just want to focus on your code.That’s what App Engine is for. Google App Engine (often referred to as GAE or simply App Engine) is Platform as a Service and Cloud Computing platform for developing and hosting web applications in Google-managed data Centers.

The App Engine platform manages the hardware and networking infrastructure required to run your code. App Engine provides you with a built-in services that many web applications need.To deploy an application on App Engine, you just hand App Engine your code and the App Engine service takes care of the rest. Yes ! It’s that easy. App engine will scale your application automatically in response to the amount of traffic it receives.That’s why App Engine is especially suited for applications where the workload is highly variable or unpredictable like web applications and mobile backend. Google App Engine primarily supports Go, PHP, Java, Python, Node.js, .NET, and Ruby applications, although it can also support other languages via “custom runtimes” There are two environments that App Engine provide it’s user to work :

  1. Standard Environment :Of the two App Engine Environments,Standard is the simpler. It offers a simpler deployment experience than the Flexible environment . Standard Environment provide free daily usage quota for some services but with limitation that only low utilization applications can work at no cost. Standard environment is language restricted , it can support only specific versions of Java,Python, PHP and Go. If you want to code in another language, Standard Environment is not right for you.The Standard Environment also enforces restrictions on your code by making it run in a so-called “Sandbox.” The Sandbox is one of the reasons why App Engine Standard Environment can scale and manage your application in a very fine-grained way.For example, your application can’t write to the local file system. It’ll have to write to a database service instead if it needs to make data persistent.
  1. Flexible Environment : What if the restrictions of Standard environment doesn’t pacify your needs for your model and on the other hand you also want to take the advantage of App Engine . Well , Don’t Worry ! Google has all the solution to your problems . Flexible Environment is the solution. Instead of the sandbox, App Engine flexible environment lets you specify the container your App Engine runs in. Containers ! haven’t you heard this term before .

Yes it is the part of Kubernetes Engine and following the hierachy App engine let’s your application to run inside a Docker Container on Google Cloud Virtual Machines.App Engine flexible environment apps use standard run times,can access App Engine services such as data store, memcached, task queues, and so on. Well how the Standard Environment differs from Flexible . I will quote it with an example : Flexible environment lets you SSH into the virtual machines on which your application runs.It lets you use local disk for scratch base,it lets you install third-party software,and it lets your application make calls to the network without going through App Engine.On the other hand, Standard environment’s billing can drop to zero for the completely idle application.

Comparison of Standard and Flexible Environment

Comparing App Engine with Kubernetes Engine

App Engine standard environment is for people who want the service to take maximum control of their application’s deployment and scaling. Kubernetes Engine gives the application owner the full flexibility of Kubernetes. App Engine flexible edition is somewhere in between.

Also, App Engine environment treats containers as a means to an end but for Kubernetes Engine,containers are a fundamental organizing principle.

CONTRAST BETWEEN THE GOOGLE CLOUD ENGINES

So , that’s what all about the Google Cloud Engines , the powerful triad of Google Cloud Platform and this is where Google Cloud lays it’s foundation.

If you want to get into more depth of the Google Cloud , jargons and how it works . Please do refer the Google Cloud Platform Website.

Google Cloud

Any queries related to my blog ? feel free to ask it out

LinkedIn | Twitter | Facebook | Instagram

Do leave a clap if you find it informative.

--

--

Vanshita Singh

A Technoid with the good sense of Design and essence of creativity