Exploring the Ecosystem of Serverless Technologies

Shares

Exploring the Ecosystem of Serverless Technologies

serverless technologies

In July 2017, Gartner released its report- Hype Cycle of Emerging Technologies which mirrored the blast of intrigue in the Serverless technologies.

According to this report, Serverless technologies are in its infancy stage and has been placed in the ‘innovation trigger’ phase, to which we totally agree.

The emergence of Serverless technologies has transformed the way we deploy and build our applications. AWS Lambda came off as a breakthrough technology that catalyzed innovation and prompted an expansion in the development of the FaaS-centric landscape.

In this post, we’ll examine all the corners of the serverless ecosystem. However, most of the developments within the serverless domain are open source. Nevertheless, we are expecting a rise in the maturity of the serverless landscape over the time and we hope to see the expanding number of business offerings.

Moreover, according to the Gartner’s forecast, mainstream adoption of serverless technologies will be a reality within 3-5 years, which I think will be earlier than that due to the immense guarantee these expanding serverless technologies are promising.

serverless landscape

Functions as a Service – FaaS

FaaS serverless technology

#1. Microsoft Azure Functions: Developed by Microsoft, this is an event-driven, compute-on-demand experience that extends the existing Azure application platform with capabilities to implement code triggered by events occurring in Azure or third-party services as well as on-premises systems.

#2. Google Cloud Functions: This is a serverless execution environment for building and connecting cloud services, developed under Google Cloud Platform. With these, you write simple, single-purpose functions that are attached to events emitted from your cloud infrastructure and services.

#3. AWS Lambda Functions: Part of Amazon Web Services, this is a serverless computing service that runs your code in response to events and automatically manages the underlying computing resources for you. You can use these to collaborate with other AWS services with custom logic or create your own back-end services that operate at AWS scale, performance and security.

#4. Iron.io: This is an open source function as a service platform. Since containers are used as the building blocks, it can be written in any language. Moreover, it has the ability to run in the private, public or hybrid cloud.

#5. IBM Cloud Functions: Developed by IBM, based on Apache OpenWhisk, this is a FaaS programming platform which supports multiple languages for delivering code which is lightweight that scalably executes on demand.

#6. Docker: Docker is an open platform for developers to build, ship and run distributed applications. It provides CaaS which are lightweight by design and perfect for enabling microservices application development. You can use this to containerize the functions, then run them on-demand on a Docker Swarm.

#7. PubNub Functions: These are serverless functions which enables you to quickly develop microservices and incorporate logic like-routing, augmenting, filtering, transforming and aggregating data.

#8. Binaris: It is a pioneer in providing function as a service. The focus is given over every millisecond at the 99th percentile. It is suitable for real-time bidding, AR, cognitive computing, interactive games, etc. where unpredictable response time is not an option.

#9. Bitnami-Kubeless: THis is a Kubernetes-native serverless platform which let you deploy serverless functions. It is designed to deploy on the top of Kubernetes cluster, in such a manner, that you can take advantage of all the Kubernetes primitives.

#10. Nuclio: An open serverless platform which is efficient and faster than bare-metal code. It brings hybrid functionality and works with data and event sources to enable excellent performance and development. It can be used for IoT devices, on-premises datacenters, cloud deployments eliminating cloud lock-ins and enabling hybrid solutions.

#11. Nano Lambda: These are useful when you want to execute a function without having to name it. It can be also used to pass one function to other functions to do stuff. For example, Lambda architecture allows you to run ad-hoc queries against all of your data to get results, or real to incoming data for real-time, event-driven micro-services.

#12. OpenFaaS: This let you to pack anything as a serverless function- from Node.js to Golang to Sharp, event binaries like ffmpeg. These are known for being a developer first, operational simplicity and community-centric.

#13. OVH Functions: A FaaS platform that allows you to focus only on the code. This platform provides you logs and metrics. Moreover, you can also inject environment variables in your functions. Your functions can be invoked with HTTP requests, Kafka messages or scheduled events using triggers.

#14. Fission: This is a leading open-source FaaS serverless framework for Kubernetes. Fission focuses on developer productivity and high performance. It is built by Platform9 and many contributors in the Kubernetes community.

