It’s not just for private ap­pli­ca­tions: en­ter­prise digital solutions are becoming in­creas­ing­ly cloud-based. Several providers have launched in­ter­est­ing and promising service solutions, though many of them are hard to describe and dis­tin­guish. This is true of server­less computing, a very recent de­vel­op­ment that experts also refer to as function-as-a-service (FaaS). Though the name would seem to suggest that the cloud struc­tures don’t have servers, that’s not the case. We’ll take a closer look at the tech­nol­o­gy below.

Compute Engine
The ideal IaaS for your workload
  • Cost-effective vCPUs and powerful dedicated cores
  • Flex­i­bil­i­ty with no minimum contract
  • 24/7 expert support included

What does the server­less concept mean?

Server­less computing or server­less ar­chi­tec­ture refers to a cloud-based model that enables users to create and run ap­pli­ca­tions or processes without direct contact with the un­der­ly­ing server. These cloud en­vi­ron­ments do have servers – though the provider takes sole re­spon­si­bil­i­ty for the provision, scaling, and man­age­ment. Ac­cord­ing­ly, the server­less approach goes one step further than the platform-as-a-service model (PaaS), in which de­vel­op­ers and customers have to com­mu­ni­cate with the server(s) via an API and add or enable resources them­selves.

As these ad­min­is­tra­tive tasks are not needed in projects with server­less computing in­fra­struc­tures, de­vel­op­ers can focus entirely on de­vel­op­ing and im­ple­ment­ing the re­spec­tive software. However, to make this possible, stateless functions con­tain­ing in­struc­tions for the program’s response to specific events in addition to the actual program code must be created. The re­spec­tive program code – including the required functions (stateless so fully in­de­pen­dent of in­fra­struc­ture) – can then be uploaded to the cloud en­vi­ron­ment at any time. Due to the key role the functions play there, some providers call their server­less services “function-as-a-service (FaaS)”.

Note

Server­less computing providers are re­spon­si­ble not only for ensuring that the required server resources are available at all times, but also for guar­an­tee­ing maximum re­li­a­bil­i­ty. The services are generally charged based on a pay-per-use model so that customers only pay for the services they actually use.

How does server­less computing work?

Hardware man­age­ment by the provider is the key to a server­less ar­chi­tec­ture. The only challenge for users is to integrate their software, including the cor­re­spond­ing functions, into the rented cloud struc­tures. These functions can be called:

  • asyn­chro­nous­ly via events
  • or syn­chro­nous­ly, based on the classic client-server model.

The former has the advantage of pre­vent­ing excessive coupling of in­di­vid­ual functions, min­i­miz­ing the resources required. One example of an event-based function is gen­er­at­ing a thumbnail whenever an image is uploaded. In the classic method, the client has to send a separate request to the server to call a function and to create the thumbnail.

Unlike the platform-as-a-service in­fra­struc­ture, the server­less computing provider does not con­tin­u­ous­ly deliver a per­sis­tent working en­vi­ron­ment for the entire term of the contract, instead of de­liv­er­ing the resources required for the runtime of an in­di­vid­ual function call. Of course, there are physical and virtual servers running in the back­ground (though they remain unseen by users) to allow the functions to be executed.

Overview of ad­van­tages and dis­ad­van­tages of server­less ar­chi­tec­ture

While classic cloud in­fra­struc­tures allow users to outsource the hardware required, they often require a lot of ad­min­is­tra­tive work and micro-man­age­ment. Server­less computing services are intended to minimize this workload.

The table below sums up the other ad­van­tages and weak­ness­es of the server­less concept:

Ad­van­tages of server­less computing Dis­ad­van­tages of server­less computing
The provider scales and manages the required resources No access to virtual machines, operating system or runtime en­vi­ron­ments
Rapid provision of resources in real-time, even for un­fore­seen peak loads and dis­pro­por­tion­ate growth Im­ple­ment­ing server­less struc­tures is very labor-intensive
Users are only charged for the resources used Lock-in effect – for example, when changing provider, you generally have to recode all event-based functions
High error tolerance thanks to flexible hardware in­fra­struc­ture in the provider’s computer centers Rel­a­tive­ly complex mon­i­tor­ing and debugging process, as in-depth per­for­mance, and error analyses are generally not possible

Server­less computing in practice: When is the server­less principle deployed?

Server­less computing is primarily used for transient data exchanges by web and business ap­pli­ca­tions in the cloud. In practice, the aim is not to process entire ap­pli­ca­tions or extensive sequences of code (server­less ar­chi­tec­ture is entirely unsuited for that purpose), but to process any number of in­di­vid­ual functions. That makes the approach in­ter­est­ing for several scenarios, as il­lus­trat­ed by the following list:

  • API proxy: Many legacy business ap­pli­ca­tions have complex, unwieldy APIs (software in­ter­faces). With server­less ar­chi­tec­ture and the right API gateway, an al­ter­na­tive level of ab­strac­tion can be generated to allow these ap­pli­ca­tions to be addressed via a REST API making them easier to access for other systems.
  • Server­less backend: More and more companies are using server­less computing to build and run the entire backend for ap­pli­ca­tions in the cloud. These scenarios are generally called backend-as-a-service (BaaS).
  • Pro­cess­ing (un)struc­tured data: The modern business world is in­con­ceiv­able without Big Data. Server­less in­fra­struc­ture is proving to be a powerful tool for pro­cess­ing big data, i.e. struc­tured data (JSON, XML, etc.) or un­struc­tured data (images, audio, etc.), including transcod­ing, moving, combining or ma­nip­u­lat­ing.
  • Running scheduled tasks: In most cases, functions are executed not only based on events, but also based on a defined schedule. For example, you can clean up databases or auto-generate backups.
  • Im­ple­ment­ing language as­sis­tants and chatbots: Server­less tech­nol­o­gy is ideal for in­te­grat­ing digital language as­sis­tants and chatbots.
Go to Main Menu