What is Serverless?
Serverless literally means no-sever or can be defined as a serverless architecture, which is a new architectural approach. But to say an architecture without a server is not correct, in fact it is not without but it uses a third party or so-called third party to provide developers with the necessary functions, such as databases, messaging and identity verification, in the way the service we want.
Why use Serverless?
If you use Serverless, you don't need to bother organizing and managing all of the above. If that's the case, then it's clear that Serverless is too powerful, so why do we have to build our own server? First of all, what are the advantages that Serverless brings?
Advantages of Serverless:
- No need to manage the server.
- Developers are only charged for the server space they use, cutting unnecessary costs.
- Can be deployed easily and updated quickly.
- Codes can get closer to end users reducing latency.
- Testing and debugging becomes more difficult.
- Serverless is not built for long-running processes.
- Performance may be affected.
- Service providers can be faulty, greatly affecting users.
When should serverless be used?
- Websites and APIs: We can completely build a dynamic or semi-static website or it can be an API. Usually people often build Restful API with Serverless or apply it to Graphql.
- Multimedia processing: Serverless Framework is suitable for image processing operations, video tasks that do not require too high such as cutting, decompressing, resizing or converting video code.
- Event handling: Serverless Framework can also act as a bridge to perform a series of different actions when triggered by each event.
- Data processing: Depending on different contexts, applications such as IoT, Chatbox, etc.
Currently, there are many providers of Serverless model so that we can perform functions in the easiest way. Here are the three largest and most reputable suppliers in the market.
AWS still holds a strong position in the Serverless market. AWS Lambda is one of the top contenders by AWS. Initially, Lambda only supported Node.js but now you can run Python, Go, Java, C#.
AWS Lambda can help in real-time scenarios like file processing, streaming, data validation, data transformations, handling API requests, etc.
Some outstanding functions:
- Deep integration with other AWS services.
- Stateless Lambda functions
- Supports logging and monitoring (AWS Cloud Watch)
- Automatic scaling
Google Cloud Functions
Google Functions offers a lot of applications, functions such as:
- App Engine – fully managed for website and mobile. You can deploy PHP, Python, C#, Node.js, Ruby, Go, etc. You pay according to the resource used and scale based on the traffic used.
- Cloud Functions – event-driven platform powered by Node.js, Golang and Python. You can use Functions to build IoT backend, API processing, chatbots, sentiment analysis, stream processing, etc.
- Firebase Functions – is another version of Cloud Functions.
- There are many more – Storage, Firestore, BigQuery, Dataflow, Pub/Sub, ML engine. These applications are enough for you to build a full enterprise system.
Microsoft Azure Functions
Similar to AWS Lambda, Azure Functions supports many languages:
Azure Functions will take care of the infrastructure for your application, automatically scaling up or down as needed. You don't need to care about the capacity package.
You can trigger functions from web applications, HTTP APIs from mobile apps, blob storage, streaming, webhooks, etc.