AWS EKS and Google Cloud features

Anushka Kulkarni
9 min readJan 14, 2022

--

What is a Cloud Platform?

What is a cloud platform? A cloud platform refers to the operating system and hardware of a server in an Internet-based data center. It allows software and hardware products to co-exist remotely and at scale. Enterprises rent access to computer services, such as servers, databases, storage, analytics, networking, software, and intelligence. Therefore, the enterprises don’t have to set up and own data centers or computing infrastructure. They simply pay for what they use.

There are several types of cloud platforms. Not a single one works for everyone. There are several models, types, and services available to help meet the varying needs of users. Here we are going to elaborate on the 2 leading in this industry,

1. AWS EKS

2. Google Cloud Platform

AWS EKS

One of the key benefits of cloud computing is the opportunity to replace upfront capital infrastructure expenses with low variable costs that scale with your business. With the cloud, businesses no longer need to plan for and procure servers and other IT infrastructure weeks or months in advance. Instead, they can instantly spin up hundreds or thousands of servers in minutes and deliver results faster.

What is AWS?

Amazon Web Services (AWS) is a comprehensive cloud computing platform that includes infrastructure as a service (IaaS) and platform as a service (PaaS) offerings. AWS services offer scalable solutions for compute, storage, databases, analytics, and more.

What is EKS?

Amazon Elastic Kubernetes Service (Amazon EKS) is a managed Kubernetes service that makes it easy for you to run Kubernetes on AWS and on-premises. Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. Amazon EKS is certified

Kubernetes-conformant, so existing applications that run on upstream Kubernetes are compatible with Amazon EKS.

Amazon EKS automatically manages the availability and scalability of the Kubernetes control plane nodes responsible for scheduling containers, managing application availability, storing cluster data, and other key tasks.

Amazon EKS lets you run your Kubernetes applications on both Amazon Elastic Compute Cloud (Amazon EC2) and AWS Fargate. With Amazon EKS, you can take advantage of all the performance, scale, reliability, and availability of AWS infrastructure, as well as integrations with AWS networking and security services, such as application load balancers (ALBs) for load distribution, AWS Identity and Access Management (IAM) integration with role-based access control (RBAC), and AWS Virtual Private Cloud (VPC) support for pod networking.

Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that allows you to run Kubernetes on AWS without having to set up, operate, or maintain your own control plane or nodes. Kubernetes is an open-source platform for automating containerized application deployment, scaling, and management.

❖ To ensure high availability, it runs and scales the Kubernetes control plane across multiple AWS Availability Zones.

❖ Control plane instances are automatically scaled based on load, and unhealthy control plane instances are detected and replaced, as well as automated version updates and patching.

❖ Is integrated with a number of AWS services to give your applications scalability and security, including the following features:

Container images on Amazon ECR

Load distribution with elastic load balancing For authentication, IAM is used.

Isolation with Amazon VPC

❖ Runs the most recent versions of the open-source Kubernetes software, allowing you to take advantage of all of the community’s existing plugins and tooling. Applications that run on Amazon EKS are fully compatible with applications that run on any standard Kubernetes environment, whether in on-premises data centres or in public clouds. This means that any standard Kubernetes application can be easily migrated to Amazon EKS without requiring any code changes.

Amazon EKS control plane architecture.

For each cluster, Amazon EKS runs a single tenant Kubernetes control plane. The infrastructure for the control plane is not shared between clusters or AWS accounts. At least two API server instances and three etcd instances make up the control plane, which is distributed across three Availability Zones within a Region. EKS on Amazon:

Monitors and automatically scales the load on control plane instances to ensure high performance.

Automatically detects and replaces unhealthy control plane instances, restarting them as needed across the Region’s Availability Zones.

Makes use of the AWS Regions architecture to ensure high availability. As a result, Amazon EKS can provide a service level agreement (SLA) for API server endpoint availability.

To limit traffic between control plane components within a single cluster, Amazon EKS uses Amazon VPC network policies. Except as authorised by Kubernetes RBAC policies, control plane components for a cluster can’t see or receive communication from other clusters or AWS accounts. Amazon EKS is reliable and recommended for production workloads because of its secure and highly available configuration.

Getting started with Amazon EKS :

1. In the AWS Management Console, the AWS CLI, or one of the AWS SDKs, create an Amazon EKS cluster.

2. Launch managed or self-managed Amazon EC2 nodes, or use AWS Fargate to move your workloads.

3. When your cluster is ready, you can use your favourite Kubernetes tools to communicate with it, such as kubectl.

4. Workloads can be deployed and managed in your Amazon EKS cluster in the same way they are in any other Kubernetes environment. The AWS Management Console can also be used to view information about your workloads.

Image Source : https://cast.ai/blog/aws-eks-vs-ecs-vs-fargate-where-to-manage-your-kubernetes/

Google cloud functions.

