Making Sense of the Google Cloud Compute Products
Google Cloud Platform’s compute products offer a range of services that help us to deploy and manage our applications in production efficiently.
Here, I will briefly explain how each product work, and their characteristics. But first, a little history on managed services.
What the *aaS!
In traditional sense, before we have service provider like AWS, managing a production environment usually mean having a physical computer acting as a server sitting somewhere in a data center. All decisions concerning the setup of the server such as hardwares, operating system and softwares, has to be made before the server can be install. As you can imagine, maintaining and managing the server and the applications deployed on it was no easy task.
Businesses, in order to streamline their operation, started to outsource these computing needs to the cloud, so they can focus on what matters to them, mitigating cost, operation overhead and risks to the vendors that provide these services that businesses can simply subscribe to. Collectively, we simply call these, *** as a service, where *** represent the type of service provided.
One of the earliest example of a cloud computing service are commercial email services provided by the like of AOL, Prodigy and CompuServe back in the early days of the internet. These commercial email services would be our earliest example of Software as a service(Saas). Without them, businesses would be force to setup and manage their own physical email server, just so that they could send and receive emails.
GCP compute products offers Infrastructure as a Service(IaaS), Container as a Service(CaaS), Platform as a Service(PaaS) and Function as a Service(FaaS). These build on top of each other to give great convenient to developer by abstracting the need to set up hardware, and or environment away.
At it’s core with Google Compute Engine, you will have maximum control of all the underlying infrastructure. As you move away from the core, Google manage an increasing amount of infrastructure for you, and eventually, you can have all your infrastructure managed for you with Google Cloud Function.
Google Compute Engine
Using virtual machines with Google Compute Engine, you can specify the bare infrastructure setup you need without having to own and install the actual hardwares.
The Compute Engine give you maximum low level control to options like CPU, RAM, Persistent Storage, Networking, and the favour of operating system to run your application on.
If you have to run anything that require a certain operating system, or operating system setup, or if you are moving an existing on-premises application to the cloud without re-writing, this would be the choice to go for.
Google Kubernetes Engine
CaaS option is provided in the form of the Google Kubernetes Engine(GKE). CaaS sit somewhere in between IaaS and PaaS. GKE let you run Docker container in a managed environment.
Containers provide an easy mechanism for building loosely coupled distributed system with no dependencies to any specific operating system, and GKE performs the automation, orchestration, management and deployment of your containers. This make GKE a perfect choice for microservices.
Google App Engine
The Google App Engine(GAE) is the PaaS offering of google. As a pre-configured platform, GAE has all the necessary bare infrastructure as managed services ready to go, and you just need to provide your application code to run your application.
You don’t need to configure any infrastructure, or spin up cluster or server for your application to work. And you can focus on writing code, while being ensured that GAE will provide a highly scalable and reliable environment to serve your application.
GAE also come with automatic high availability with built-in auto-scaling. This will scale your underlying infrastructure up or down automatically time in times of demand and load spikes.
Google Cloud Function
The Google Cloud Function(GCF) is a FaaS service. FaaS let you create application make up of a set of single purpose, stand alone functions that respond to cloud events without the need to manage server or run time environment.
With GCF, you pay only when your code runs, and just like the Google App Engine, GCF automatically scale your underlying infrastructure in response to demand changes.
The GCP compute products offers a range of choices to deploy our application in different scenarios, and you should be able to employ 1 or a mix of these services for your deployment needs.