Serverless computing
Serverless Computing is a cloud computing execution model in which a provider's cloud service takes over the administration of the required server infrastructure. This means that developers no longer have to worry about providing, scaling and managing the servers themselves. "Build more, manage less" [1] and "Focus on your application, not the infrastructure" [2] are common advertising phrases for Serverless Applications.
Serverless Computing is made up of FaaS (Function as a Service) and in parts from PaaS (Platform as a Service). PaaS in turn is based on IaaS (Infrastructure as a Service). To Serverless To be able to categorize cloud computing correctly, it is advisable to know the other categories. We will therefore briefly introduce these below before taking a detailed look at FaaS and Serverless takes place. The illustration below provides a visual orientation.

IaaS (Infrastructure as a Service) offers a data center infrastructure. Hardware, computing power, storage and network resources are provided by the cloud provider. [3] The developer is responsible for managing the operating systems, runtime environments and data storage. [4] The advantage of in-house management is the high degree of flexibility when selecting components. However, the effort involved in this management should not be neglected.
PaaS (Platform as a Service) goes one step further and offers a development environment with all the necessary tools such as development tools and database management systems. This makes it easier to create, test and deploy applications. The management of the operating system and the runtime environment is shifted to the provider. [5] The application can only be scaled or replaced as a whole. The disadvantage of this is a certain "heaviness" of the approach. On the other hand, there is the advantage of consistency, as all components of an application always fit together.
FaaS (Function as a Service) is a category of cloud computing. Here, there is no running server process, but functions that can be called up when a certain event occurs. The term for this is "event-driven computing". [6] A database must be used to save data across multiple calls, as the functions are stateless. [7] The execution time of functions is limited by a timeout limit. The threads in which the functions are executed are terminated after approximately 5 minutes. [8] The use of functions is therefore only recommended for applications with a short runtime. An essential component of FaaS is the shutdown of unused resources and the restart if required. With FaaS is billed according to the "pay-per-execution" principle. You only pay for what has been carried out. [9]
Serverless computing replaces the application as a whole with a chain of functions. This allows individual functions to be scaled or replaced. Capacity planning, scalability, fault tolerance and flexibility are now also transferred to the cloud provider. This enables a stronger focus on the code.
![Advantages and disadvantages of Paas and serverless [10]](https://staging.blog.doubleslash.de/wp/wp-content/uploads/2018/11/serverless_2.png)
Working with functions means that Serverless applications usually run faster, as only the resources that are ultimately accessed are started up. In addition, the applications scale automatically without prior configuration. [11] Scaling is not carried out across the board for the entire application, but at the points (functions) where it is necessary.
However Serverless computing poses a challenge for monitoring and debugging. In-depth analysis with profilers and debuggers is generally not possible as the code cannot be executed on the developer's computer due to the lack of infrastructure. In addition, event-based functions currently have to be (partially) re-implemented when the cloud platform is changed, as these are dependent on the cloud provider (vendor lock-in).
Cloud providers that offer serverless computing are: Amazon Web Services: AWS Lambda, Microsoft: Azure Functions, Google: Cloud Functions, IBM: Bluemix OpenWhisk.
Serverless Framework
The Serverless Framework is an open-source CLI (Command Line Interface) that Serverless Computing with some solutions for the disadvantages mentioned above. The entire application should be configurable with just ONE yaml configuration file. The framework also solves the problem of lock-ins. The event-based functions can run across clouds via an event gateway. This is managed by the Serverless team or you can manage it yourself on a cloud of your choice. [12] A dashboard gives the entire team an overview of the functions and events. Logs and metrics can also be displayed on the user interface, which makes debugging easier. It is possible to define which team members have access to which cloud resources. It also offers integrated support for local development and rollbacks and streams logs directly to the CLI. Languages such as Python, C#, Java, node.js and many more are available. "Hit deploy and you're live" is one of the framework's advertising slogans. The application is deployed in the cloud with a single deploy command.
Is serverless the future?
Serverless Computing offers great potential to make the lives of many developers, product owners and scrum masters easier by focusing on functions and therefore on the actual technical aspects. Time that was previously spent managing infrastructure can now be used to implement features. At least in theory, this approach is promising. This trend, which is still very new, is struggling with a lack of standardization. The possibility of vendor lock-ins is currently preventing large companies in particular from adopting the new paradigm.
The serverless framework is a potential standard in this environment. However, it remains to be seen whether this will become established. In our view, community support, which is significantly influenced by the license and pricing model, is particularly critical. We are currently investigating what other options there are for avoiding a vendor lock-in as part of a master's thesis.1
Written by Lea Scholtes and Marc Mai



