Open Telekom Cloud for Business Customers

Serverless computing: “All inclusive” services from the cloud

by Editorial team
Serverless: Funktionen als Service nutzen
Serverless: using functions as a service
 

In this article you will read

  • what serverless computing means,  
  • what advantages serverless computing has over containers and  
  • which service you can use to work “serverless” on the Open Telekom Cloud.


It's not just the cars on our roads that are increasingly “software-defined”. Many functions in a wide range of end devices are implemented using software. This software is either made available via the web or is permanently integrated into the devices. “Software makes the world go round”, one might say, or as Marc Andreessen put it: “Software is eating the world.”

Software becomes business-critical

In a world in which more and more processes are controlled by software, the rapid provision of software-defined services is becoming a supreme discipline for companies. Many current IT trends are aimed at relieving developers and making software development faster and more efficient. These include agile development methods and the recycling of successful code. On the other hand, DevOps means that software developers are increasingly forced to look beyond the development stage towards operations. This in turn increases the workload.

Of course: software development from the cloud

The cloud has its merits when it comes to developing software in a modern way and making it available quickly. It is not without reason that it first established itself in the developer environment. Complete development and test environments provided within minutes which are tailored to the needs of the developer, or project management for collaborative development from the cloud are commonplace today.

Development from the cloud is one side of the coin, operating applications is the other. As elegant as the use of the cloud is: Developers must always take a look at infrastructures. What resources are required for optimal (i.e. high-performance and cost-efficient) operation? Wouldn't it be a huge advantage to end this discussion once and for all? Resources that are automatically provided appropriately without the need to select, assign, configure etc. infrastructure components?

Working serverless

“Serverless” or Function as a Service (FaaS) is the answer to this question. With the help of FaaS or "serverless", developers (and later users) access ready-to-use, complete services. They can select these from libraries and add them to their application. These ("all inclusive") services independently take care of everything they need for optimal operation – including the appropriate infrastructure.

What is “serverless”?

In the cloud computing environment, the term “serverless” does not, as one might initially assume, refer to the provision of services without computing resources/servers. Rather, “serverless” means that the cloud provider automatically provides the necessary infrastructure such as servers. Applications can be developed and operated without the need to manage infrastructure separately (manually or via API). Infrastructure resources are abstracted and disappear completely “under the hood” like an engine in a car – aka as “background processes”. The infrastructures are appropriately dimensioned and billed according to demand.

 

Containers vs. serverless computing

Abstraction of infrastructure resources – this desire is as old as the cloud itself. Serverless computing is also not the only solution for moving away from manual provisioning or clicking on a management console. Containers have often been used for this purpose. However, containers and serverless computing are two different approaches to providing and operating applications in the cloud. Both have their advantages and disadvantages. Here are the differences:

  • When using containers, container images are created, deployed, and managed on a container orchestration platform such as Kubernetes or Docker. Serverless computing eliminates this workload.
  • Anyone using containers must take care of managing scaling at cluster level. Serverless computing automates scaling at functional level (“all inclusive“).
  • Containers are ideal for continuously running applications and processes, while “serverless“ functions are generally better suited to short, event-driven tasks with limited execution times (“ad hoc”).
  • Containers are usually paid for according to the allocated resources, regardless of whether they are used or not. Serverless computing is paid according to the actual requests and the duration of execution.

Serverless: Ready-to-use functions from a library

Serverless functions can theoretically take on tasks of any complexity. As a rule, they are provided for standard tasks in libraries such as GitHub or in software development kits. In addition, developers can add their own functions to the library at any time.

A typical example of a possible function: an application is operated in the cloud. During use, users must upload images to an object storage. They should receive a preview with thumbnails so that they can check whether they have uploaded the correct images. Instead of developing the service itself, the application developer uses a function from a library. The function is triggered when images are uploaded (“trigger”). It is linked to the object storage and displays the thumbnails in real time. Another function could also be linked to the upload trigger: The second function holds an AI-based service for image recognition, which automatically adds keywords to the images. The function is terminated immediately after the upload. All associated resources are switched off.

FunctionGraph on the Open Telekom Cloud

With FunctionGraph, the Open Telekom Cloud also offers the option of using serverless functions “as a service”. Functions such as Kafka or GaussDB are provided as standard in the library.  

But FunctionGraph primarily offers developers the opportunity to run their own code without needing to provide or manage servers. Developers only need to upload their code and set conditions for its execution. FunctionGraph takes care of the rest.

  • Write code in Node.js, Python, Java, C#, PHP or Go
  • Upload code as a .zip or .jar file. Developers have the option of editing the code inline
  • Set the trigger functions either as an API call or as a cloud service event
  • Auto scaling: FunctionGraph scales automatically based on the requests to the function without requiring any configurations
  • Monitoring: Run logs of the functions are collected in the Log Tank Service
  • The logs can be viewed and analyzed by the developer via the Application Operations Management service
  • Billing is based on the number and duration of calls to the function

By providing their own function within a library, developers not only gain the opportunity to develop faster and more conveniently themselves, but also to offer their own functions as services on the market. FunctionGraph thus paves the way for new business models.

Interested in learning more about FunctionGraph?

Take a look at our webinar recording.


This content might also interest you
 

CPU with the image of a cloud

Cloud Container Engine (CCE)

Cloud Container Engine (CCE) enables platform-independent work via containers, Docker and Kubernetes – including application and resource management.

 
Cover image Cloud Native study 2023

Cloud Native study 2023

Learn all about challenges in app development, deployment and benefits to cloud-native strategies and potential of digitalization technologies.

 
Deployment of virtual resources within the cloud using virtual machines or containers

Container or virtual machine – which is more suitable for your project?

Docker containers or virtual machines – which are better suited for your IT project? Compare advantages and disadvantages as well as use cases.

 
  • Communities

    The Open Telekom Cloud Community

    This is where users, developers and product owners meet to help each other, share knowledge and discuss.

    Discover now

  • Telefon

    Free expert hotline

    Our certified cloud experts provide you with personal service free of charge.

     0800 3304477 (from Germany)

     
    +800 33044770 (from abroad)

     
    24 hours a day, seven days a week

  • E-Mail

    Our customer service is available free of charge via E-Mail

    Write an E-Mail