Google Cloud Functions is a serverless platform for developing and connecting cloud services. Cloud Functions allows you to create simple, single-purpose functions that are linked to events generated by your cloud infrastructure and services. When an event that is being watched is fired, your function is called. Your code runs in a completely controlled environment. There’s no need to worry about setting up infrastructure or managing servers.

On Google Cloud Platform, Cloud Functions can be written in JavaScript, Python 3,

Go, or Java runtimes on Google Cloud Platform. You can take your function and run it in any standard Node.js (Node.js 10 or 12), Python 3 (Python 3.7 or 3.8), Go (Go 1.11 or 1.13) or Java (Java 11) environment, which makes both portability and local testing a easy.

Key features of Google Cloud Functions

Google Cloud Functions, like all serverless offerings, places a premium on user convenience. Users can concentrate on writing function code rather than architecting cloud infrastructure because the service abstracts and automates the underlying infrastructure.

The concept of scalability is also emphasised by Google Cloud Functions. The service automatically scales resources up and down in response to function demand to avoid low performance and high costs.

Triggers and events

Things that happen in your cloud environment are referred to as cloud events. Changes to data in a database, files added to a storage system, or the creation of a new virtual machine instance are examples of these.

Events happen whether you choose to respond to them or not. A trigger is used to create a response to an event. A trigger is a declaration of interest in a specific event or series of events. You can capture and act on events by binding a function to a trigger.

Functions can be triggered by a variety of sources both inside and outside of GCP. A function can be triggered by an application that runs on GCP, or by services like Firebase and Google Assistant. Functions can be triggered by HTTP hooks from web, mobile, and backend applications. Google Cloud Functions can thus react to programmatic as well as real-time/real-world events. Functions may be called to transform and move data generated by IoT devices, or to process data when a change in a cloud storage instance occurs, such as an object addition.

Traditional coding languages, such as JavaScript (Node.js) and Python, are used in Google Cloud Functions. Developers who are already familiar with Java and Python can start developing and uploading functions right away.

Google Cloud Functions can be invoked via the below events:

HTTP (Direct invocation)

Cloud Storage

Cloud Pub/Sub

Cloud Firestore

Firebase

Stackdriver Logging (Via Pub/Sub)

Serverless

The work of managing servers, configuring software, updating frameworks, and patching operating systems is eliminated with Serverless Cloud Functions. Google manages the software and infrastructure, so all you have to do is write code. Furthermore, resource provisioning occurs automatically in response to events. This means that a function can scale from a few thousand invocations per day to many millions of invocations per day with no effort on your part.

Use Cases

Asynchronous workloads, such as lightweight ETL, or cloud automations, such as triggering application builds, no longer require a dedicated server or a developer to set it up. You simply create a function that is bound to the desired event and you’re done.Cloud Functions’ fine-grained, on-demand nature makes it an ideal candidate for lightweight APIs and webhooks. Furthermore, because HTTP endpoints are automatically provisioned when you deploy an HTTP function, there is no need for complicated configuration, as there is with some other services. Additional common Cloud Functions use cases are listed in the table below:

Use case

Description

Data processing

ETL

/

Listen and respond to Cloud Storage events such as when a file is created, changed, or removed. Process images, perform video transcoding, validate and transform data, and invoke any service on the internet from your Cloud Functions.

Webhooks

Via a simple HTTP trigger, respond to events originating from 3rd party systems like GitHub, Slack, Stripe, or from anywhere that can send HTTP requests.

Lightweight

APIs

Compose applications from lightweight, loosely coupled bits of logic that are quick to build and that scale instantly. Your functions can be event-driven or invoked directly over HTTP/S.

Mobile backend

Use Google’s mobile platform for app developers, Firebase, and write your mobile backend in Cloud Functions. Listen and respond to events from Firebase Analytics, Realtime

Database, Authentication, and Storage.

IoT

Imagine tens or hundreds of thousands of devices streaming data into Pub/Sub, thereby launching Cloud Functions to process, transform and store data. Cloud Functions lets you do it in a way that’s completely serverless.

Google Cloud Functions Have a Wide Range of Applications

Google Cloud Functions can be used in a variety of ways by a company. To trigger log analysis is one example. In this scenario, a function might search for specific events within other cloud services or applications, trigger a log file check, and send desired log entries to specific administrators or developers via a notification service.

Other tasks, such as backups, can be triggered by functions. A function might, for example, trigger a data backup when a certain amount of time has passed or another event has occurred, such as a key resource remaining idle for an extended period of time. Other actions, such as report generation, can also be triggered by functions.

Organizations frequently use functions to perform repetitive or redundant tasks on data sets, such as image processing. A new image uploaded to a cloud storage account, for example, could trigger a function that color-corrects, scales, and saves the processed image file. A function could also be used to normalise a new data set before it is copied from a storage resource into another tool for processing, such as a cloud database or big data analytics service.

REFERENCES

1) https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html

2) https://aws.amazon.com/

3) https://cloud.google.com/

4) https://cloud.google.com/functions

--

--