The serverless is now on the roadmap of more and more companies. However, if this decision is significant in terms of architecture, it is only a starting point. To achieve this, the paths to take are many and the choice of a technological solution remains a major challenge.
Commercial or open-source option? Loosely coupled tools or integrated development platform? Will the serverless platform be used for ancillary projects or for critical applications?
Serverless technologies evolve rapidly. So, before choosing, all options must be evaluated. Let’s review what’s available today.
Lambda, Azure Functions and Cloud Functions
AWS Lambda is the most popular serverless platform today, primarily because it is designed to work seamlessly with other AWS services. Users most often associate Lambda with the Amazon API Gateway to manage their APIs . This combination makes it possible to integrate existing legacy applications with modern applications, designed natively for the cloud. There is no need to modernize legacy applications to take advantage of modern applications. Lambda can also be combined with other AWS products, such as S3, CloudWatch and CloudTrail.
For their part, Azure Functions and Google Cloud Functions are similar to Lambda. Both services have the same capabilities and integrate easily – and logically – with the cloud platforms of their suppliers.
But beware: the lock-in must be taken into account. It is not easy to migrate from Lambda to a competing platform, and vice versa. The steps for performing functions, limits, and supported cloud services are all unique and vendor-specific. Before adopting this or that technology, it is important to properly evaluate each technology and understand if it meets the needs. It is also important to take into account all factors that may affect application performance, such as the file size limits assigned to each feature, how the platform processes requests, how quickly it is changing, and how load that she can handle.
It is also advisable to use the open source framework Serverless Framework. It is a command line interface (CLI) tool that makes it easy to perform actions on platforms like AWS Lambda.
Reliable open source tools for serverless
Open source has had very little place in the serverless ecosystem. If the management of a serverless framework can be done through open source, one must always provision the underlying resources for compute, network and storage.
That’s why cloud platforms appeal: they relieve the development teams of this very time consuming resource provisioning resource, although it is possible to do this on-site without resorting to the cloud.
There are, however, several open source options that may work, whether used in tandem with cloud or on-premise resource provisioning.
OpenFaaS is the most popular open source serverless framework. It allows to install a serverless architecture on any cloud platform or on site. The main advantage of OpenFaaS is that it supports Kubernetes or Docker Swarm.
However, OpenFaaS differs from other offers because it allows you to define custom restrictions and limits. For example, you can set the timeout and maximum file size for a single function – the 5 MB limit found on other serverless platforms. In addition, OpenFaaS should soon offer a feature that will make the system inactive when no function is running.
Kubeless is another open source framework that runs on native Kubernetes . It integrates with AWS Lambda and allows you to execute commands via a CLI. Other open source serverless frameworks include OpenWhisk, Iron.io and Fn.
PaaS and MBaaS offer alternatives
If these technologies appear only very little in the discussions related to serverless, PaaS and other MBaaS also have enough to represent alternatives.
These platforms focus on application development and hosting and focus on back ends for data integration.
They do not just do things. On the contrary, they reduce the amount of code needed and speed up the development of applications.
The PaaS and MBaaS platforms are certainly complete offers, but are also more expensive.