Introducing DevOps for SAP BTP ABAP Environment

Objectives

After completing this lesson, you will be able to:
  • Explain change and transport management in SAP BTP ABAP Environment, benefiting both from selected Git features and transport management.
  • Explain how to separate the development of features and corrections.
  • Explain how to orchestrate ABAP developments using SAP Cloud Transport Management and Change Request Management.

Explain Change and Transport Management in SAP BTP ABAP Environment

Note

This lesson is geared mainly towards administrators, but any roles involved could benefit from it.

This lesson will help you explore the concepts and tools for DevOps in the SAP BTP ABAP Environment and understand the similarities and differences between DevOps with SAP BTP on other platforms.

This lesson is intended for customers who want to create side-by-side extensions in the SAP BTP ABAP Environment. For partners, SAP also offers other options; however, these are beyond the scope of this course. For more information, see the following:

Many of the principles of DevOps for SAP BTP ABAP Environment are similar to those of DevOps for SAP BTP in general.

  • Team members integrate their code frequently into a single main line

  • Before each integration, tools are available to verify changes through automated testing (compare with "Introducing Continuous Integration and Delivery (CI/CD)" lesson).

  • The recommended solution for automated transport management is the SAP Cloud Transport Management service (compare with the "Handling Delivery with Transports" lesson). SAP Cloud ALM, SAP BTP’s central operations platform, is also available for operations in the SAP BTP ABAP Environment. (compare with the "Observing Your Apps Running on SAP BTP" lesson).

However:

  • In ABAP, you need an approach that combines the flexibility of Git with the well-established ABAP Change and Transport System (CTS).
  • You cannot yet use SAP Continuous Integration and Delivery service with SAP BTP ABAP Environment (see the "Introducing SAP Continuous Integration and Delivery" lesson). You need to use a third-party continuous integration pipeline.
  • For the SAP BTP ABAP Environment, we strongly recommend a five-system landscape rather than a three-system landscape. We will compare these two options later in this lesson.

The rest of this section will explore each main component in a typical development landscape.

Development Landscape: Main Components

Landscape for SAP-Managed git-enabled Change Transport System (gCTS) on SAP BTP ABAP Environment

The above graphic shows:

  1. A global SAP BTP account:
    • With multiple systems
    • With Git-based Change and Transport System
  2. abapGit, used to transport code to and from other systems (e.g., an SAP S/4HANA Cloud system)
  3. Continuous integration pipeline, based on Jenkins
  4. SAP Cloud Transport Management (cTMS)
  5. SAP operations services, such as SAP Cloud ALM or Change Request Management (ChaRM) in SAP Solution Manager 7.2

Global Account

Each ABAP system has its resources.

The above graphic depicts five systems in two separate codelines:

  • DEV = develop features on the main branch
  • TST = Quality Assurance/acceptance testing on the main branch
  • COR = develop corrections on the release branch
  • QAS = Quality Assurance/acceptance testing on the release branch
  • PRD = Productive end use

Git-based Change and Transport System (gCTS)

gCTS enables you to manage your ABAP change and transport management processes using Git as a version management system. There are two options:

SAP-managed gCTS:

An internal Git client manages Git repositories at the operating system level. This arrangement is advantageous for ease of use: SAP, as the platform provider, is responsible for the repository, import queue, etc. However, the disadvantage is that you cannot directly access the Git repository.

For more information, see:

Software Component Lifecycle Management | SAP Help Portal

Bring your own Git:

