AWS - A Cloud Native Approach

Please read the necessity of cloud computing here.

Intro:

Let's start from the bottom. The whole IT industry revolves around hardware and software. We develop an application that serves some purposes like streaming videos, e-commerce, CRM, ERP, etc. Based on the purpose and nature of the application, we need an operating system(software that acts as a bridge between application command and hardware) and hardware(Processor, Memory, and Storage). I have written this intro to ensure we are all on the same page.


Opposite of Cloud:

When you procure or manually arrange hardware and OS for your application, it will be the opposite of the cloud. This is called the traditional approach or on-premise model. This will prompt you to maintain the physical server, compute power, storage, etc., on your premise.

Think of this scenario, say you want to build a live-streaming video application and promote this application to earn revenue. What would be the core of the business here - Video application and not maintaining IT infrastructure resources because if you maintain resources, it deviates from its business purpose (live streaming).


You need to increase the processing power and storage if the application grows. Do we need to buy a new server and disk each time traffic increases? This is where the idea of Cloud computing comes in.


Cloud computing enables you to concentrate more on the core of the business and its fundamental objective.
What is cloud computing exactly?

What is it like to outsource the IT infrastructure constraints to someone whose core business handles the IT infrastructure, depending on your requirements and use cases? Well, welcome to AWS and cloud computing.


Cloud computing is an on-demand delivery of computing power, storage, and other IT resources through the Internet. All you need is an Internet connection with access to an AWS services account.


Let me highlight the advantages of this here,

  • You don't need to buy new hardware here - low upfront investments from a business perspective.

  • Don't spend time on hardware management - Concentrate more on your business.

  • When you need more resources, you get what you need.

  • You will only pay for what you have used. This is called 'pay as you go.'

Pay-as-you-go is fundamental to the cloud computing model.
  • With the internet and AWS, IT resources are one click away, so the availability of resources to your developers is a matter of minutes. When the time taken to availability of resources is shortened, this results in your business agility.

If you take any application, there will be aspects important to your business, like code. However, other aspects don't differ from other applications, like processors, computing, memory, etc.


Cloud computing allows developers to focus on what matters most and avoid infrastructure procurement, maintenance, capacity planning, or undifferentiated heavy lifting. Source: AWS

Enough of descriptions and history. Let's hit the nail and decode the jargon from now on.

Does cloud mean we get rid of all physical components? A big No! We eliminate physical components on the premises or at our business location. We still need physical things to work or compute or deploy our application. Those heavy machines, servers, or data centers are located across different regions worldwide to give you the services you want.


This set of computers, servers, or machines work for you, and you get services from them through the internet. This separation of the application from physical infrastructure revolutionized the IT industry, and AWS is a pioneer in it.

Source: Investopedia

Services in AWS

When you separate IT resources from your application, you may fear losing control over your resource or don't want to control and concentrate on what is needed to grow your business.

  • If you outsource only physical infrastructure like data storage, networking devices, servers, etc., your service is called 'Infrastructure as a Service(IaaS).'Therefore you need to handle OS, middleware, runtime, data, and application.

Note: JavaScript runs on node js - therefore, the runtime is node js, and middleware is software that enables us to communicate between different components. Middleware is subjective and depends on our context, but it is software that sits between two things.

  • When you only manage data and applications - 'Platform as a service.'

  • When you don't have to manage anything - 'Software as a Service.'. Here you will be an end-user like the email service you use!

Since cloud technologies are growing and evolving, I am giving explanations to get the essence of the concept and not the perfect definition.


We will see some important services in AWS. Numerous services are available, and connecting the dots to get the whole picture is essential. Therefore I found this video by 'Be a Better Dev' on YouTube super helpful in connecting the dots. Video link is below.

https://www.youtube.com/watch?v=FDEpdNdFglI