In recent years, a number of IT solutions have been developed in the field of cloud computing that offer users ad­vant­ages primarily through location-in­de­pend­ent avail­ab­il­ity and flexible use. The probably best-known field, Software as a Service or SaaS for short, covers all types of software that can be used via an Internet con­nec­tion without having to own a local version.

Function as a Service or FaaS describes ap­plic­a­tion packages that are developed, managed, and executed by de­velopers. At the same time, their own in­fra­struc­ture isn’t required for their man­age­ment, as it’s provided by the service provider. The de­vel­op­ment of the functions takes place in isolation in so-called con­tain­ers. Data pro­cessing or mobile apps are common examples of functions used with FaaS. In this article, we explain which areas Function as a Service covers, how de­velopers can use the service, and what the ad­vant­ages and dis­ad­vant­ages of the cloud computing solution are.

Cheap domain names – buy yours now
  • Free website pro­tec­tion with SSL Wildcard included
  • Free private re­gis­tra­tion for greater privacy
  • Free Domain Connect for easy DNS setup

What is FaaS?

Function as a Service is a cloud computing service with which ap­plic­a­tions can be developed and put into operation. The special feature is that the server on which the ap­plic­a­tion runs and the in­fra­struc­ture of the service are the re­spons­ib­il­ity of the provider, meaning that as­so­ci­ated tasks like main­ten­ance or regular updates are not necessary for the de­velopers. This allows them to focus entirely on pro­gram­ming code for the required ap­plic­a­tion packages. Here, the term ‘function’ refers to a software component that is often executed for only seconds. Ap­plic­a­tions consist of one or several functions, and it’s also possible to assemble mi­croservice com­pon­ents that consist of a large number of functions.

How does Function as a Service work?

Function as a Service provides de­velopers with a method for im­ple­ment­ing server­less computing. For this purpose, a business logic is written within a so-called container, and man­age­ment is carried out entirely via a readily provided platform. This platform is usually used in the cloud, but the model is also already being used with local and hybrid de­ploy­ments.

What’s special: FaaS follows a reactive system that is con­trolled by events. The events are triggered by specific occasions, such as the click on a button, which results in the function being called up. Once the call has been made, the service waits until a new event is generated. The basis for how FaaS works is that the response to the occasion is started and executed straight away. For example, the upload of an image file can trigger a reaction that results in the file being auto­mat­ic­ally converted to a specific format.

To execute the responses of the Function as a Service logic, an in­fra­struc­ture is available at any time, so that permanent server processes aren’t needed in the back­ground. This in turn has a positive effect on scaling options: The cloud provider ensures the avail­ab­il­ity of the defined functions and provides resource al­loc­a­tion to the second. As a result, when few requests arrive, the ap­plic­a­tion is scaled down. With FaaS, you’re charged only for the resources used – standby times are therefore not incurred.

In practice, two types of ap­plic­a­tions are par­tic­u­larly well suited for FaaS im­ple­ment­a­tion: in­fre­quently executed workloads and high-volume trans­ac­tions.

What’s the dif­fer­ence between FaaS and SaaS?

The fun­da­ment­al dif­fer­ence between FaaS and SaaS lies in how the two cloud services are applied. While FaaS operates in the microcosm of the ap­plic­a­tion landscape and is limited to simple functions, Software as a Service provides users with extensive ap­plic­a­tions.

The com­mon­al­ity between both services is that no dedicated server has to be provided to use the services. This elim­in­ates the entire ad­min­is­tra­tion and main­ten­ance effort, so that the resources freed up can be used for other projects and de­vel­op­ments.

SaaS solutions include, for example, Google Drive or Slack, which are used by a large number of companies for day-to-day tasks. The scope of functions in SaaS is often clearly defined, so de­velopers can’t create ad­di­tion­al functions. In contrast, with FaaS, de­velopers can freely define desired functions according to existing re­quire­ments.

What are the ad­vant­ages and dis­ad­vant­ages of Function as a Service?

Ad­vant­ages of Faas

  • Faster de­vel­op­ment: De­velopers don’t need to spend time con­fig­ur­ing and managing servers. All available capacity can be used to write ap­plic­a­tion logic and develop ap­plic­a­tions faster.
  • Automatic scalab­il­ity: FaaS solutions are scalable by their very nature. This elim­in­ates the need for up-front con­sid­er­a­tions about workloads in terms of data volumes accessed or usage volumes. The required scaling is performed auto­mat­ic­ally by the provider and is billed on a per-second basis.
  • Efficient cost struc­tures: With Function as a Service, you’re only billed for what is actually accessed by users. There are therefore no costs for any resources held in reserve.
  • Minimal ad­min­is­trat­ive effort: With FaaS, both the hosting of a server and the man­age­ment and main­ten­ance of the server in­fra­struc­ture are not in de­velopers’ hands.
  • Freedom in pro­gram­ming: FaaS solutions are usually possible in all common pro­gram­ming languages, so that no ad­di­tion­al pro­gram­ming knowledge is required for im­ple­ment­a­tion.

Dis­ad­vant­ages of Faas

  • Limited design options: Since the in­fra­struc­ture and its man­age­ment sit with the provider, de­velopers must work with pre­defined systems. If you want to determine the server in­fra­struc­ture yourself, but want to save resources for main­ten­ance, it’s worth taking a look at Backend as a Service (BaaS).
  • Complex testing: Depending on the provider, trans­fer­ring FaaS code to a local test en­vir­on­ment is not a simple un­der­tak­ing. Testing an ap­plic­a­tion may require more resources to complete.
Go to Main Menu