TNS Guide to Serverless Technologies: The Best of FaaS and BaaS
Like the terms “microservices” and “containers” before it, “serverless” is a loaded word. Countless blogs have argued about the meaning or importance.
The first, obvious statement everyone makes is that, yes, there are servers or hardware of some sort somewhere in the system. But the point of “serverless” is not that servers aren’t used; it’s just that developers and administrators do not have to think about them.
Serverless architectures refer to applications that significantly depend on third-party services. “Such architectures remove the need for the traditional ‘always on’ server system sitting behind an application,” said software developer Mike Roberts, in an article on Martin Fowler’s site. Inserting serverless technologies into systems can reduce the complexity that needs to be managed, and could also potentially save money.
Being new in the industry, however, such technologies tend to be still immature, and many can lock in the user to a vendor. To get a lay of the land, we compiled a list of the most notable serverless vendors and services. Hopefully, it will provide you an overview of the companies and technologies you will encounter as you do your own research on the subject. (A special thanks to Philipp Müns for his awesome serverless list and Peter Sbarski for his list, both of which were used to compile this collection).
Roughly speaking, serverless technologies can be broken down into two categories, backend-as-a-service (BaaS) and functions-as-a-service (FaaS). FaaS provides a computational muscle to carry out a function designed by the user, requiring little more than the code itself, which the service can execute when triggered. FaaS is increasingly used for real-time data processing.
BaaS has its roots in Mobile BaaS (MBaaS), a set of technologies, such as Facebook’s Parse, that provided backend support for mobile apps. While FaaS only offers to execute users’ code, BaaS offers a complete online service. Google’s Firebase, for instance, offers a fully managed and hosted database.
Function as a Service
Cloud Functions (Google): A lightweight, event-based, asynchronous compute solution that allows you to create small, single-purpose functions that respond to cloud events without the need to manage a server or a runtime environment. Only supports Node.js thus far.
IronWorker (Iron.io): With IronWorker, you can run AWS Lamba-like serverless functions from inside your firewall. IronWorker is a platform that isolates the code and dependencies of individual tasks to be processed on demand in a containerized environment. It is pre-integrated into many cloud-native platforms, such as Cloud Foundry, Kubernetes, Mesos and others.
Manta Functions (Joyent): A service on Joyent’s hosted platform, Manta Functions provides function execution within Joyent’s Manta object storage service. It will executes, on-demand, on Joyent’s Manta Objects without having to move the data into a separate computing environment.
Serverless Docker (Docker): Currently a demonstration project, Serverless Docker would provide a foundation for Docker containers to be used as functions from within other containers.
Backend as a Service
Amazon API Gateway (Amazon Web Services): A fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.
Amazon Cognito (Amazon Web Services): This service provides a way to add user sign-up and sign-in to mobile and web apps.
AnyPresence (AnyPresence): AnyPresence offers an enterprise platform that merges capabilities for mobile app development, API management and back-end management.
Appery.io (Exadel): Appery is another MBaaS that also has an API service and developer tools.
AWS DynamoDB (AWS): A fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale.
Baasil.io (Baasil.io): Baasil describes itself as an auto-scaling cloud-native real-time stack, powered by the open source SocketCluster, a WebSocket framework for Node.js. Still in private Beta.
Back& (Backand): Backand is a BaaS specifically designed for AngularJS and ReactJS, with many integrations to social media service, easy access to databases, and security and user management tools.
Backendless (Backendless): Backendless describes its software as an “API services platform.” The software automatically generates REST-based APIs for each client, connecting your mobile app to your service at the method level.
Baqend (Baqend): Baqend is all about performance, claiming itself to be the fastest backend service, able to load your websites and apps load up to two and half times as quickly. The database and back-end logic autoscales, and the service offers DevOps-friendly tools to expedite the development process as well.
Built.io Flow (Built.io): Built.io’s Flow is unique in that it is centered on supporting containers, allowing users to insert their code in a Docker instance and upload it to run on the Built.io’s servers.
Cloud Datastore (Google): A highly scalable NoSQL database for your applications.
Deepstream.io (deepstream.io): Deepstream offers server software that syncs data and sends events across millions of clients.
Firebase (Google): A platform for developing and deploying mobile applications. Firebase Realtime Database stores and syncs data with your NoSQL cloud database. Data is synced across all clients in real time and remains available when your app goes offline.
Hook Platform (Open source project): A BaaS package for PHP, Hook offers user authentication, data storage and persistence, package management and real-time communication.
Kii (Kii): a Japanese company, Kii has been angling its mBaaS for the emerging Internet of Things market, to help developers build apps for devices such as wearables, offering appropriate services such as geolocation and push notifications.
Kinvey (Kinvey): Focused on providing MBaaS for the enterprise, Kinvey offers big business-friendly features such as HIPAA compliance, which should come as a relief to health industry service providers who want to take part of the mobile app revolution.
Parse Server (Open source project): An open source version of the Parse backend, originally developed by Facebook, that can be deployed to any infrastructure that can run Node.js. Parse Server works with the Express.js web application framework. It can be added to existing web applications or run by itself.
Skygear (Skygear): A BaaS built in the Go programming language, Skygear could be seen as an open source alternative to Google Firebase, with a database and real-time data synchronization, as well as support for push notifications and custom code. Unlike Firebase, Skygear offers support for relational data types.
StrongLoop API Gateway (IBM): The StrongLoop API Gateway acts as an intermediary gateway between API consumers (clients) and backend providers (API servers) that externalizes, secures and manages APIs.
Streamdata.io (Streamdata.io): The service provides a way to cache and push data from any API with a scalable service.
Usergrid (Apache Software Foundation): An open-source BaaS composed of an integrated distributed NoSQL database, application layer and client tier with SDKs for developers looking to build web and/or mobile applications rapidly. It is a multitenant system designed for deployment to public cloud environments or to run on traditional server infrastructures so that anyone can run their private BaaS deployment.