Two Groundbreaking Technologies
It’s always fascinating to see how emerging technology impacts the way businesses can innovate. Serverless computing with its FaaS (Function-as-a-Service), MaaS (Messaging-as-a-Service), and BaaS (Backend-as-a-Service) remains for many simply a new addition to the ever-growing alphabet soup of new technology terms. Event-driven architectures are something most of you probably have heard about, a lot less have put it into practice though.
Today, however, these two ground-breaking technologies came to life in Bernd Leukert’s keynote demonstration. Let me give you some additional background beyond the keynote demonstration and provide you with a kickstart into two game-changing technologies that, when used in combination, have the potential to change how we develop and operate software.
Serverless computing is a truly cloud-native paradigm. Servers and other computing resources are completely hidden from the developer and the end user. There are servers in serverless, but these are operated by the cloud provider, which means you can almost forget about most tedious maintenance and operations activities.
Nicer still is the fact that your cloud provider automatically scales the load for you. You don’t need to worry about peak loads on your side as this is taken care of by SAP. Idle downtimes with no load needn’t worry you either because with serverless computing you only pay for the resources you use (pay-per-use and micro-billing).
Event-driven architectures are an evolutionary step for microservices and serverless environments.
Events are notable system changes, for example, updates to business objects. Consuming applications can subscribe to events and are then informed about these events when they arise. A consuming application is informed of the event and depending on the application logic defined, can read further details about the event and take appropriate action. Events are a type of lightweight message so if a consuming application requires additional information, it actively requests more details via a READ service.
Event-driven architectures enable decoupled and decentralized landscapes. They provide enormous flexibility, isolation of highly important backend systems, scalability, and improve efficiency.
At present, the main event-driven use case is for events raised from SAP applications such as SAP S/4HANA. Over the coming months, the number of supported event emitters (event sources) for SAP and non-SAP systems is set to grow. To support this, SAP is an active contributor to the Cloud Native Computing Foundation (CNCF) initiative named CloudEvents, which aims to describe events in a uniform way. CloudEvents seeks to ease event declaration and delivery across services, platforms, and beyond.
FaaS refers to an event-driven atomic piece of code that runs in stateless ephemeral containers created and maintained by a third party – typically a cloud provider. From a technology standpoint, FaaS is a combination of code, configuration, and dependencies executed on a fully-managed compute service in an isolated container. Resource allocation is done in a serverless environment. The resources required to run your code are dynamically allocated by the cloud provider. As a result, you are not responsible for either capacity planning or the optimal allocation of resources.
In practical terms, FaaS allow you to add event-driven, serverless functionalities that are completely decoupled from your existing application landscapes.
SAP Cloud Platform includes a new Function-as-a-Service, SAP Cloud Platform Functions (beta), which you can use to extend your core business processes within a secure, scalable, and robust cloud environment.
SAP Cloud Platform Functions (beta)
SAP Cloud Platform Functions is SAP’s Function-as-a-Service to enable rapid development in serverless, event-driven environment. It is a fully-managed cloud service for building, running, and managing stateless application functions. Use SAP Cloud Platform Functions to build new applications and extensions that can react to triggers (e.g. events, HTTP calls, timers) across clouds and landscapes and execute function code on demand. SAP Cloud Platform Functions lets you extend SAP S/4 HANA by creating functions that can be developed and run without affecting your core productive systems.
SAP Cloud Platform Functions fulfills serverless qualities. It is vendor operated by SAP, provides automatic, linear scaling, and enables pay-per-use with micro-billing so you pay only for the resources you really use. Further advantages include multitenancy, less time in operations, more efficient utilization, lower costs and the chance to focus on business ideas.
Cloud Platform Functions enables you to:
- Write loosely coupled logic that’s quick to build and scale automatically. Functions can be event-driven or invoked directly over HTTP/S.
- Listen and respond to events on the SAP Cloud platform, SAP S/4HANA and beyond.
- Let thousands of services send data to the Cloud automatically invoking functions to process, transform, and store data.
- Write functions that are time-based for scheduled reporting, clean up jobs etc and triggered by a timer.
TechEd Keynote Use Case
For a closer look at SAP Cloud Platform Functions in action, let’s go back to the demonstration in Bernd’s TechEd keynote and view Ashraf’s new red car painted in a very special way by Ian.
If you’ve ever configured and ordered a new car, you know first-hand how long the wait for it can be. Understandably, you want to gain a first glimpse as soon as possible. The car manufacturer (let’s call it Jana & Ian Inc. for simplicity) at which Ashraf has bought his car appreciates this and wants to give customers the chance to see their new car right after the painting process.
Since this is a new approach, they want to validate it in isolation from their core processes and see the results quickly, which is exactly why they chose SAP Cloud Platform Functions to extend their S/4HANA-based business processes. With SAP Cloud Platform Functions, they see results quickly, despite the small investment made in respect to time and money.
Let’s look at the business case that supports the production process. Jana & Ian Inc. takes a picture of each car as soon as the painting process has been completed. Each new picture is uploaded to SAP Cloud Platform Objectstore. After the painting process is completed, the business object (BO) ProductionOrder in SAP S/4HANA is updated, and this action triggers a new event (ProductionOrder.Confirmed – please note that this event is not part of the SAP standard yet). In turn, this event triggers the execution of a function that retrieves the picture from SAP Cloud Platform Objectstore together with the customer data and sends details as a direct message on Twitter to the prospective owner.
For this business case, Jana & Ian Inc. developed a serverless function to:
- Process information in the event from SAP S4/HANA.
- Use APIs calls to retrieve the prospective owner’s name and Twitter information from SAP S4/HANA.
- Download the photo of the car from the SAP Cloud Platform Objectstore.
- Use an API call to a Twitter server to send the photo with a direct message to the prospective owner’s Twitter account.
Communication between SAP S/4HANA and SAP Cloud Platform Functions is asynchronous and therefore decoupled and non-blocking. This communication is handled by SAP Cloud Platform Enterprise Messaging, another component of SAP Cloud Platform serverless offering. SAP Cloud Platform Enterprise Messaging enables you to connect applications, services, and systems so they can interact with each other through messages and events, across clouds and on-premises. Jana & Ian Inc. uses SAP Cloud Platform Enterprise Messaging so that they can connect their digital core to the new function while keeping the two entities completely decoupled.
By using SAP Cloud Platform Functions and SAP Cloud Platform Enterprise Messaging, developers were able to develop the new function quickly and test it without affecting Jana & Ian Inc.’s production environment. They saved precious time as they did not have to worry about planning for and managing the runtime environment. The function is executed by SAP Cloud Platform Functions only when triggered by a specific business event and remains otherwise idle. This ensures that Jana & Ian Inc. pays only for the resources used when the function is active.
If you want to know more about the serverless offering on SAP Cloud Platform, visit our websites https://cloudplatform.sap.com/enterprise-paas/serverless.html or SAP Cloud Platform Capabilities,watch Serverless Explaind, read our blogs or to get hands-on, just look up SAP Cloud Platform Functions(beta), SAP Cloud Platform Backend service (beta), and SAP Cloud Platform Enterprise Messaging in SAP Cloud Platform Cockpit service catalog (with beta features enabled that is for SAP Cloud Platform Functions and SAP Cloud Platform Backend service).