Cloud based Continuous Integration for on-premises ABAP Systems

This blog post is about a new scenario enabled by SAP Continuous Integration and Delivery Service: Running continuous integration pipelines to deploy SAP Fiori applications to on-premises ABAP systems.

Scale up development of Fiori extension for the ABAP platform

One of the most common extension scenarios in the ABAP world is to deploy SAPUI5 or Fiori applications to the ABAP Gateway. It is understandable why: It allows you to create web UIs which are easy to use and that can tap into the wealth of data and business processes available in the ABAP system.

If you are a user of this scenario and if you go beyond a one-person part time project, you will probably feel the need for continuous integration and continuous delivery (CICD).

In other words, you want central execution of tests for each change to avoid the dreaded “but on my machine it works” situation (continuous integration). You also want an automated deployment to ensure that what gets deployed really comes from the main branch of your project (continuous delivery).

Sounds familiar? Then please read on…

How to implement CICD?

Of course the pipelines doing all these good things need to run somewhere. The first option is to setup your own stack on your own infrastructure. Usually, that means Jenkins. Once you got your Jenkins up and running, the SAP driven Open Source project Piper can help you to create pipelines for your projects.

Setting up an own stack comes with a cost of ownership. You will need to operate the Jenkins and the infrastructure underneath. Your team will also need to build up some Jenkins specific knowledge on how to adapt pipelines, configure jobs, maintain credentials etc.

The second options is to use a cloud (software as a service) offering for implementing CICD.
There are different options on the market, including one from SAP: SAP Continuous Integration and Delivery which supports the scenario out of the box.

In SAP Continuous Integration and Delivery, we call the scenario SAP Fiori for the ABAP Platform. Follow the link to check out the documentation. Using our service, setting up the scenario becomes significantly easier. Not only that, but you do not need to care about any infrastructure. And on top of that, if things go wrong you get customer support!

Bridging the Gap between On Premises and Cloud

Now wait a second, you might say. This blog post is not about “ABAP in the Cloud”. Your ABAP systems run in your own data and are not connect to the internet for very good reasons? So there is no way a fancy cloud service can deploy an application on them…

But actually, there is. SAP Continuous Integration and Delivery can do exactly that. How does that work? Because our service is part of the Business Technology Platform (BTP), we can make use of other BTP services, in particular Connectivity.

For the Connectivity service to do its magic, you need to setup a Cloud Connector in your data center.
Via the Cloud Connector, an encrypted data tunnel to the Connectivity service in BTP is established. Through this tunnel, certain BTP services can access those on-premises systems which are explicitly allow listed in the Cloud Connector. Here is simplified diagram showing the data flow:

Once the Cloud Connector is in place and connected, the only thing you need to configure in SAP Continuous Integration and Delivery is the identifier (Location ID) of your Cloud Connector.

Maybe in your setup it is not only the ABAP system that is on premises but also your source code repository? Don’t worry, you can use your source code repository in exactly the same way. There is even a tutorial about that.

If you are interested in the details of our implementation, just write a comment, I will gladly do another blog post on that.

Conclusion

SAP Continuous Integration and Delivery offers a unique value proposition: While all your assets  (ABAP system, source code repositories) remain on-premises, you can nevertheless benefit from a modern cloud service to achieve continuous integration and delivery for your projects.

If you have questions or remarks, please leave a comment. If you are interested in our service, please follow the tag ”