Technical Articles
DevOps with SAP Business Technology Platform | Hands-on Video Tutorials
Philip MUGGLESTONE from the SAP HANA Academy and the Partner Innovation Lab just uploaded a new series of hands-on tutorial videos to help you apply DevOps principles to your application development on SAP Business Technology Platform (BTP). In this blog post you will find the videos embedded with references and some additional information. For more partner-focused hands-on developer series, see
To be informed when new posts are published about partner-related content in the video tutorials series, follow tag Questions? Please post as comment. Useful? Give us a like and share on social media. Thanks! |
Hands-On Video Tutorials
What You Will Learn
In this series of hands-on tutorial videos we help you apply DevOps principles to your application development on SAP Business Technology Platform (BTP).
A complete end-to-end scenario is covered which encompasses the following topics:
- Architecture
- Configuration of BTP subaccounts
- Application development with SAP Business Application Studio and GitHub
- Continuous Integration & Delivery (CI/CD)
- Cloud Transport Management
- Alert Notifications
- Smoke testing via SAP Automation Pilot
YouTube Playlist
To bookmark or directly access the playlist, go to
Introduction
Video Tutorial
In this video tutorial, Philip Mugglestone provides an introduction to the DevOps topic with SAP BTP including architecture and where to find the relevant product reference guides. Philip also reviews SAP BTP service entitlements that will be used during the scenario.
0:00 – Introduction
2:00 – Documentation
3:20 – Architecture
4:50 – Documentation
5:45 – SAP BTP Accounts
6:20 – Entitlements
8:55 – Recap
References
For the documentation on the SAP Help Portal, see
- DevOps with SAP BTP
- SAP Continuous Integration and Delivery
- Configure an SAP Cloud Application Programming Model Job in Your Repository
- What Is Cloud Transport Management
- What Is SAP Alert Notification Service for SAP BTP
- SAP Automation Pilot
Getting Started
Video Tutorial
In this video tutorial, Philip Mugglestone shows how to configure a developer landscape in SAP BTP including SAP Business Application Studio and SAP HANA Cloud.
0:00 – Introduction
0:45 – Create subaccount
1:35 – Enable Cloud Foundry (org) and create space
2:45 – Entitlements (add 9 service plans)
5:10 – Subscriptions
5:40 – Assign role collection
6:40 – Create SAP HANA Cloud instance
8:00 – Recap
Develop Application
Video Tutorial
In this video tutorial, Philip Mugglestone shows how to get started with application development in SAP BTP including how to use the SAP HANA Academy jumpstart generator and configure GitHub as the source code repository.
0:00 – Introduction
0:30 – GitHub Repository
1:00 – Create SAP Business Application Studio workspace Full Stack Cloud Application
2:00 – Clone Git Project
2:55 – Login to Cloud Foundry
3:40 – Launch Template Wizard
4:30 – Configure Project and enable CI/CD
7:50 – Commit and push
11:10 – Recap
Continuous Integration and Delivery
Video Tutorial
In this video tutorial, Philip Mugglestone shows how to configure and use SAP Continuous Integration & Delivery (CI/CD). This includes credentials, repositories and jobs.
0:00 – Introduction
0:45 – Subscribe to Continuous Integration & Delivery
1:20 – Assign role collection
1:55 – Continuous Integration and Delivery
2:15 – Add repository
3:15 – Configure Webhook
4:50 – Add job
7:40 – Pipeline settings
9:20 – Add credential for technical user
10:00 – Add technical user as member to Cloud Foundry space
11:15 – Stage, commit and push to trigger app deployment
13:30 – Cloud Foundry services and applications
14:00 – Assign role collection to business user
14:45 – Run app
15:45 – Recap
Transport Management I
Video Tutorial
In this video tutorial, Philip Mugglestone covers SAP Cloud Transport Management. After subscribing to the service and configuring credentials, BTP subaccounts are configured to host the QA and production nodes of the transport model. Philip also shows how to share an instance of SAP HANA Cloud between different subaccounts hosted in the same Cloud Foundry datacenter/region.
0:00 – Introduction
0:45 – Subscribe to Cloud Transport Management
1:30 – Create role collection and add business user
2:40 – Create Cloud Transport Management service instance and add service key
3:55 – Add credential with service key
5:00 – Create qa and prod subaccount; enable Cloud Foundry (org); add space; add technical user as member
7:50 – Configure entitlements for qa and prod subaccounts
9:50 – Create mapping for SAP HANA Cloud instance sharing
11:30 – Recap
Transport Management II
Video Tutorial
In this video tutorial, Philip Mugglestone continues to cover SAP Cloud Transport Management. BTP destinations are created before configuring Transport Management System (TMS) model with nodes and routes. Finally Philip triggers a CI/CD build job that will upload the Multi-Target Application (MTA) archive to the QA node.
0:00 – Introduction
1:00 – Documentation
2:00 – Create new Destination; clone for qa and prod
3:50 – Cloud Transport Management, Landscape visualization: Create qa and prod node with route
5:50 – Business Application Studio: Update config.yml
7:00 – Stage, commit and push
References
For the documentation on the SAP Help Portal, see
Transport Management III
Video Tutorial
In this video tutorial, Philip Mugglestone continues to cover SAP Cloud Transport Management. The CI/CD build job triggered previously is reviewed before importing the MTA archive to the QA and Production nodes.
0:00 – Introduction
1:50 – Uncomment mta.yaml to prevent loading of initial data and update version number
3:00 – Business Application Studio: Stage, commit and push
3:30 – Cloud Transport Management: Import queue to qa node
6:00 – BTP Cockpit: Assign role collection to business user in qa subaccount
7:00 – Cloud Transport Management: Import queue to prod node
8:00 – BTP Cockpit: Assign role collection to business user in prod subaccount
9:30 – Cloud Transport Management: Landscape Visualization
Alert Notifications
Video Tutorial
In this video tutorial, Philip Mugglestone shows how to use the SAP Alert Notifications service to automatically send a message to a selected Slack channel whenever a Cloud Transport Management import task starts and finishes.
0:00 – Introduction
0:30 – Create Alert Notification service instance with service key
2:00 – Create Destination ALERT_NOTIFICATION_SERVICE using service key settings
3:30 – Documentation
4:10 – Create new subscription for events TMS import started and finished; assign action type send message to Slack channel
6:30 – Slack: Create app and configure incoming webhook
7:45 – Finish create subscription
8:30 – Cloud Transport Management: Configure qa and prod node to perform notification
9:00 – Business Application Studio: Stage, commit and push
9:50 – Cloud Transport Management: Import build into qa
References
For the documentation on the SAP Help Portal, see
Automation Pilot I
Video Tutorial
In this video tutorial, Philip Mugglestone shows how to set up a smoke test using SAP Automation Pilot. After reviewing the imported smoke test command it is executed locally and the required role assignments are added to the QA and Production landscapes.
0:00 – Introduction
2:25 – Subscribe to Automation Pilot
3:00 – Add role collection to business user
3:30 – Automation Pilot
4:45 – BTP Cockpit: Alert Notification, create service key
5:15 – Automation Pilot: Create alert notification with username and password
6:15 – Create command
7:00 – Import Catalog as JSON from code sample
7:35 – Configure input: appName, appPath, datacenter, user, password
11:15 – Trigger command
12:00 – BTP Cockpit: Assign app_Viewer role collection to technical user in qa and prod subaccount
References
For the code sample, see
Automation Pilot II
Video Tutorial
In this video tutorial, Philip Mugglestone completes the configuration of the smoke test using SAP Automation Pilot. The smoke test command is set up to be executed automatically whenever a Cloud Transport Management import finishes with status messages sent to the Slack channel.
0:00 – Introduction
0:40 – Automation Pilot: Execution, build event trigger
1:20 – BTP Cockpit: create alert subscription with Automation Pilot action
2:30 – Automation Pilot: create service account
3:45 – BTP Cockpit: create alert subscription with Slack notification
4:50 – Cloud Transport Management: Import queue from qa to prod
7:00 – Recap
Share and Connect
Questions? Please post as comment.
Useful? Give us a like and share on social media.
Thanks!
If you would like to receive updates, connect with me on
- LinkedIn > linkedin.com/in/dvankempen
- Twitter > @dvankempen
For the author page of SAP PRESS, visit
Over the years, for the SAP HANA Academy, SAP’s Partner Innovation Lab, and à titre personnel, I have written a little over 300 posts here for the SAP Community. Some articles only reached a few readers. Others attracted quite a few more. For your reading pleasure and convenience, here is a curated list of posts which somehow managed to pass the 10k-view milestone and, as sign of current interest, still tickle the counters each month. |
Thank for such detailed blog
Wow. This is for sure the blog of the year 🙂 Thank you so much for all your detailed work.
It looks like there is bug in Cloud Transport Management service. The import in QAS failed (due to my trial account limits) but MTAR file is still added as queue entry in PRD. Ideally if transport fails in QAS, it should not be added to Production queue. Refer below screenshot.
Hello Vinod,
You can configure the behavior of transport in the service: when creating a new node in SAP Cloud Transport Management Service, there is the option of the 'Forward Mode' - if set to 'Auto' (default), the request is automatically forwarded to the target transport nodes when the import of a transport request is started.
Node creation dialog of SAP Cloud Transport Management service
If you want to manually forward transport requests for this node (such as after having performed sophisticated test runs in QA), you can set the 'Forward Mode' to 'Manual'. In this case, a 'Forward' button appears in the import queue of this node and you can choose which transports to forward later. So, this might be a valid option for the node before PROD.
This is described in the user guide of SAP Cloud Transport Management service.
Best regards,
Boris
Thank you Boris. This helps !
Hi,
Thanks for the great blog !!
I am trying the implement the suggested scenario with Azure DevOps Repos for source code management instead of GitHub repository.
SAP BAS -> IDE
Azure DevOps Repos -> source code management repository
SAP Continuous Integration and Delivery Service -> CI/CD Pipeline
CTMS -> Transport service to move deployed code to QA and PROD environments
I am facing issue at below step.
3:15 – Configure Webhook
In Azure DevOps Repos, I see option to create Service Hooks -> Web Hooks.
On Next, I selected "Trigger on this type of event" as 'Code pushed' for repository and entered Webhook Payload URL generated from SAP CID service as 'URL' in Azure Repos. But on Test, it failed.
Please suggest, if SAP CID will work with Azure DevOps Repos ? While creating Repository, I see only 3 options are available - GitHub, Bitbucket server and GitLab.
Hi Anubha,
Sounds like we might need some Azure DevOps expertise for this setup.
Suggest to post this question to the forum: answers.sap.com and tag with DevOps and Azure DevOps. Tags are monitored and might loop in the experts.
Thanks.
Hi Anubha,
at the moment, SAP Continuous Integration and Delivery does not support Azure Repos webhooks mechanism. But - good news everyone - it is planned for this year.
Christoph
Thanks for the update Christoph !!
Hi Christoph Szymanski
I went through blogs and available tutorial videos and understood below combinations are most probable ones available for DevOps set up for SAP BTP Cloud Foundry apps.
Can you suggest if any one of these could be preferred, if licenses are not in consideration ? (Current set up when Azure Git is not available for BTP CI/CD)
Regards,
Anubha
It depends 🙂
Go for the left-hand combo with SAP Continuous Integration and Delivery if you don't have highly custom requirements. It gives you much faster and care-free set up of pipelines.
Advantage of the Azure DevOps Pipeline approach is full flexibility and control, but it comes with more effort and required expertise.
Christoph
Thanks Christoph for your valuable insight !!
Thank you for good Tutorials.
The failure occurred during the process of generating “app-uaa” instance in 'Continuous Integration and Delivery - Stage, commit and push to trigger app deployment' scenario
The message was output as follows.
Service broker error: Service broker xsuaa failed with: Error updating application null (Error parsing xs-security.json data: Inconsistent xs-security.json: Invalid appid "$XSAPPNAME(application,)" in granted-apps: May be '*' or only include characters 'a'-'z', 'A'-'Z', '0'-'9', '_', '-', '\', and '/'.)
Do you have any ideas for solving this problem?
I am guessing the cause. The description("granted-apps": ["$XSAPPNAME(application)"],) in xs-security.json is causing the issue
Hi Yanagawa-san,
It looks like there may be an issue with the jumpstart generator and your guess looks to be correct.
Could you remove this entire line from your xs-security.json then try again?
Alternatively, if you install the latest release of the jumpstart generator for CAP (1.0.7) then re-create your project this issue should no longer occur.
Thanks,
Philip
Hi, Philip -san.
Thanks for taking the time to reply.
I have made a try based on your advice. Also, the generator code seems to have been modified.
I passed the problem part but could not deploy the application successfully.
The three instances are created successfully, but a dump occurs during deployment.
It seems that the generator has several issues, since deploying directly from BAS to CF does not change the result.
I proceed in a way that does not use this generator.
Thanks for the advice.