Bring your Own Git (ByoG

Bring Your Own Git (BYOG) lets you connect your Git repositories. You can choose your own Git provider – including GitLab, GitHub, or Bitbucket – and more easily integrate your ABAP language Git repositories in your existing custom workflows and continuous integration pipeline(s). SAP ensures the consistency of imported commits.

However, the user cannot make code changes in their remote Git repository and import them into the local SAP BTP ABAP environment system instance, as this might violate any guidelines for ABAP cloud development.

For more information, see:

Bring Your Own Git | SAP Help

Software Components

In either SAP-Managed or ByoG, you interact with the repository using the Manage Software Components app to create or clone a repository, manage branches and tags, etc. Using Software Components, you transport ABAP development objects from one system to another. Each software component has a 1:1 relationship with one Git repository and with one transport layer.

This enables you to take advantage of both selected Git features and the ABAP Git-enabled Change and Transport System (gCTS).

  1. You start by creating a software component in the Manage Software Components app. Once you create and clone the software component, the ABAP System automatically creates a structure package.
  2. You develop in ABAP Development Tools in Eclipse (ADT).
  3. When you are finished developing, you release the transport request as usual. Once a transport is released, the objects are pushed into the associated Git repository. Using the Transport Organizer in the Eclipse-based ABAP development tools, you can create, manage, and release transport requests.

When creating each software component, structure it carefully:

  • You cannot move development objects from one software component to another.
  • The objects of one software component expose their functionality using released APIs. Therefore, to enable other software components to use your software component, set the API state to "Released."
  • Software components cannot have cyclic dependencies. Instead, group basic re-use functions in a dedicated SW component.

For more information on the Manage Software Components app, see:

Manage Software Components | SAP Help Portal

For a detailed step-by-step-guide, see the tutorial:

Transport a Software Component Between two Systems

abapGit

gCTS is used only for transports between systems within one SAP BTP global account.

abapGit is used for:

Continuous integration pipeline

You cannot use the SAP BTP service SAP Continuous Integration and Delivery in conjunction with the SAP BTP ABAP Environment. Therefore, if you want to run continuous pipelines for your ABAP repositories, you need to set up your pipeline. For example, you may want to run automated ABAP Unit and ABAP Test Cockpit (ATC) checks.

To help you set this up, SAP offers Project Piper - pre-defined pipelines, stages, and steps that you can use, e.g., with a Jenkins server. These are open-source and based on SAP BTP ABAP Environment APIs.

A detailed description of this setup process is beyond the scope of this course. However, detailed information is available here:

SAP Cloud Transport Management Service

Like other development artifacts in SAP BTP, the ABAP artifacts in the development sub-account must be reliably controlled and brought to the test and productive sub-accounts. SAP's tool for this purpose is SAP Cloud Transport Management. For more information, see the "Reflecting Your Delivery Landscape in Transport Management" lesson.

SAP Operations and Orchestration services, such as SAP Cloud ALM and SAP Solution Manager 7.2

Again, ABAP artifacts are supported in SAP Cloud ALM and SAP Solution Manager 7.2. For general information on these services, see the "Observing Your Apps Running on SAP BTP" lesson.

We will discuss the use of SAP Cloud Transport Management in conjunction with Change Request Management in the final section of this unit, Use of SAP Cloud Transport Management with Change Request Management. Before we do that, we need to discuss another feature of the above landscape. By default, a development landscape is often depicted as having three systems: Development (DEV), Quality Assurance (QAS), and Production (PRD). However, in many cases, we recommend including two more: Corrections (COR) and Testing (TST). In the next section, we will explore these two alternative setups.

Separating the development of features and corrections

The Development landscape: Three-Systems versus Five Systems

When you set up your system landscape, you have two options:

  • Three-system landscape: For occasional development activities, for example, for larger applications where testing needs to run in parallel to development
  • Five-system landscape: For permanent or infinite development activities for large applications with many developers, where development cannot be paused to implement an urgent correction

Watch the video to find out more.

The advantage of the five-system landscape is that you keep your feature development route separate from your hot fix route. I.e., you develop to your heart’s content in the infinity codeline. If you need to implement a correction, you can directly do so in COR on the release branch and transport the fix, knowing that there are no new features in the way that may not be ready.

Reducing Costs with System Hibernation

Previously, the cost of running so many systems was an issue. However, since SAP BTP 2308, you can temporarily hibernate or suspend any systems that are not permanently needed – here, TST, COR, and QAS. That is, you pay for the disk space but not for memory or processing time. You also need to plan for a few minutes of spin-up time.

This enables you to reduce the operating costs and makes a five-system landscape much more affordable.

Orchestrating ABAP developments using SAP Cloud Transport Management and Change Request Management

Use of SAP Cloud Transport Management with Change Request Management

You can record changes using Change Request Management and integrate this using SAP Cloud Transport Management. Watch the video to find out more.

Business Scenario

As CTO of Rotating Banana, you have decided to extend an existing transaction in SAP S/4HANA, while keeping the core clean, by creating a new side-by-side ABAP application in SAP BTP ABAP Environment.

This application will have an SAP Fiori user interface.

You decide to set up a development landscape with two codelines:

  • "Infinity" (DEV-TST), where a development team develops new features
  • "Correction" (COR-QAS-PRD), where hot fixes are supplied.

Furthermore:

  • In "infinity", you can make changes quickly and automate testing with a CI pipeline, created with Project ‘Piper’.
  • In "correction", you automate transports from COR to QAS using SAP Cloud Transport Management.

You are already familiar with Change Request Management (ChaRM) in SAP Solution Manager 7.2, so you use these SAP tools to orchestrate changes to the ABAP and SAP Fiori components.

Summary

You should now be able to:

  • Explain change and transport management in SAP BTP ABAP Environment, benefiting both from selected Git features and transport management.
  • Explain how to separate the development of features and corrections.
  • Explain how to orchestrate ABAP developments using SAP Cloud Transport Management and Change Request Management.