Companies transfer to serverless computing to become more agile, scalable, and efficient. Instead of maintaining their own server infrastructure and investing in storage space, businesses can cooperate with professional vendors who specialize in providing safe, fast, and reliable computing infrastructure.
Choosing a serverless provider defines your project’s success early on. You need to find infrastructure that fits your product’s size, needs, team skills, and scaling ambition. To make this choice easier, we made a list of the top five serverless platforms of 2020.
What is a serverless platform?
The serverless model uses a combination of computing containers to provide software functionality and communication. The available computing power is always changing, depending on the user activity — if the app is actively running, it uses more containers, if not — less. The term “serverless architecture” refers to the fact that a product owner doesn’t handle server configuration or take responsibility for their resource allocation.
The main characteristics of serverless platforms:
- Abstraction: you don’t know anything about servers on which your program is running. All the details about operating systems, updates are handled by a third-party vendor — so you can focus on the primary user-side functionality.
- Flexibility: serverless platforms allow business owners to regulate the number of used computing resources. If the application handles small workloads, you don’t have to overpay for excessive server space. As soon as you need an increase in computing power, the platform will provide you with resources.
- Cost-efficiency: this is directly derived from flexibility, because you don’t have to overpay for the time when your app isn’t active.
The main reason to use serverless app development is optimising the costs of backend operations and increasing product scalability. You don’t have to buy server space “just in case” — you can increase or decrease your computing power anytime, without overpaying or underinvesting. Also, it's extremely important to use serverless monitoring tools so you have a full observability over your serverless app.
Serverless platforms take full responsibility for server performance, which is why picking an optimal vendor is a must. Here’s our list of the top five serverless services.
#1 AWS Lambda
AWS Lambda is an AWS serverless compute service. The platform corresponds to triggers to determine how much computing power an application needs at a given moment. It’s a go-to option for on-demand applications that are built with Python, Node.js, Java, Go, C#, and Ruby. It’s often used for software-as-a-service web platforms and considered to be the ultimate for Node.js development.
- The free version supports one million requests in 400,000 seconds per month;
- The premium version is priced on a per-request and per-second basis: $0.20 for one million requests and 0.000016667 for 1 GB per second.
- Paying for what you use: AWS Lambda offers a flexible pricing strategy, based not on the duration of the subscription or limited to a particular power, but depending entirely on the actual app’s performance.
- No need to manage infrastructure: AWS is among the most versatile development environments. It has tools for Cloud, database, AI, IoT, blockchain development. This allows outsourcing even the most complex infrastructure.
- Easy code deployment: Lambda offers a lot of servers for code deployment and authorization. You can use an AWS custom editor, Eclipse IDE or Visual Studio IDE. AWS Command Line Interface allows managing many services from a single command line and using scripts for development automation.
- Connection to the API gateway: AWS Lambda is integrated with Amazon API Gateway — a service that connects the API to your function and process HTTP requests.
- The lack of control of the environment: AWS Lambda doesn’t offer customization or setting possibilities to product owners; the majority of functionality was executed automatically.
- Complicated call patterns: Lambda is capable of performing even complex functions, and developers often forget about maintaining the readability of their code. In Lambda, ending up with a big monolith function is a common issue — because developers get caught up in what the platform can do.
- Computational limitations: the default deployment package can’t be bigger than 50 MB zipped or 250 MB unzipped. The ephemeral disc space can be only up to 512 MB.
AWS Lambda is used and supported by many software development tools. This is another advantage of using Lambda — you can integrate any software development tool with Lambda.
- Asana — the project management software supports Lambda-based triggers. Asana allows developers to connect all their Lambda code to its task managers and organize processes better.
- CicrleCI — this continuous development tool can be integrated with AWS Lambda. Developers can deploy code on AWS Lambda right after it has been written.
- InVisionApp — the UI-company switched their software to AWS Lambda. Every day, InVision processes 250,000 images — at some point, their customer service didn’t respond to these requirements. Serverless computing on Lambda allowed processing these requests much faster and increasing development speed.
#2 — Google Cloud Functions + Firebase
Google Cloud Functions is a serverless platform for event-driven development. The platform connects your code to Google Cloud Platform, setting up triggers that will activate responses to user actions and changes of application.
Google Cloud Functions can process the first two million requests for free. Each next million requests costs $0.40.
- Cost: Google Cloud Functions is cheaper than Microsoft Azure and AWS. You can get discounts for using the service long-term, use special price-tiers if you are a startup, and work with free services like Firebase and Filestore. On the other hand, Amazon and Azure provide very limited discounts.
- Instant updates: Google Firebase provides developers with immediate notifications whenever their data get updated.
- Unreliability: recently, Google Cloud has been experiencing a lot of power outages and performance issues.
- Lucille Games used Google Cloud Functions, Compute Engine, and Cloud Spanner to deploy and create original games. As a result, they were able to accommodate millions of daily users, minimize gaming delays, and decrease server costs by 30%.
- Smart Parking: an innovative IoT parking startup that chose building app on Google Cloud Platform from scratch in just four months. the company didn’t transfer to the serverless platform but created an entirely new product (Smart Park, IoT system that handles more than 50,000 sensors) from scratch right away on the Cloud.
#3 — Microsoft Azure
Azure is a complex of 100 serverless tools for software development, testing, deployment, and administrations. The platform uses Cloud and edge computing instead of using entirely local resources. The distinct characteristic of Microsoft Azure is its affinity towards DevOps — its tools are focused on enabling continuous testing, deployment, and integration. You might also check Azure vs AWS Lambda comparison.
Microsoft Azure unites hundreds of development and deployment tools, and the price of the subscription depends on how much computing power the application needs, what tools you will use, the size of your team, and the tech stack of the project. To take all these factors into account, the platform features a price calculator where product owners can approximate the cost of their Azure plan.
- Cybersecurity: the platform offers specialized tools for network safety, data safeguard, centralized visibility, risk prevention, and identity management;
- Scalability options: you can always check how much the updated version will cost and plan your project’s investments.
- Requires knowledge on server management — Azure allows a lot more customization options than other platforms, but in return, it requires developers and product owners to understand the specifics of server management;
- Low-performance speed: Azure tends to be slow in processing requests.
- HP used Azure to power its customer support — each year, the company handles more than 600 million contacts. Call data, customer contacts, and support information take a lot of server space and are hard to organize. To solve this problem, HP developed a conversational agent with Microsoft Azure Cloud and AI serverless tools.
- Asos migrated to Microsoft Azure in 2016, when the company wanted to improve the personalization of their services. To implement new customer experience models, Asos needed to respond to requests quickly and execute a lot of new features in a short span.
#4 — Alibaba Functions
An event-driven serverless platform for code development and updates. The service allows increasing the computing power in real-time, helping to seamless scaling. Businesses only pay for what they use — no fees for inactive times.
$19 for a month of using a Linux-based instance with 2 GB memory and one CPU.
- Easy trigger mechanism: to start a function, developers need to write a trigger in SDK or Compute API;
- Access to Chinese nods: it’s the best serverless framework for companies that have business connections with China and Asia;
- Works with popular development languages: the tool supports Node.js, Java, Python, PHP.
- Price: Alibaba is more expensive than AWS, for instance, and its plan is less flexible;
- A limited number of APIs: Alibaba’s functionality is so far limited, compared to more renown competitors like AWS or Azure;
- No active English-speaking community: Alibaba is heavily based in China, so finding educational resources and forums in English is more complicated than for Western-based vendors.
- Ford: when a company decided to actively promote its products on the Chinese market, they chose Alibaba Cloud, and Functions Compute for the deployment of their Chinese-oriented content.
- Air Asia: one of the biggest low-cost airlines in Asia, wanted to secure its ticket-booking app and website. They used Alibaba Functions to improve low-latency performance and Round Trip Time. Also, they used Alibaba security resources to recognise and block suspicious access attempts.
#5 IBM Bluemix/OpenWhisk
A serverless platform for event-triggered applications that works with triggers, rules, and events. The conditions for executing each feature is described with rules and serverless framework templates; it’s then executed with components. Each component has a clear task (Controller is responsible for API calls, Activators start the execution of the feature, etc.). IBM OpenWhisk features dozens of flexible components for web projects.
Like other serverless platforms, IBM uses a pay-per-use system. The platform charges $0.000017 for an executed second.
- Flexibility: you can change one component at a time and monitor its performance — there’s no risk of affecting the settings of the entire platform;
- Control via command line: while OpenWhisk has a GUI, it’s more comfortable for many users to use the command line to manage their app’s performance;
- Web IDE: a personalized platform where you can write code, track bugs, report issues, and track your activity. The solution was released in 2016, until then, users could only edit their app via the command line.
- Complicated interface: managing an app through a command line requires long-term software development expertise; their GUI editor isn’t intuitive either — you still need to write a lot of code manually.
- Product bugs and technical limitations: OpenWhisk is a relatively new platform, and the functionality is still unstable. Regarding tech limitations, the maximal execution time is five minutes, maximal code size — 48 MB, and the allowed number of triggers per minute is up to 5,000.
- The lack of competent tech support: IBM OpenWhisk team doesn’t handle user complaints promptly — delays take up to several days. Users end up relying on forums as if they are using open source serverless platforms and not a paid tool.
- American Airlines: the airline company migrated to the serverless platform to improve the performance of the client-side of their applications. The products were also undergoing a transition to microservice architecture and needed a secure deployment environment.
- Ubank: the company was interested in working with IBM Watson for creating AI-based services, but they also needed flexible servers that would accommodate their data. The logical solution was to use the platform that also belongs to IBM for the sake of operating in the same infrastructure. The company reports that this decision helped them release new products faster.
Serverless Solutions with TechMagic
Our team specialises in serverless development and building scalable secure systems. We help businesses to transfer to Cloud and serverless platforms — AWS, GCP, Azure, and others.
If you have a new web project in mind or would like to transfer the existing solution to the Cloud infrastructure, our team is ready to help. We already assisted companies in HealthTech, FinTech, MarTech, HR Tech, and across other industries to transition from located networks, build fast web and mobile services, test and deploy them to the market, and explore serverless benefits. Your business can be the next one.