#15. Spotinist Functions: A fully managed serverless compute platform built to reduce compute and networking costs and application latency by leveraging cloud vendors’ excess compute capacity and network rates via the ‘Serverless’ FaaS paradigm.

#16. Twillio Functions: These are serverless environments which enable developers to quickly and easily create production-grade, event-driven Twilio applications. These functions will replace your need to find the hosting or stand up a server or any other HTTP based responses for Twilio application.

#17. Syncano: It’s a platform through which you can configure sockets, which are configurations connected to Syncano services, and build serverless applications. It provides a dashboard and SDKs to define data schema. The company is believed to be the most mature in the serverless landscape.

#18. Weblab.io: As per the company claims, they offer lambda-like microservices, just on steroids. With weblab, you can write your microservice on your machine and can simply deploy it with just one command. Moreover, you can deploy your microservice from any GitHub or BitBucket repository.

#19. PubNub Blocks: A serverless environment to execute functions on the edge, enriching, transforming and filtering messages as soon as they pass through the PubNub network.

#20. Red Hat Apache OpenWhisk: An open-source Cloud/Serverless platform that executes functions in response to any events at any scale.

#21. Spring Cloud Functions: This is a new project with goals of promoting the implementation of business logic via functions and to support a uniform programming model across various serverless providers with the ability to standalone (localhost or PaaS).

Read our blog – ‘The Comprehensive Guide to Serverless Architecture‘ for understanding the details of this technology.

Backend as a Service – BaaS

BaaS serverless technology

#1. AWS API Gateway: A fully managed service that for developers to create, publish, maintain, monitor and secure APIs without worrying about scaling. Within few minutes, you can create an API that acts as a ‘front door’ for applications to access data and other functionalities from your app backend.

#2. AnyPresence: An enterprise solution which can be used to generate mobile SDKs (such as iOS, Android, HTML5, Windows Phone, Xamarin), language SDKs (such as Java), app UIs and mobile backend server. All these solutions let you integrate them into the source systems, role-based access, authentication, push notifications, etc.

#3. Appery:  An all-in-one MBaaS company which lets you focus on your app rather than infrastructure by providing services like database, push notifications, user management, file management, instant REST APIs, webhooks, etc.

#4. Backendless: A complete serverless backend service with support for user authentication and management, data persistence, file storage, push notifications, analytics, messaging and custom business logic.

#5. Baqend: As claimed by the company, it is world’s fastest backend service provider due to its global aching and scalable database solutions. It is known for its lightweight initial setup process without any own technical infrastructure which gets you started instantly to run your serverless application.

#6. Kinvey: A serverless cloud platform which is known for powering mission-critical apps. It offers smooth native experience on all channels, serverless platform without any assembly, open & standards-based architecture which can be run on any cloud, etc.

#7. Parse Server: A open source version of the Parse backend that can be deployed to any infrastructure that can run Node.js. It works with the Express web app framework. Moreover, it can be added to any existing web app or run by itself.

#8. Usergrid: This is similar to backend as LAMP stack but built for mobile. This is an open source backend with complete SDKs for iOS, Android, HTML5/JS, Node.js, Ruby, Java, .NET and PHP. It is a multi-tenant system designed for development to public cloud environments.

#9. Hook platform: This is an open source project. This is basically a BaaS package for PHP which offers real-time communications, data storage and persistence, user authentication and package management.

#10. Kii: It is a Japanese company which is known for providing enterprise solutions with flexible public and private cloud deployment options. It is mainly operating in providing its mBaaS services in the IoT market for building various types of applications.

#11. Skygear: This is a BaaS built in with Go programming language. It is an open source project which offers database (could be considered as an alternative to Google Firebase) and real-time data synchronisation, push notifications and custom code.

#12. StrongLoop API Gateway: Exclusively an API Gateway providing services which can act as an intermediary between clients (API consumers) and backend providers (API servers)  which deploys, maintains and secures your API.

Serverless Database

serverless Database (1)

#1. Firebase: Developed by Google, it is an ultimate platform to develop your applications. This is a cloud-hosted NoSQL database which will let you store and update real-time data between users.

