How to Integrate SAP Development with Standard DevOps Tools
As SAP professionals, we are at the heart of our organizations. Often, we’re providing the business processes and back-ends for new user-facing experiences. To deliver change at the speed of business, we need to be able to synchronize our SAP change with non-SAP software change. Using automation tools, SAP change management can be integrated with the standard tools used across the business for software delivery.
Standard tools for DevOps
As you probably know, non-SAP environments have a range of standard DevOps tools used to accelerate workflows and enable continuous integration/continuous delivery (CI/CD). These DevOps and CI/CD tools include Jira, ServiceNow, Jenkins, GitLab, Azure DevOps, and others. Agile methodologies have been adopted so software development teams can deliver change faster and more frequently, with automation enabling testing and deployment to keep pace with rapid development.
All this progress outside of SAP is putting pressure on the SAP team. SAP developers are being challenged to deliver their updates faster. This must be done without compromising on quality or increasing the risk of change, given how important SAP typically is to the organization’s core processes.
The standard tools used outside of SAP don’t work natively within SAP because of its unique architecture. To enable agile and DevOps practices to be adopted within SAP, the organization needs DevOps tools designed to support the development and automated delivery of SAP change. More than that, these tools should integrate SAP workflows with the mainstream DevOps workflow outside of SAP. In practice, that means integration between agile backlog managers such as JIRA and change management within SAP to avoid manually synchronizing change requirements and status. And for more automated delivery pipelines, the ability to orchestrate transport movement in sync with change in an outside-SAP CI/CD pipeline.
The good news is DevOps toolchain integration is possible. What’s required is a suitable SAP-specific solution, with the capability to connect SAP to external CI/CD tools already in place for software development outside SAP.
Some examples of DevOps tools
There is a vast range of DevOps tools to choose from, including change requirements management, source code and version control, and configuration management, among other things. Most organizations will standardize on one or two tools of each type.
Jenkins, for example, might be used to support continuous integration. Outside of SAP, Jenkins can automatically orchestrate unit testing and functional testing when a developer releases code to QA. Automated testing validates every change, ensuring the safety and compatibility of new code in the existing code base. When applications span both SAP and non-SAP environments, a challenge is coordinating testing across both. The code for the web front end and transports for the SAP back end need to enter QA at the same time, enabling testing of the integrated solution.
Chef helps with continuous delivery, automatically creating and provisioning systems and infrastructure required for a change delivery. Systems might be databases or web servers, for example. Within the SAP environment, an analog would be a new ABAP code with a dependency on a configuration transport.
Automated tools such as these make agile and DevOps workflows possible.
How can DevOps tools be used for SAP development?
You might be surprised to learn that the same DevOps tools used outside of SAP can be used within SAP, addressing some common requirements for DevOps and agile workflows.
One of the most common SAP development integrations we’ve seen is with ServiceNow, enabling SAP change tickets to be stored and managed with the tickets for all the other systems. Using an SAP-specific DevOps platform as an intermediary, it’s possible to create an integration between ServiceNow and the SAP development environment. SAP change tickets are posted in ServiceNow, and the SAP DevOps solution manages the transports and objects created against the work request through the lifecycle of delivery. An essential function of a SAP specific DevOps platform is automated analysis, ensuring each change is safe, every time a transport is moved, eliminating the need for manual change tracking and analysis spreadsheets, or the inevitable human error or miss leading to production outages. DevOps for SAP orchestrates and synchronizes approvals across multiple development tracks, while updating status in ServiceNow as change progresses through the pipeline.
Agile backlog management
A similar approach can be used for agile backlog management based on Jira. Whereas ServiceNow is typically used to track service requests to fix faults, some of them urgent, backlog management is more about planned change, delivering product enhancements on a schedule. For long-running projects, reprioritization of user stories as the business requirements change is common, with the SAP DevOps platform ensuring SAP development stays in sync with the current priorities in Jira, supporting reporting including status, Kanban boards, and traditional agile retrospective reporting such as burn down charts.
As mentioned above, Jenkins often orchestrates testing automatically as soon as code is finished. By integrating SAP development through a DevOps automation platform, it’s possible to keep SAP testing aligned with non-SAP testing. This is particularly useful when there is already a Jenkins-based workflow because it enables dependent SAP and non-SAP changes to be moved into QA for testing simultaneously, with SAP tests triggered automatically at the right time. Within SAP, automation can start testing tools such as Tricentis or Worksoft at the appropriate point in the delivery workflow., even selecting test cases suitable to the change in-flight. Orchestration ensures testing results are verified across pipelines, preventing the deployment of change until everything passes testing requirements.
A customer I’ve worked with in the past integrated their SAP software delivery pipeline with standard tooling used in the rest of the business. Business requirements are created in CA Agile Central (although other agile tools such as Jira could be used). The SAP automation tool automatically pulls in the SAP portions of those business requirements and creates an SAP-specific change request called a business task for the SAP developer. Every part of the development cycle – approving code, release to QA, and ultimately deployment to preprod and production – has become part of the integrated pipeline. This customer uses GitLab (a competitor to Jenkins) as its continuous integration tool. Through the SAP DevOps platform, GitLab is continuously updated with the SAP development status, and triggers deployment and testing within the SAP software development cycle. Using this workflow, there is full visibility of all software development, through standard tools, and greater efficiency resulting from standardized processes.
It is possible to use agile and DevOps practices in SAP by building an automated end-to-end development and delivery process. You will need a solution to connect SAP with industry-standard DevOps tools. With this integration it’s possible to streamline the management of SAP change and enhance its visibility across the business. Going further, it’s even possible to integrate SAP into a company-wide software delivery pipeline, automating development, testing, and release of hybrid applications spanning SAP and non-SAP technologies.
Thanks a lot for your blog post! Just to clarify: there are options available to integrate SAP with DevOps tools:
External tool integration API in Focused Build (such as with Jira)
External DevOps API in Focused Build (such as with Jenkins)
Some of those might require some manual efforts, but integration options are available.