Serverless architecture allows to build and run applications without having to manage the infrastructure. Such applications rely on third-party services – backend-as-a-service (BaaS), or custom code that’s run in containers – functions-as-a-service (FaaS). Serverless architecture solves the tedious problems of provisioning, scaling, and maintaining servers to run your applications, storage systems, and databases. So it’s not actually “serverless”. Servers are used. It’s just that administrators and developers do not have to worry about server management.
FaaS & BaaS Solutions
As we have already mentioned, serverless technologies can be roughly divided into two categories: backend-as-a-service (BaaS) and functions-as-a-service (FaaS). FaaS provides a computational service to fulfil a function created by the user and execute it only when triggered. FaaS is commonly used for real-time data processing.
Here are the most significant players in FaaS category:
Azure Functions (Microsoft), Cloud Functions (Google), IronWorker (Iron.io), Manta Functions (Joyent), Lambda (Amazon Web Services), OpenWhisk (IBM), PubNub BLOCKS (PubNub), Serverless Docker (Docker). BaaS, also Mobile BaaS (MBaaS) is a set of technologies that provides backend support for mobile apps. As opposed to FaaS, which only executes users’ code, BaaS provides a full online service. For instance, Google’s Firebase offers a flexible, hosted, fully managed and scalable database.
Other relevant BaaS-providers you need to know about are following:
Amazon API Gateway (Amazon Web Services), Amazon Cognito (Amazon Web Services), AnyPresence (AnyPresence), Appery.io (Exadel), AWS DynamoDB (AWS), Baasil.io (Baasil.io), BaaSBox (BaaSBox), Backendless (Backendless), Baqend (Baqend), Built.io Flow (Built.io), Cloud Datastore (Google), Deepstream.io (deepstream.io), Deployd (Deployd), Firebase (Google), Kinvey (Kinvey), OAuth.io (OAuth.io), Parse Server (Open source project), Skygear.io (Skygear), StrongLoop API Gateway (IBM), Streamdata.io (Streamdata.io), Usergrid (Apache Software Foundation).
Advantages of going serverless
Serverless architecture offers many benefits. Many of them depend on the type of application, its functions, and technical requirements, but there are still some common points every business can benefit from.
First and the most important benefit of building the serverless app is its fully managed infrastructure. You do not have to bother with architecture, hosting, operating and scaling, all of this is done by service providers.
Lower cost and reasonable pricing
The days of spending hundreds of thousands of dollars servers are gone. Now it is not necessary to pay neither for such standard processes as image processing, authorization or presence detection nor for infrastructure management. Moreover, most of the cloud service providers offer reasonable subscription-based pricing or pay-for-what-you-use option.
Easy to use
Cloud-based services are very easy to use through their standard web-based APIs. By using these services for your apps, you outsource parts of your application out to the cloud service provider(s), and all you actually need is to coordinate and hold fast different cloud services in accord with the app’s user interface. This way you can build highly scalable applications without using any servers at all.
Serverless architectures, like any other technology, is not a silver bullet. It is more about the optimal choice of the right technology or technologies companion. There are a lot of complex or specific problems out there for which a server-based architecture is an optimal or the only feasible solution. However, it can definitely be one of the best alternative architecture choices for new applications.