#2. FaunaDB: This is an operational adaptive database with multi-tenant, multi-model database system with a powerful query language. This is available in serverless, cloud and on-premises.

#3. GraphQL: It is basically a query language for your APIs and a server-side runtime for executing queries by using a type system you define for your data. It isn’t tied to any specific database or storage engine and is instead backed by your existing data and code.

#4. AWS Aurora: This is MySQL and PostgreSQL compatible relational database built for the cloud. This provides the availability and performance of high-end commercial databases with simplicity and cost-effectiveness of open-source databases.

#5. AWS DynamoDB: This is extremely fast and flexible NoSQL database services for all applications that need consistent, single digit millisecond latency at any scale. It is fully managed cloud database and supports key-value as well as document store models.

#6. Google Datastore: A NoSQL document database with the focus on auto-scaling and high performance. This is ideal for applications that rely on highly available structured data at any scale.

#7. Azure CosmosDB: A NoSQL database which offers multiple well-defined consistency models with high availability and low latencies anywhere in the world.

Read our blog – ‘Serverless Databases- Future of Event Driven Architecture‘ for understanding the details of this technology.

Serverless Authentication & Authorization

Serverless Authentication and Authorization (1)

#1. Auth0: This is known for solving the most complex identity use cases with an extensible and easy to integrate platform. This offers adaptive multi-layer security with high availability and resilience.

#2. Amazon Cognito: This lets you add user sign-in/sign-up and access control to your web and mobile apps quickly and easily. This can scale up to millions of users. It also supports sign-in with social identity providers like Facebook, Twitter, Google, etc.

#3. DailyCred: An all-in-one platform which provides registration, social registration, resetting passwords, monitoring events, banning users, deleting or creating accounts and logging in as well. It has the special facility of Single-Sign-On (SSO) which lets users move between websites, apps, etc.

#4. OAuth: As per the company claims, you can integrate OAuth in just 90 seconds. It has over 100 API providers with SDKs readily available in JavaScript, NodeJS, PHP, iOS, Android and Phonegap.

#5. Okta: This provides authentication, authorisation and user management to your web or mobile app within minutes. It also provides Single-Sign-On and Social Logins as well.

Serverless Monitoring Platform

#1. IOPipe: This is a high fidelity metrics and monitoring services (like function performance metrics, real-time alerts, distributed stack traces, real-time dashboards) which allows you to see through your AWS Lambda functions for better insights into the daily operations and development of serverless applications.

#2. Dashbird: This works by collecting logs through AWS CloudWatch APIs. It has some distinct features like end-to-end serverless monitoring, error tracking and debugging which can help in performance and cost optimisation.

#3. Stackery: A serverless console which provides an intuitive automation, predictable performance and operational control. It is known for improving security, transparency and reliability across the entire stack.

#4. Epsagon: This provides a complete monitoring solution for serverless applications. It automatically analyses your serverless application, identifies potential issues and allows fast troubleshooting.

Read our blog – ‘Serverless Performance- Challenges & Best Practices‘ for understanding the details of serverless performance.

Serverless Tools/Platforms

serverless Tools-platforms

#1. Clay: This can be used to create a HTTPS function instantly. This gives more focus on exceptional developer experience. Its editor can be used for improved debugging, access to all NPM packages and to store private keys securely.

#2. LambCI: This is a small package which can be uploaded to your AWS Lambda and is triggered when you push new code or push existing requests on GitHub and run your tests. It supports languages like Java, Go, Python, etc. The prerequisite to use LambCI is AWS Account and OAuth token.

#3. Node Lambda: Basically a command line tool to locally run and deploy your Node.js application to Amazon Lambda. It was created in 2009 as an open source project to help JavaScript developers to easily share packaged modules of code.

#4. Gordon: A tool to create, wire and deploy AWS Lambdas using CloudFormation. This supports Python, Golang, Scala, Java and JavaScript.

#5. Kappa: An inline command line tool that makes it easier to deploy, update and test functions for AWS Lambda. It creates the IAM execution role and its associated policies for you. If, in case, you need to make changes, you can easily update your Lambda function with Kappa.

