Before I dive a bit deeper into SAP Cloud Platform Functions and the role of it within SAP I want to spend some words on serverless in general.
Of course, you can find thousands of definitions available as blogs, talks or videos explaining all the details about serverless, but here is my personal summary: serverless is first of all a commercial model. The cost of a serverless service is directly related to the usage: if there is low usage, the costs for customers need to be low as well. Secondly, serverless is about simplicity: simple to develop and simple to manage. Simple to develop, because you don’t need to deal with servers and so a lot of (boilerplate) coding is avoided. Simple to manage as with serverless you don’t need to manage any servers at all. The task of operating servers at given SLAs (Service License Agreements) such as scaling them up and down is provided completely by the cloud provider – SAP Cloud Platform. This shifts a lot of responsibilities from customers to SAP. As a result, the customer can focus on pure business functionality. Frankly, some will say: like in the good old ABAP and there is some truth in this.
The technical implications
Technically, there must not be a difference between using a Platform-as-a-Service (PaaS) or a serverless model. In serverless the customer should be able to use the same programming model and use the same internal or external services no matter whether they are built with a serverless or a non-serverless approach. This means also that in principle serverless can be mixed with non-serverless and vice-versa. The world will be hybrid for the next few years or centuries and serverless will embrace an open ecosystem.
In contrast, the technical implications of serverless for SAP are huge. With the shift of the above-mentioned responsibilities SAP needs to deal with the costs of idling resources. This is why we need to think about optimizing the infrastructure and architecture, so that we can react on changes in usage patterns very quickly to ensure defined SLAs. SAP needs to deal with bursts during e.g. Christmas time and scale down as soon as the load is reduced again to save costs.
The role of Functions in general and for SAP specifically
Some use the term Function-as-a-Service (FaaS) and serverless equivalently, but this is not precise enough. As explained serverless defines a set of general principles being not restricted to one type of service only. Serverless principles are in reality applied to all kind of services: database services, pub-sub and big data to name only a few. These services can be considered as immutable building-block services.
The goal for SAP is that we are capable to spin up instances of these services in masses in a short period of time to run them in a very cost-efficient way. SAP Cloud Platform Functions is the recommended way to write the coding in order to connect and orchestrate serverless or non-serverless services and so create a new microservice, an extension or a complete application.
In essence, the role of Functions is to run logic in the most efficient manner as well as a serverless database service focusses only on persisting data.
Serverless (building-block) services are typically designed to do a single task extraordinary well. An application based on serverless principles consists of a smart combination of serverless services meshed by FaaS. As a result, customers get a fully managed and scalable application with a transparent pay-per-use model. However, a customer will be able to switch for any reason partially or completely to a non-serverless approach at any point in time.
The nature of serverless functions being an ephemeral and well isolated runtime which can be scaled up and down instantly, makes it a perfect fit for extensions. Industries, customers or partners can plug in their custom code to adapt the standard solutions to their specific needs. The Cloud Platform Extension Factory will simplify the E2E-development process to build extensions for e.g C/4HANA using Functions. Furthermore, Software-as-a-Service solutions such as S/4HANA or Successfactors will benefit by “outsourcing” custom code to dedicated scalable SAP Cloud Platform Functions.
All in all, I am convinced that SAP Cloud Platform Functions are well suited to provide solutions for a lot of use cases and challenges. Therefore, I am happy to announce its availability now.
Update: Blog post of the general availability can be found here