What is Serverless Architecture?
In the traditional server applications, we have a server that will handle all the requests from clients. The machine that hosts a website and delivers the site to our browsers are a very common example of this.
Why Was The Serverless Architecture Introduced?
Nowadays an enterprise-sized server is very expensive. Also, the average life cycle of a server like this is about 5 years. This implies that in addition to the fact that you have to replace your machine at regular intervals, however in the meantime you are compelled by the restrictions of that machine.
For instance, if a site’s server does not have the ability to deal with it’s expanded load, the main conventional arrangements were either to buy another server to deal with the extra volume, or to replace the current server with a superior model, the two of which are especially costly in both hardware expenses and labor.
Serverless architecture (or FaaS) is introduced to solve the above issues. Instead of having one machine to host a job, we can use publicly available services, such as Amazon Web Services (AWS) Lambda functions and cloud-hosted databases, to replace the traditional server.
Serverless architecture is a model in which developers can think of the business logic instead of underlying server configurations.
Pros and Cons of Serverless Architecture (Faas)
All the advantages/disadvantages of serverless architecture are described below:
- Pros of serverless architecture:
- Costs – you have to pay only for the resources you use.
- Infrastructure management — the purchase and configuration of servers is costly in terms of initial investment and required specialized staff.
- Security of infrastructure – no need to worry about OS, Server updates.
- Easy deployment.
- High Scalability.
2. Cons of serverless architecture:
- Latency – FaaS adds some latency so for a high-performance application, maybe it is not the best idea to use FaaS
- Don’t have locally stored data – your application has to be stateless, so for most of the applications this is really a good thing but it is a limit nevertheless
- Cannot debug/test locally.
- As with all upcoming technologies, there are always risks associated with them such as frameworks stability, libraries, etc.
FaaS comparison: AWS Lambda vs Microsoft Azure Functions vs Google Functions
|Feature/Providers||AWS Lambda||Microsoft Azure Functions||Google Functions|
|Languages support||Node.js, Java, C#, Python, Ruby, C++||Node.js, C#, F#, Python, PHP, Java||Node.js|
|Languages support with 3rd party||Any progrmaming language with Runtime API||With batch files can run anything|
|Monitoring||Cloudwatch, Dashbird, Thundra, IOpipe||Azure Application Insights||Stackdriver Monitoring|
|Pricing||$0.20/million requests with 1 million requests per month for free||$0.000016/GBs, 400,000 GBs/month for free
$0.20/million executions, with 1 million executions/month for free
|$0.40/million invocations with 2 million invocations for free
$0.0000025/GB-sec with 400,00 GB-sec/month for free
$0.0000100/GHz-sec with 200,000 GHz-sec/month for free
|Limits||Memory allocation range: Minimum 128 MB / Maximum 3008 MB
Ephemeral disk capacity: 512 MB
Maximum execution duration/ request: 900 seconds
|Allows only 10 concurrent executions per function
No limitations on a maximum execution time limit
|Number of functions: 1000
Maximum function duration: 540 seconds
Function calls per second: 1,000,000 per 100 seconds
Several businesses such as Nordstorm, AOL, Thomson Reuters, Netflix and Coca Cola are currently using Serverless architecture in manufacturing. This is a fresh way of building, deploying and managing software. Like microservices, it has many benefits for large and small apps.
A major benefit of a serverless-based architecture is the accessibility of developers. As we understand, finding good developers today is difficult and even harder in a particular programming language. With serverless computing, we can write functions with Nodejs, for one set of services, and in six months when fresh features are introduced, we can write the new features in Java. This type of flexibility has productivity disadvantages, but the lack of developers is a bigger disadvantage because the features won’t be created at all. Contact us today to implement a serverless-based architecture for your software.
Lal Kiran: Lal is a Senior Software Engineer who works on bringing improvements to the SEDAP parser. In his free time, Lal likes to sing, dance and hang out with his family.