Imagine that, as a backend developer, you can program your applications without having to worry about a server. Serverless computing makes this possible.
Servers are not used in serverless computing, serverless architecture, or serverless infrastructure. This allows developers to build and run cloud applications and services without having to worry about servers and managing those servers.
What does serverless computing mean?
Serverless doesn’t mean completely serverless. In serverless computing, the server layer is completely abstracted, even though, of course, there is still a physical server somewhere. However, the developer never comes into contact with it; they don’t have to think about the technology or the operating system of the server used.
One feature of serverless infrastructures is that the developer uploads functions that are based on events. The functions are then executed when predefined events occur. This is known as ‘event-driven computing’.
Depending on the serverless platform used, the developer can write code in various programming languages, such as:
In doing so, the developer determines the response for certain events. If the predefined event occurs, the function is run as a stateless transaction.
The serverless platform provides resources that are required to process data, and automatically scales it using triggers. The customer doesn’t have to worry about resources or resource provisioning. Clients only pay for resources that are used to execute functions. If nothing is triggered, the client pays nothing. If 1 million triggers are generated, the system still functions properly.
Application examples for serverless computing
The number of options available for serverless architecture is enormous, so we have given just a few examples here:
- Automatic image processing: Different image formats/sizes are automatically created when uploading an image file.
- Automatic video processing: When a video file is uploaded, it is automatically converted into different formats.
- Monitoring and debugging: Notification or functions as a response to certain triggers, for example if a user executes an action or if there are some data or system status changes.
Pros of serverless computing
Transparent costs: customer only pays for resources that are actually used.
Virtually unlimited resources such as computing power and memory, which are provided when needed.
Simplified operation so developers are able to focus on their core competencies.
Cons of serverless computing
- Possible loss of control and platform dependency.
This is also linked to complicated processes when changing provider.
Performance can be weaker, as the resources are only made available on-demand, which can lead to delayed responses.
Serverless computing solution providers
AWS Lambda from Amazon
Amazon launched AWS Lambda as the first serverless computing solution. AWS Lambda automatically executes code on a high-availability computing infrastructure. In doing so, the system handles all of the administration, including server and operating system maintenance, and provision of capacities and automatic scaling. Billing is based on the number of executed requests and the time taken to execute the code.
Google Cloud Functions
Google’s serverless computing solution was launched in 2016. This solution is mainly geared towards developers who want to create APIs and micro-services using simple, loosely coupled functions. This model promotes the agility of software teams, as they can provide small, independent functional units that are dedicated to a specific task.
Microsoft Azure Functions
Even Microsoft included a serverless computer product in its portfolio in 2016. With respect to features, Microsoft’s solution barely differs from Google or Amazon, but Microsoft Azure Functions offers a bigger selection of programming languages, and is therefore geared towards a wider audience.
Managed AWS with nine
As easy developing applications and features might sound due to serverless infrastructure, there are a few sticking points:
- Migration: Providers don’t give any in-person support when you move to the cloud. Clients have to see whether their desired features are compatible with the cloud and how to migrate data themselves.
- Expertise: There is a huge range of different features and services, even before cloud providers start making customised recommendations. This results in the client carrying out time-consuming and costly research.
- Management: Serverless computing is often only partly serverless. Other parts are executed on virtual instances, which still need to be maintained.
- Security and risks: If there are any problems or errors, these are not automatically flagged or corrected. As a result, client systems may not function properly or may be unavailable.
As an experienced provider of cloud and hosting solutions, we help clients migrate their infrastructure to Amazon’s AWS Cloud. Find out more about our Managed AWS Cloud Solution and contact us for a one-to-one consultation.