Technical Articles
Achieve Continuous Integration and Delivery using DevOps services in SAP Cloud Platform
Continuous Integration and Continuous Delivery (CI/CD) is set of practices that help dev teams to deliver frequent code changes reliably. Until recently, SAP was offering best practice guides and open source projects for customers to setup their own CI infrastructure to manage this process. Few weeks ago, SAP announced the availability for “Cloud Integration and Delivery” service on SAP Cloud Platform. This provides customers with a pure cloud based solution to apply CI/CD practices when developing and deploying applications.
I would like to refer to the below image from Sarah Noack’s blog post which shows all the different CI/CD solutions that are available – each differ in their level of flexibility and expertise required for setup and configuration.
I have prepared an E2E demo which shows how one can create a Fiori based extension application using Business Application Studio and leverage CI/CD, Transport Management and Alert Notification services to automate the build and deployment of the application across the landscape.
Below are the topics which are covered:
- Exposing a SAP backend system using SAP Cloud Connector
- Using SAP Business Application Studio templates to quickly build a Fiori application
- Configuring the CI/CD service to automate the build and deployment of the app
- Setup of Transport Management service to deploy the app across different subaccounts
- Configuring the Alert Notification service to stay informed of changes in the Import Queue of the Transport Management service
Please note that SAP Cloud Platform Continuous Integration & Delivery service is not yet available in trial landscape (at the time of posting this blog). However, Transport Management, Alert Notification and Business Application Studio are available in the trial landscape.
I have captured all the steps as part of this video and explained the steps required to configure these services. If you do have any questions on this topic, please post a question in the forum.
Useful Resources to get started:
Awesome stuff!! Thanks for putting the services in context and provide a nice little sample with it!
Hi Murali,
Thanks for the great explanation :). Is this service available on trial ?
Thanks,
Mahesh Z.
Hi Mahesh,
The CI/CD service is not yet available in trial. Its being planned.
Murali Shanmugham & mahesh zeple - CI/CD service is available on trial now 🙂
Hi Murali Shanmugham,
what are you thoughts in blue/green or canary deployments with this? I did an integration using the CF CLI myself. From the UI on your video I couldn't tell if you can influence the deployment commands.
KR
Martin
Hi Martin,
In nodes which we define in Transport Management, I see there is an option for Blue/Green deployment. I haven't tried this out yet.
ah ok, very good! So there is a wrapper for the standard CF CLI module for it. With plain CF configs it should also be possible to achieve canary release or other more sophisticated mechanisms. We are talking cloud-native after all 😉
Any idea when the CI/CD subscription will be available in sub-accounts hosted in au (ap10)?
Hi Jason, I don't have a concrete timeline for availability in ap10. Will let you know if I find more info.
Nice Stuff Murali, Thanks for the video
Thanks a lot Murali for this blog !!
I was going through gCTS SAP TechED 2020 and then looking more details about CI/CD.
I found this blog which is really very well explained .
Couple of questions-
1) Lets say, if I have multiple Fiori Apps delivered and all those to be packaged separately in github, do we need to create multiple jobs for a pipleline SAP-cloud sdk. I am trying to understating how to do decide when and how many jobs to be set up in CI/CD.
2) For the scenario where ABAP CDS view is developed in ADT which on Prem, workbench TR is generated and need to push code in QA . Do not need to follow above steps ?
Thanks,
Pramod
Thanks Pramod.
Christoph Szymanski : Would you be able to help with this query? Thanks.
Hello Murli,
Few questions:
1- Why did you use SAP cloud connector ? Is it for using database views used for fiori application that was installed on on premise system ?
2- Can we use hana db for the above and create database instead ?
3- Devops service are now available in trial version too, can you create a new video which uses hana db and nothing of on premise system.
Thanks.
Hi Virender,
Please find my response below.
1- Why did you use SAP cloud connector ? Is it for using database views used for fiori application that was installed on on premise system ?
SAP Cloud Connector was to connect to the OData APIs from the backend SAP system. If you are to build a Fiori app using APIs from Cloud systems, then you don't need the Cloud Connector.
2- Can we use hana db for the above and create database instead ?
Yes, you can create a HANA Cloud DB instance and expose a table as an OData API. These APIs can be consumed directly by the Fiori apps
3- Devops service are now available in trial version too, can you create a new video which uses hana db and nothing of on premise system.
When I have time I will try to create a video with use of Fiori app and HANA DB.
Hi Murali,
Thanks for detailed explanation. Blog is very nice.
I am not able to figure out , how can I change SAP system name while transporting.
In your case you have used QHD to connect to dataservice but now while transporting how will you tell your system dataservice should also be changed .
Regards
Tisha
Hi Murali,
Is there any working example of project piper that you can share with us as a step by step guide like you did for SAP Cloud Platform Continuous Integration & Delivery service.
Regards,
Abhishek
Hi Abhishek,
I assume you already know the scenarios from project "Piper" that provide example configuration as well.
Then, there are tutorials around CI/CD.
For example, a tutorial for setting up CI/CD for SAP Cloud SDK with project "Piper".
Best regards,
Boris
Thank you Boris, it helps!
Hi Murali,
Thanks for writing a detailed blog post.
Is there any way we can do the same for integration artifacts? Especially for Devops tools like Azure Devops and GitLab.
Thanks,
Ramya
Hi Ramya,
to integrate third party CI/CD tools like Azure DevOps or Gitlab we offer the open source project Piper. It provides a library of SAP relevant pipeline steps to build your own pipelines.
For the topic of Cloud Integration artefacts there the relatively new steps starting with 'integrationArtifact' for example integrationArtifactDeploy.
Besides that the CI&D Service on SAP BTP offer a pipeline template to deploy integration artefacts. See the documentation.
Both approaches currently have the need to download the Cloud Integration content manually from Cloud Integration and store it in your Git repository. So it is not a fully automatic process.
Kind regards
Harald
Hi Harald,
Can we implement a transport mechanism for integration artifacts using the DevOps pipeline?
Thanks,
Ramya