Serverless is no longer a novel technology to the software industry. Besides, its nearly six years, since Amazon Web Services (AWS) introduced Lambda, known to be the birth of Serverless computing. Since then, different Serverless solutions emerged with diversity, ranging from computing, databases, and streaming data, to name just a few.
However, out of these Serverless solutions, some of them always keep customer satisfaction at its peak. Therefore I will be highlighting some of the best solutions out there based on my experience and carefully evaluating them as of the year 2020.
From its inception, AWS Lambda kept its promise with constant innovation year on year. If you look at the Lambda ecosystem with the number of integrations with other services, its incomparable for none out there. It has 15 AWS Event Triggers and 23 Partner Event Sources as of the time of writing this article, which shows its actual capability. Besides, its programming language support and online code editing with the integration with Amazon Cloud9 IDE is impressive.
Some of the latest features like Layers, and improvements over integrating with VPC, granular security control with policies when integrating with other services truly stands it out from the rest.
Alternatives in this category are Microsoft Azure Functions, which is next in line under my preferences. You can also consider Google Cloud Functions if you are using Google Cloud as your platform.
When it comes to Identity Management, Auth0 leads its way. Auth0 supports various integrations, addressing any identity-related requirement. For example, the Single Sign-On support for external identity federation as well as a provider, the list is enormous, and Auth0 has already leapfrogged beyond its competition.
Typically users also consider the identity solution considering the ecosystem of hte application. For example, I would prefer AWS Cognito UserPools if I’m planning to deploy an application in AWS Cloud. Similarly, Azure B2C is another service considerable if you use the Azure Platform.
However, when comparing AWS Cognito UserPools and Azure B2C, I would say AWS Cognito UserPools has the edge, in my opinion, considering the features it enhanced over the last few years. My favorite features are the custom Domain support and AWS Lambda triggers to customize the JWT token, which is not available in Azure B2C as of writing this article.
If you are implementing realtime application features such as chat messaging, realtime notifications &, etc., it’s important to consider web socket communication. Rather than implementing web sockets and manage the scaling, it is way convenient to go ahead with platforms like PubNub , which provides the end to end delivery of messages at scale. With the advanced features, it offers including the flexible permission model that stands out from the rest.
One of the top options is Google Firebase . It also provides realtime communication capabilities with the underlying data storage that is easy to implement integration by any application. Few other alternatives are Azure SignalR and AWS AppSync that you could consider your application requirements.
Bit.dev is a very popular cloud component hub. It is, essentially, a place to share, organize and collaborate on individual JS components.
Bit.dev works perfectly with Bit , an open-source tool for independent versioning and publishing of components (from any codebase to Bit.dev’s private registry).
One of the cool features Bit.dev has recently come out with is automated PRs to Github projects that consume shared components (that happens whenever a shared component gets updated). I’ve found it quite useful as a way to “smooth” and improve collaboration.
Bit.dev supports Vanilla JS, NodeJS, TypeScript, React, React with TS, Angular, VueJS and many others.
Alternatives in this category, more or less, could be a combination of numerous tools but I couldn't find a single analog product.
Considering the NoSQL database solutions out there, Azure CosmosDB stands out with its support for a comprehensive list of APIs, including SQL, MongoDB, Cassandra, Tables, or Gremlin.
One of the popular choices for this is AWS DynamoDB. From my experience, the main limitation with AWS DynamoDB in comparison is the developer friendliness of the API and query capabilities. Although AWS DynamoDB supported a massive scale and improved its features over the years, I see a challenge in using it as the only database storage for a web application, where AWS DynamoDB query limitations become a significant drawback for the application development.
If you look at content management, it has shifted its course for headless solutions with the separation of content management and content presentation. Contentful CMS is the leading headless content management service that offers all the capabilities in one place. It provides the flexibility of extending the content management dashboard as well as the feature-rich API supporting all the necessary demands for both content management and delivery.
AWS Aurora Serverless offering stands out with its unique pricing model where you pay only for the consumption at a time where instance-based pricing was the norm. Since AWS Aurora supports MySQL and Postgres (On Preview at the time of writing this article), it’s an easy adoption for many developers.
One of the clear competitors entered this area lately is the Azure SQL Server Serverless solution. For people who use .NET or familiar with SQL Server, this is the serverless solution most of them will consider. Within this category, it will be fierce competition in the year 2020.
DataDog is the leading solution provider in this segment, supporting various platforms. They have built the specialty from infrastructure monitoring to application-level telemetry, which addresses the needs of a broader audience considering its reach.
If you develop your application using .NET, Azure App Insight is the most preferred solution. Another option is to use AWS CloudWatch, which is more towards the infrastructure level log management if you are running your application in AWS Cloud.
Amazon S3 was one of the earliest services AWS offered to its customers. Since then, it has been the category leader and still considers as an option well beyond the AWS Cloud for file storage. The availability and durability of file storage, flexible APIs, and SDKs make it unique and become a developer-friendly solution for many file storage needs.
Azure Blog Storage is an alternative if your application is running in the Azure Cloud Platform.
One of the best services Microsoft has recently created is its Azure DevOps platform. It is a combination of Source Control, Task Management, Continous Integration, and Continous Delivery (CI/CD), Artifacts &, etc., which provides all the functionality needed for DevOps in one place. The clear advantage of Azure DevOps is its capability to extend beyond Azure having an extensions market place is simply amazing.
Few other popular tools involved CircleCI , TravisCI , Bamboo (Atlassian Dev Tools), which mainly focus on CI/CD aspects of an application. If you are using AWS Cloud, the combination of AWS Code Commit , AWS Code Pipeline , AWS Code Build , and AWS Code Star provides an alternative. However, I would still prefer the elegance of Azure DevOps as a single solution ahead of its competition.
AWS CloudFront is one of my favorite services in AWS Cloud, which provides the capability to as a Content Delivery Network (CDN) and a Proxy. This combination supports most of the advance use cases, where simple mediation of the messages is also possible with AWS Lambda integration. One of the main advantages of the service is its consumption-based pricing model, tight integration with AWS services as well as the flexibility to extend beyond AWS.
AWS API Gateway is one of the leading serverless solutions for API Management with a flexible request-based pricing model. This pricing model also creates new avenues in using it as a Micro Gateway for Microservice development in comparison to other API Management solutions out there.
One of the direct options with AWS API Gateway is Azure API Management . However, I see its instance-based pricing model as a significant drawback, especially in using Azure API Management as a Micro Gateway.
Zappier is the leader in Workflow orchestration, where it supports thousands of app integrations out of the box. The unique advantage of Zappier is that it requires zero to none developer experience to orchestrate and workflow, by using their user interface wizards.
One of the apparent competition comes from Microsoft Logic Apps for Zappier, where it supports a range of app integrations as well as support to extend using Azure Functions.
Besides, for the programmer level, workflow orchestrations, you can consider AWS Step Functions or Azure Durable Functions depending on the selection of the Cloud platform you are using for your application.
After going through my top selections, you might wonder, are these the only categories out there for Serverless solutions. Besides, if we categorize them slightly differently with a specialization, the category leaders could differ as well. Therefore, it is possible to list or derive more categories. But I have limited this article with the above categories, considering my familiarity with the services and alternatives.
When selecting Serverless solutions for your applications, it is also essential to factor the platform that you are using. For example, if you are using AWS Cloud as the underlying platform, you might prefer using AWS Cognito as oppose to Auth0 considering other factors such as ease of governance, integration with other AWS services &, etc.
Therefore consider the above list as more of a guide for you to evaluate each of the Serverless solutions. Also, I would recommend evaluating the alternatives under each category before selecting a best-fit for your application needs. At last, if you have different recommendations under each category, feel free to comment below with your reasoning.