DSAG Technologietage 2022 - Using Microservices in the SAP BTP, Kyma Runtime to extend SAP Cloud and OnPrem Systems
This is the hands-on tutorial of the DSAG Technologietage 2022. It show how you can leverage the SAP BTP, Kyma Runtime to extend SAP Solution on-premise or in the cloud making use of Microservices and Kyma Functions.
We have several orders that are managed by a microservice. For user-interaction we have a basis UI5 app to create, edit and delete orders. The ordered products depend on the delivery of materials. We assume that we run into a supply chain shortage: some materials cannot be delivered and consequently the orders need to be delayed. The shortage of a material is reported by a message containing the material ID that is running short. The extension developed in this hands-on should therefore:
- Get triggered by the message and read it from a message queue.
- Fetch the corresponding orders for the reported material from an on-premise system.
- Update the order status to "DELAYED" via the order microservice.
- Sent a message to a queue of delayed orders reporting the ID of the order.
As an optional part we develop a second extension that gets triggered by the second message after the order was updated. This extension should:
- Read the order from the order microservice
- Send an email to the customer to provide information about the delay.
Remark: The scenario is of course simplified and does not reflect the processes in real-life. As our focus is on the technical capabilities of the SAP BTP, Kyma Runtime this over-simplification should be fine.
The components involved in the flow are depicted here:
For this scenario we want to leverage several services available on SAP BTP:
- The SAP BTP, Kyma Runtime as central extension platform and home for the Kyma Functions with our business logic and the order microservice
- The SAP Event Mesh to provide the message queues
- The Cloud Connector in conjunction with the connectivity proxy to connect to a on-premise system.
So from the perspective of SAP components the building blocks can be sketched like this:
In addition we will show how you can deploy artefacts to SAP BTP, Kyma runtime using GitHub Actions.
We wanted to keep the technical prerequisites as small as possible, so for the guided hands-on at the DSAG Technologietage you do not need anything installed on your local machine except for a browser.
If you want to execute things later on your own you need kubectl
and the kubelogin
extension installed locally (see Prerequistes - Kubernetes), as well as an editor of your choice.
The following sections guide you through the single steps of the tutorial. During the DSAG Technologietage 2022 some steps have already been executed by us and the resources are pre-provisioned. Nevertheless we described the steps as they give some interesting insights. For easier navigation we marked the sections correspondingly:
- Sections marked with 👨🔧 contain the hands-on steps you must work on
- Sections marked with 👀 are for your information. They contain some interesting insights but contain no actions you must execute.
Remark: As the tutorial is done with a group of participants, we need to make sure that we have no conflicts concerning names collisions etc.. If you are running this sample on your own set the the value for "userID" to "01".
Let the fun begin 👩💻
- Step 1 - Set up the order microservice 👀
- Step 2 - Set up the on-premise components 👀
- Step 3 - Set up the connectivity proxy 👀
- Step 4 - Set up the SAP Event Mesh 👨🔧
- Step 5 - Develop function "trigger supply chain issue" 👨🔧
- Step 6 - Develop function "update order status" 👨🔧
- OPTIONAL: Step 7 - Develop function "send delay email" 👨🔧
- The extra mile: setup order microservice in your namespace 👨🔧 - If you want to try out CI/CD flows with GitActions, walk through Step 1 on your own and modify the namespace into which you deploy the microservices to your created namespace
dsagtt-handson<userID>
If you want to walk-through the tutorial later on your own, you must execute each step on you own.