#6. Lambda Uploader: A quick command line utility tool for packaging and publishing Python AWS Lambda functions.

#7. Open Lambda: An open-source serverless computing platform which supports most of the leading serverless platforms.

#8. Back&: A single platform from where you can run multi-cloud and serverless applications. It provides, Database-as-a-Service, Function-as-a-Service, Security-as-a-Service and Integration-as-a-Service.

#9. Distribyte: This aims to bring the advantage of serverless to the real-world applications. With the help of this, you can store data seamlessly between compute invocations.

#10. Algorithmia: This is a serverless platform for deploying algorithms as microservices with instant scaling and a specific focus on Machine Learning. It supports major programming languages and offers rich functionality via a Git Client and web-based IDE.

Serverless Libraries

serverless Libraries (1)

#1. Function Development Kit (FDK): This is a Node.js library to improve developer experience developing Serverless applications. It contains a client to configure and interact with the event gateway.

#2. Python Lambda: This is a library to develop and deploy serverless Python code in AWS Lambda. This library takes away the guesswork of developing your Python-Lambda services by providing you a toolset to streamline the annoying parts.

#3. Standard Library (StdLib): With a focus on developer velocity, you can use StdLib tools to build and ship custom application logic and APIs using infinitely scalable ‘serverless’ web functions. This library is known for making the web development simple again.

Security

Serverless Security (1)

#1. PureSec: This is a security platform built for serverless architectures. This is presently in closed beta and can be accessed by contacting the company.

#2. Synk: This closely and continuously monitors your application dependencies and lets you quickly respond when any vulnerabilities are found. Synk CLI is compatible in finding vulnerabilities with JavaScript, Ruby, Python and Java.

#3. Twistlock: It provides security services for applications using AWS Lambda, Azure and Google Cloud. Some of the distinguished features of this security service are visibility to vulnerabilities impacting your app, integration of serverless scanning into CI/CD pipeline and advanced threat intelligence.

Read our blog – ‘A Brief Analysis of Serverless Security‘ for understanding the details of this technology.

Serverless Frameworks

#1. Apex: This lets you develop, deploy and manage AWS Lambda functions without much hassle. This framework lets you work with languages that are typically not supported by AWS Lambda such as Golang, through the use of Node.js shim injected into the build.

#2. AWS Chalice: This is a python serverless microframework for AWS. With the help of this framework, you can easily develop and deploy applications that use Amazon API Gateway and AWS Lambda. It also provides a command line tool and automatic IAM policy generation.

#3. AWS SAM: This framework aims to set a Standard Application Model for serverless applications. It started off as a GitHub project and its current version is AWS SAM 2016-10-31. This repository contains all the previous models and ideas for the future versions as well.

#4. Claudia.JS: This makes it extremely easy to deploy your Node.js projects on AWS Lambda and API Gateway. With this, you can get started with Lambda services easily as it automates all error-prone configuration and deployment tasks.

#5. Dawson: A serverless framework on AWS CloudFormation, CloudFront, API Gateway and Lambda for Node.js. This can be used to build and deploy backend code single page apps + API, pure APIs and server-rendered pages.

#6. DEEP: This is a full-stack JavaScript framework for building cloud-native applications. Presently, AWS is the only supported platform to use this framework.

#7. Effe: An extremely building block for developing a serverless architecture which operates on the level of single lambda. The easiest and fastest way to use effe is using effe-tool.

#8. JRestless: A framework which lets you build serverless applications using JAX-RS or rather to run Jax-RS applications in FaaS environments like AWS Lambda. The aim of this framework is to avoid a cloud-vendor lock-in and to allow developers to run and test their code locally.

#9. Lambder: This helps you write small tasks, which can be executed in a single function, in python and schedule them as AWS Lambda. However, scheduled lambdas have a steep learning curve as you will have to learn IAM roles, CloudWatch Events, and how to deploy and update Lambda function code.

#10. Lambda Forest: This is a microframework which facilitates you with a set of tools so as to make the development of rest API’s using AWS Lambda and API Gateway easier. In order to use this framework, AWS API Gateway needs to be configured using Proxy Integration.

