The serverless Paradigm
Let's talk a bit about the Severless Paradigm
The buzzword everywhere now is serverless as opposed to monolithic servers.
What is the Severless Architecture?
Serverless architectures are internet-based systems where the application development does not use the usual server process. Instead, they rely solely on a combination of third-party services, client-side logic and service-hosted remote procedure calls (Functions as a Service).
Software Engineers today can use the option of building interfaces that implement the functionalities, without the complexities of integrating a backend or application programming interface (API). This thus involves building and managing our own servers.
Cloud Service vendors include
- Google Cloud Functions
- Azure Functions
- IBM OpenWhisk
- Alibaba Function Compute
- Iron Functions
- Auth0 Webtask
- Oracle Fn Project
Using cloud services as Google cloud functions with Firebase 🔥, as our subject for consideration
Firebase is a backend-as-a-service (BaaS) offering by Google that features databases, an ML kit, cloud functions, authentication, hosting, cloud storage, and more. Firebase abstracts the complexity of building a robust and scalable backend system, enabling developers to focus on building the client side of applications.
Some of the advantages of serverless applications include:
- Serverless-based applications are scaled on demand based on the number of resources required to handle requests serving
- Concurrent requests are spurned up in new container instances
- Security updates or patches are handled for us
- Every other technical detail is handled by the cloud providers in question so that, as engineers, we can focus more on core application maintenance and feature implementation
- Faster deployment cycle run via a single command, sls deploy
- Serverless offers an abstraction for cloud infrastructure
- Most importantly, paying for the exact resources consumed, as server management is handled on our behalf
“Reinventing the wheel isn’t always a good idea.”
Hardly do we build applications without third party libraries and services 🤷
The winner here is based on the context. For simple applications with few dependencies, Serverless is the winner; for anything more complex, Traditional Architecture is the winner.
Serverless architecture is certainly very exciting, but it comes with a bunch of limitations. As the validity and success of architectures depend on the business requirements and by no means solely on technology. In the same way, Serverless can shine when used in proper place.