Imagine the difficulties in the era where cloud computing platforms like AWS (Amazon Web Services), Microsoft Azure, and Google Cloud were not launched. Application developers do not like to work on computer hardware because provisioning infrastructure, deployment, and execution of the code is not as easy as it is with cloud computing. In the absence of cloud computing, it was really cumbersome to manage the deployment and data access tasks as you were required to do lots of stuff like call or email the data centers, get access to machines (e.g Rackspace), etc.
Thankfully, the cloud services were launched. In 2006, AWS EC2 was launched and it has been a complete game changer in terms of provisioning and maintaining infrastructure. Over the years, we have seen a great evolution in the cloud services and infrastructures by AWS.
Evolution of Cloud Infrastructure
As it is mentioned in the above diagram, it all started with data center and then moved to IaaS after the AWS was launched.
As it is mentioned in the above diagram, it all started with data center and then moved to IaaS after the AWS was launched. AWS is basically an IaaS (infrastructure as a service). In IaaS, you can launch and provision infrastructure from API call or just use the AWS console. However, you need to maintain the provisioned servers, operating systems, and the patching of the OS.
After IaaS, AWS launched PaaS (platform as a service) in terms of Elastic Beanstalk. In PaaS, you can just upload application and AWS creates an infrastructure based on your application for you. In PaaS also, you need to maintain the infrastructure.
After PaaS, AWS launched a Serverless infrastructure. It is a complete revolution in terms of provisioning infrastructure. With a serverless infrastructure, you do not need to worry about IaaS and PaaS as the containers manage the underlying OS and the scaling of servers.
Serverless Architecture Overview
Serverless architecture is a new revolution in cloud computing. Serverless architecture does not mean you do not need servers to run the code. Serverless architecture means that the code will be run on some third-party vendor’s serverless framework instead of your own server.
The serverless architecture works in two different ways: 1) Backend-as-a-service (Baas) and 2) Function-as-a-service (FaaS). Let us understand each of these:
It is more like the SaaS (software-as-a-service) for application development rather than business processing. In BaaS paradigm, an application developer can just focus on writing code or business functionality and do not need to worry about provisioning and maintaining servers to run the code. In this concept, the code will be run on some third party vendor server or infrastructure.
In most cases, the BaaS services run continuously once they are started. Hence, enterprises need to pay for these services regardless of whether the code is running or not. Backend-as-a-service offers generic components that can be plugged into an application, especially as the generic backend have a custom front-end component.
Example of BaaS
- Authentication: Many applications require Authentication logic, such as, Sign up, Log in, Password management, and integration with other Authentication devices. Most of the code is very similar across many applications. Products like Auth0 and Amazon Cognito have inbuilt functionality so that you do not need to develop this functionality by yourself.
This is a Backend-as-a-services model, where the generic hosted application component can be bundled in applications.
This one is the most popular concepts in serverless architecture. In FaaS, application developers can implement their own backend logic and let them run using a serverless framework of the third-party vendors. All the popular cloud computing platforms like AWS Lambda, Microsoft Azure Functions as well as Google Cloud Functions provide these technologies.
In FaaS, the application developer just needs to upload the code and create a function. For example, Lambda function. This Lambda function can be used to run code in the following ways:
- In response to an event triggered like any modification in data of the AWS S3 bucket.
- In response to HTTP requests using the Amazon API gateway.
Here in FaaS, whenever any request comes to function, the AWS creates a server instance for you to run the code. So, AWS takes care to scale the function when multiple concurrent requests come to function.
Also, the main advantage of FaaS in comparison to BaaS is that the server code does not need to run continuously and hence, you need to pay the cost of only running the functions. So, it significantly reduces the cost for organizations.
Advantages of Serverless Architecture
- Decreases the time for development of the application. For example, an application relies on some third-party APIs like Oauth2.
- Reduces the issues of scalability as AWS provides scalability as and when required.
- Reduces cost in terms of building and maintaining infrastructure for servers. It also saves cost in terms of computing power as well as human resources. The serverless architecture saves operational cost as well since you need to pay only for the time duration in which the AWS lambda code is executed.
eInfochips is an AWS Advanced Consulting Partner. We help clients in AWS consulting, migration, and digital transformation services, implementing a highly scalable, reliable, and cost-efficient infrastructure on the AWS platform. To know more, get in touch with us.