Even when a serverless architecture provides us with a lot of benefits, those benefits cannot be applied to everything. It's quite common to find applications using hybrid models, when an application consumes a backend deployed on a traditional server (on-premise or cloud-based) and also using FaaS or third-party services for specific requirements.
Some common scenarios that serverless architectures can be applied to are as follows:
- Processing webhooks
- Tasks or jobs that should be scheduled or triggered under certain circumstances
- Data transformation, for example:
- Image manipulation, compression, or conversion
- Voice data transcribed into text, such as Alexa or Cortana
- A certain logic for mobile applications, based on the mobile backend as a service approach
- Single-page applications
- Chatbots
On the other hand, serverless architectures are not suitable for the following scenarios:
- Long-running processes where huge amounts of resources (such as CPU and memory) are required
- Any blocking processes