#11. Lambdify: This module provides convenient functions to transform sympy expressions to lambda functions which can further be used to calculate numerical values efficiently and fast.

#12. Lambdoku: A simple abstraction layer over AWS Lambda API effectively invoking aws-sdk, which gives you a Heroku-like experience. Though, prerequisites are Node and npm (ES6 support required).

#13. Lambda-restify: If you are writing aws lambda function to develop rest APIs using AWS API Gateway, this package will help you with response/request/routing/middlewares/versioned APIs type features generally found in packages like restify or express.

#14. SCAR: This is a framework to easily execute containers out of Docker Images in AWS Lambda. This provides the benefit of AWS Lambda with your choice of executing environment, provided as a Docker Image in Docker Hub. It is the easiest way to run the generic application on AWS Lambda.

#15. Sparta: It transforms a go binary’s registered lambda functions into a set of independently addressable AWS Lambda functions. Moreover, it also provides services of defining IAM Roles under which their function will execute in AWS.

#16. Squeezer: This offers you the support to get a progressive and blazing fast development cycle for building serverless, auto-scalable APIs and web apps. Some of its distinguished features are pay-as-you-go model, intuitive deployment and smart testing.

#17. Zappa: You can think of Zappa as ‘serverless’ web hosting for python apps. This makes easy to build and deploy event-driven Python applications on AWS Lambda + API Gateway. Deploy your application with single command out of the box!

#18. Fission: This is a framework for serverless applications on Kubernetes and can work anywhere you want. With this framework, you don’t need to build containers and manage Docker registries. It is open-source under the Apache license.

#19. Serverless Inc. : The Serverless framework is a single toolkit that you need to deploy serverless applications anywhere you want. With more than 18,000 stars on GitHub, some of its distinguished features are multi-language support, community-made plugins, unified dev experience, etc.

#20. Up: This helps you in deploying scalable serverless apps, APIs and static websites in seconds. This is platform-agnostic, supporting AWS Lambda and AWS API Gateway as first targets. It is kind of a self-hosted Heroku style user experience for a minimal price with unique features.

#21. Cloud Infrastructure Manager:  This is a single command line utility that bootstraps your CloudFormation CRUD operation. Moreover, it makes them easy to execute, repeatable and error-free.

#22. Middy: This a Node.js  middleware engine for AWS Lambda. The middleware pattern allows developers to isolate the common technical concerns into ‘steps’ that decorate the main business logic.

#23. Modofun: It stands for modular functions which is a fast dependencies function router for serverless applications. It is a very lightweight Node.js package which helps in building nano/microservices for serverless platforms.

#24. Shep: This is a framework for building JavaScript applications using AWS API Gateway and AWS Lambda. This is built to automate deployment tasks, which gives you the ability to deploy an entire API and suite of Lambda functions with one CLI command.

#25. Turtle: Turtle is a toolkit for building and orchestrating event-driven and serverless applications. These apps may run anywhere, either locally or, via execution drivers, in the cloud.

#26. Vandium: This is an open source framework for building, securing and simplifying AWS Lambda event handlers. This allows you to write clean and elegant code while serverless helps in simple and systematic deployments.

#27. Galactic Fog:  This platform provides a common control plane for corporations to rapidly adapt, build and deploy the cross cloud, enterprise-scale FaaS, CaaS and other cloud-native architectures while providing ubiquitous audit, security and governance capabilities in both private and public clouds.

Conclusion

The landscape of serverless technologies is boundless and is constantly updating. Though, one must remember that choosing the right serverless architecture is the ultimate key to building a robust and cost-effective application.

If you think we’ve missed something, kindly comment and let us know. Watch out this space to keep yourself updated about the technologies in the serverless ecosystem.

Jignesh Solanki

A thought leader, Jignesh leads Simform's Product Engineering team by DevOps Institutionalization, end-to-end product development and consulting led transformation programs.

Subscribe To Our Newsletter!

Get the latest updates on rapidly evolving serverless technology. Get an email when any technology is added in the serverless arsenal.

You have Successfully Subscribed!