Interplay of SAP Cloud Platform Transport Management, CTS+ and ChaRM in hybrid landscapes
Many customers are confused which tools to use when it comes to transporting content in hybrid (cloud and on premise) landscapes. This blog describes our recommendations when to use SAP Cloud Platform Transport Management service (TMS) and when to use enhanced Change and Transport System (CTS+). It also talks about how these tools can be combined with each other and with SAP Solution Manager Change Request Management (ChaRM) or Quality Gate Management (QGM).
Let’s start with some central statements:
- Transport Management (TMS) handles transport of development artifacts and application content in the cloud
- Enhanced Change and Transport System (CTS+) mainly deals with transport of non-ABAP content on premise
- TMS and CTS+ can peacefully coexist
- Both tools can be integrated into SAP Solution Manager Change Request Management (ChaRM) or Quality Gate Management
- TMS and CTS+ can also be combined with Continuous Integration Pipelines for handling the (Continuous) Delivery
As all of you know ‘the devil is in the details’, so let’s have a closer look.
The fine print
SAP Cloud Platform Transport Management
SAP Cloud Platform Transport Management (TMS) is THE solution for transporting content in SAP Cloud Platform (Neo and Cloud Foundry environment) and is generally available since December 2018. It is also available in a trial environment.
TMS is a service running in the Cloud Foundry environment, but the transport targets can be subaccounts in Neo environment , spaces in the Cloud Foundry environment and even tenants of multi-tenant enabled content runtimes like SAP Data Hub. The transports can be performed across global accounts and even between different regions (aka data centers).
The architecture of TMS allows the transport of any type of content by offering APIs to the consuming SAP Cloud Platform services or applications. This means that services which want to make TMS available for their content have to implement these APIs. As of December 2019 this has already been done for:
- SAP Cloud Platform Integration in the Neo environment
- Workflow in the Cloud Foundry environment
- SAP Fiori in the Neo environment
- Business Logging in the Cloud Foundry environment
- HTML5 repository in the Cloud Foundry environment
Besides that, TMS can transport development artifacts which can be packaged in Multi-Target Application (MTA) archives and SAP HANA delivery units if the SAP HANA database is hosted in SAP Cloud Platform.
For more details please have a look into the SAP documentation on TMS.
We will step-by-step increase the coverage of Transport Management for SAP Cloud Platform services. We also plan to use TMS for transporting application specific content of some of SAP’s SaaS solutions, for example SAP SuccessFactors.
On the other hand, we are not planning to extend the reach of TMS to on-premise systems (exceptions may apply to private cloud scenarios…).
In summary SAP Cloud Platform Transport Management will be further developed to cover a growing part of SAP Cloud Platform content and is therefore the way to go for customers planning to implement projects using SAP Cloud Platform services.
Enhanced Change and Transport System
The enhanced Change and Transport System (CTS+) has been available for many years to transport on premise non-ABAP content (like SAP Netweaver Development Infrastructure) via the ABAP Change and Transport System. You can model your non-ABAP systems as virtual systems in your transport landscape and connect them via transport routes.
This concept has been extended a few years ago to SAP Cloud Platform (Neo and Cloud Foundry environment). Please note that the ABAP server acting as CTS+ control system (in many cases an SAP Solution Manager) resides in your on premise data center even for the SAP Cloud Platform transports.
I have described setting up CTS+ for SAP Cloud Platform in this blog.
The basis for transporting SAP Cloud Platform content via CTS+ is the Multi-Target Application (MTA). The content to be transported is packaged into an MTA archive file and attached to the CTS+ transport request.
This in turn means that only cloud content that can be packaged into an MTA can be transported with CTS+. For a detailed list of which artifact types are covered by MTA see here for Neo and here for Cloud Foundry. Basically we are talking about development artifacts like HTML5 or NodeJS applications and some application content like SAP Cloud Platform Integration packages in the Neo environment.
We will continue to support the MTA based transport of SAP Cloud Platform content via CTS+ but we are not planning to extend the CTS+ coverage to other content types in SAP Cloud Platform or other SAP cloud based SaaS solutions.
So if you use MTA based content only in SAP Cloud Platform, CTS+ can be a valid choice.
Coexistence of TMS and CTS+
As I have written in the previous section CTS+ supports only SAP Cloud Platform artifacts which can be bundled into a Multi-Target Application. This is not the case for many service specific artifact types in SAP Cloud Platform. Therefore, there might come the time to use the cloud based Transport Management service and the on premise based enhanced Change and Transport System in parallel.
Technically this is not a problem, even when targeting the same subaccounts (or spaces) in SAP Cloud Platform. The challenge lies more on the governance level. A typical approach would be to clearly define which content types are transported with which tool. For the MTA enabled artifacts you have the choice between TMS and CTS+, whereas the rest always calls for TMS.
In the long run we recommend performing all cloud related transports via TMS and the on premise transports with CTS+.
Integration with SAP Solution Manager Change Request Management
In many cases an application involves several parts which run in separate systems in your landscape. A typical example would be a functionality running in a backend system (like SAP S/4HANA) running on premise which is extended by a nice frontend running on SAP Cloud Platform. These kinds of projects call for a hybrid change management covering all environments and allowing to synchronize the changes in the different systems respectively subaccounts or spaces.
We offer tools in SAP Solution Manager for this requirement, named Change Request Management (ChaRM) and Quality Gate Management (QGM). The good news is that both CTS+ and TMS can be integrated into the ChaRM or QGM processes.
The integration of CTS+ into ChaRM is available for quite a while so that MTA based CTS+ transports of SAP Cloud Platform content can be included into and managed via change documents in SAP Solution Manager. Via the central Change and Transport System (cCTS) it is even possible to make SAP Cloud Platform Neo subaccounts or Cloud Foundry spaces members of so-called system clusters which group several systems of different landscapes with the same role (development, test, production, …) into one ‘super-system’. The transports from the different source systems in the development cluster are also bundled forming so called transport collections. For more information about cCTS please check the corresponding SAP documentation.
The default configuration for this scenario would be that the SAP Solution Manager would not only run the Change Request Management functionality but would also be the central transport server for CTS+. Here it is important to know that the CTS+ integration of SAP Cloud Platform requires an SAP Netweaver release of 7.40 SP10 or above. Therefore, this setup requires an SAP Solution Manager 7.2 (but you all should have upgraded your SolMan 7.1 by now…).
The integration of SAP Cloud Platform Transport Management into ChaRM, however, is quite new. It has been released in December 2019 with SPS 10 for SAP Solution Manager 7.2. The configuration is described in this document on SAP Help Portal.
Basically, the TMS transport nodes are modeled as external services in SAP Solution Manager and then assigned to a solution. When using the integration, you can select which transport requests in TMS belong to a specific change document in Change Request Management. With this information SAP Solution Manager is able to trigger the imports into the corresponding subaccounts whenever the change document reaches the appropriate state, for example ‘To be tested’.
On the side of TMS the corresponding transport nodes are marked as being ‘controlled by SAP Solution Manager’. This prevents these nodes from performing imports directly from within TMS.
The overall architecture for using TMS and CTS+ with SAP Solution Manager looks like this:
Usage of TMS and CTS+ in CI pipelines
Development teams in SAP Cloud Platform very often make use of Continuous Integration processes by storing the development artifacts in a central source code repository like Git. Upon committing a change towards this source code repository a continuous integration server like Jenkins is triggered and runs a CI pipeline which involves steps like building the development artifacts, deploying them to a test environment, running automated tests and code scans, etc.
In the context of the project ‘Piper’ SAP offers pre-configured CI pipelines for typical scenarios and also a library of pipeline steps that can be used by you. These steps include the ones necessary to communicate with CTS+ and/or TMS. Built on these pipeline steps there are two template scenarios for using CTS+ or TMS in a Continuous Integration / Continuous Delivery context:
- Build and Deploy Hybrid Applications with Jenkins and SAP Solution Manager (based on CTS+)Architecture overview:
- Integrate SAP Cloud Platform Transport Management Into Your CI/CD PipelineArchitecture overview:
You should see enhanced Change and Transport System and SAP Cloud Platform Transport Management as two independent transport tools with different target environments. CTS+ (mainly) for on premise non-ABAP transports and TMS for transports in the cloud. In many hybrid environments both tools will be used in parallel. The overlap on Multi-Target Application based content allows for a smooth transition from CTS+ to TMS where needed.
An integration into higher level change management tools like SAP Solution Manager Change Request Management is possible for both, CTS+ and TMS. On the development side both tools can be integrated into Continuous Integration / Continuous Delivery scenarios.
I hope to have clarified the uses cases for CTS+ and TMS in the context of hybrid landscapes and look forward to your feedback and questions.