We would be covering the evolution of overall infrastructure design to this new concept known as “Serverless” architecture.
If we go by the literal meaning, it sounds like a service that can serve without a server.
But that’s not the entire case here, When you deploy the application using Serverless Architecture it means that you do not own the server but the layer to allow your service to serve.
If compare this to our daily lives, You get services like water, electricity delivered to your place. You use those services as per your need and get billed based on usage. You don’t concern yourself on how it’s reaching to you or what is the underlying architecture to get that service reached to you.
Hosting a static website
For any web application, There would be a tier deployed as a frontend or in the form of an HTTP server in the form of Apache or Nginx or Microsoft IIS it can be anything. And with that, we utilize CDN(Content Delivery Network) services like Cloudflare. For pointing the services to our website we usually have a DNS server which is redirecting all the domain requests to the HTTP server which is hosting the web application.
In the case of AWS Serverless Platform, Route53 acts as a DNS service for your enterprise and allows you to host your Zones(domains). CloudFront of AWS is the content delivery network(CDN) service by AWS. S3 Bucket would host all the static HTML files of your web application and it can be integrated with Cloudfront out of the box to allow users to browse through your web application.
For Any Web Application, Authentication and Authorization of the users and its sessions is one of the key functional requirements. AWS provides services known as AWS Cognito which allows Web or Mobile Apps to manage the user pools and provides authentication & authorization from the Applications.
It also supports federated logins which can allow integration with social media platforms like Google and Facebook very easily and fast implement. AWS Cognito’s licensing is based on the number of active users in a month.
Build a serverless backend
Building any dynamic functional points for your web applications like forms, searches, filters, etc. requires having a backend service deployed on a server which can then be integrated with a database or a REST API to get the necessary output back to the user.
In AWS a complete backend service or in other words, your Serverside coding can be taken care of by deploying Lambda function. AWS Lambda supports various run-time environments which would allow developers to use their favorite libraries.
A function can be invoked via REST APIs which can be deployed AWS API Gateway which is again a serverless service provided by AWS. Lambda would allow you to run any specific functions/ Business logic which needed to be executed to perform various operations on the Web Application.
Inform of Data repository, AWS supports a serverless database as Dynamo DB which is a no-SQL database and can be deployed and integrated with AWS Lambda to store any information collected using the Web Application. AWS doesn’t charge anything to keep Dynamo DB running but it charges per MB data which is being queried by various applications.
If you’re looking to see how Serverless Application design could make an impact in your organization, We are a Cloud-Native Application Development Company, we’d love to talk.