Skip to content

Latest commit

 

History

History
399 lines (229 loc) · 19 KB

delivering-applications-b39bae3.md

File metadata and controls

399 lines (229 loc) · 19 KB

Delivering Applications

In enterprise environments, use a managed and automated delivery approach – because it is less error-prone and creates repeatable outcomes. Furthermore, you can apply governance and central control of the propagation of your changes towards your production environment.

You have several options for propagating developed applications and application-specific content from one subaccount to another automatically and with more control; for example, from your Development or Testing to your Production subaccounts.

The delivery approaches are based on some of the concepts and approaches as outlined in Deploying Applications.

The following table presents the delivery options, with tool support and automation decreasing from top to bottom:

Delivery Option

Development Content (such as Java, HTML5, CAP applications)

SAP Cloud Integration Content

SAP HANA Cloud Artifacts

SAP Build Work Zone

Other App-Specific Content

Kyma-Based Apps

SAP Continuous Integration and Delivery (CI/CD)

recommended

Basic pipeline available, still in development

recommended

n/a

n/a

recommended (automating the packaging into a Dockerfile, and the deployment)

SAP Cloud Transport Management with the option to integrate into Change Management*

recommended (as MTA)

recommended (as MTA)

recommended (as MTA)

recommended

recommended

n/a

CTS+ with the option to integrate into Change Management*

recommended (as MTA)

recommended (as MTA)

recommended (as MTA)

n/a

n/a

n/a

Manually

For more information, see Deploying Applications.

* SAP Cloud ALM change and deployment management, and SAP Solution Manager Change Request Management and Quality Gate Management

Recommendation:

For Cloud Foundry and Neo, use continuous integration together with transport management, to combine agility with control:

  • Your development team can benefit from the highly automated CI process that automatically qualifies their changes after submitting them to the source code repository. Also, this approach makes sure that only qualified changes are considered for propagation towards your production environment. Especially with SAP Continuous Integration and Delivery, you can drastically reduce the cognitive load of your development teams.

  • Still, you can benefit from additional control for the propagation of your changes towards your production environment, where you centrally define delivery landscapes and configure who is allowed to handle changes where, which is required in most enterprise environments and regulated markets. Also, you get the option to integrate into new or existing change management processes, such as offered by SAP Cloud ALM – to synchronize transport of changes in hybrid scenarios.

  • If you're not facing the (immediate) need for more control, SAP recommends starting with SAP Continuous Integration and Delivery, if it covers your development scenario. You can easily activate the automated hand-over into transport management at a later point in time. For example, you could perform direct deployment from the pipeline during a proof of concept, but then integrate into transport management when the team comes up with a release candidate.

For Kyma, use a CI/CD pipeline to package your application into a Docker image and the corresponding deployment. For this, create Helm charts that you can link to your pipeline. This way, you can benefit from automation and a higher reliability. Start with the corresponding pipeline template of SAP Continuous Integration and Delivery. Only if you need more sophisticated pipelines and delivery landscapes, consider building your own pipeline with Project "Piper".

To learn more about the delivery options, expand the sections:

SAP Continuous Integration and Delivery (CI/CD)

With CI/CD, you can automatically qualify development changes every time they're submitted to your central Git-based source code repository. For this, you configure “pipelines”, which are triggered directly by commits, and then automatically build, test, and deploy your code changes. This approach speeds up your development and delivery cycles. Your development team gets direct feedback on the quality of performed changes, and you can make sure that only qualified changes are considered for propagation towards your production environment.

SAP offers two main approaches for applying CI/CD in your software development. Depending on your expertise in CI/CD, the required level of flexibility, the infrastructure you bring (or don’t bring) along, and the desired level of support, choose one of the following options:

SAP Solutions for Continuous Integration and Delivery

CI/CD Solution

Required Expertise in CI/CD

Level of Flexibility

Infrastructure

Support

SAP Continuous Integration and Delivery

Low

Medium

SAP Continuous Integration and Delivery is ready to use and doesn’t need a separate CI/CD infrastructure.

Support provided by SAP

Project "Piper" (complemented by Continuous Integration and Delivery Best Practices Guide

Medium - high

Medium - high

Project "Piper" is an open-source project that provides preconfigured Jenkins pipelines, which you can use in your own Jenkins infrastructure and adapt according to your needs, if necessary. Project "Piper" needs Jenkins as the underlying CI/CD infrastructure. If you don’t have a Jenkins instance yet, use the Cx Server to bootstrap a preconfigured one, or use the step library and the Continuous Integration and Delivery Best Practices Guide to build your own pipelines on any CI/CD infrastructure. See Getting Started with Project "Piper".

Open Source community and SAP Community support (no direct support by SAP)

So, with the out-of-the-box pipeline templates for typical SAP development use cases, SAP Continuous Integration and Delivery targets rather typical SAP customers and partners with an ABAP background that are transitioning into the cloud, while Project 'Piper' offers full flexibility for experienced users with their own CI/CD stack and a high level of expertise.

SAP Continuous Integration and Delivery offers pipeline templates for SAP BTP Cloud Foundry, Kyma, and Neo – and for the deployment of SAP Fiori apps on ABAP front-end servers.

For more information, see SAP Solutions for Continuous Integration and Delivery and Which SAP Solution for CI/CD Meets Your Needs?.

Transport Management

If you want to have more control, especially when propagating changes towards your production environment, consider transport and change management: You can centrally define and manage delivery landscapes and configure who can come up and handle deliveries on which transport node. Also, with a combination of transport and change management, you can set up synchronized transports in hybrid scenarios (involving both on-premise ABAP content and SAP BTP content). For more information, see Interplay of SAP Cloud Platform Transport Management, CTS+ and ChaRM in hybrid landscapes.

For transport management, SAP BTP offers the following :

  • For cloud transports, also in hybrid landscapes: the SAP Cloud Transport Management service, with which you can centrally transport development content archives, delivery units of SAP HANA XS classic model, and application-specific content of SAP cloud solutions, such as SAP Cloud Integration content, between different subaccounts. Such subaccounts might even belong to different global accounts, spread across different regions. For more information, see What is SAP Cloud Transport Management

    Recommendation:

    Use SAP Cloud Transport Management to handle SAP BTP development and application-specific content, independent of whether it's provided as multitarget application (MTA) files or in other formats.

    To facilitate role management and allow strict access control, we recommend running SAP Cloud Transport Management as shared service, by setting it up on a central administrative subaccount. For providing its service, SAP Cloud Transport Management works then together with agents running in source and target accounts, such as SAP Content Agent service in the SAP BTP, Cloud Foundry runtime. SAP Content Agent service eases the local management of application-specific content by offering export/import and content assembly - interplaying with central transport and change management capabilities or used standalone via its own user interface. For more information, see Introduction to SAP Content Agent Service.

  • For on-premise focused scenarios: the enhanced Change and Transport System (CTS+), running in an on-premise ABAP system. Besides handling the transport of on-premise systems, CTS+ also lets you transport SAP BTP artifacts from one subaccount to another. Note that the artifacts must be packaged as multitarget application (MTA) archives; no other SAP BTP content format is planned to be supported by CTS+. Therefore, only consider CTS+ for SAP BTP content, if you have CTS+ already in use and only have to handle MTA-based content on SAP BTP (today and in the future). For more information, see Transporting Multitarget Applications with CTS+ ↗️

    Recommendation:

    As a future-proof way forward, to be able to cover also more and more application-specific content with one central approach, SAP recommends SAP Cloud Transport Management.

Both, CTS+ and SAP Cloud Transport Management, support integration with change management in SAP Cloud ALM and SAP Solution Manager:

  • For information about integration with change and deployment management of SAP Cloud ALM, see SAP Cloud Transport Management Service. If you want to benefit from change and deployment management capabilities of SAP Cloud ALM for SAP BTP changes, integrate a standalone instance of SAP Cloud Transport Management, running in one of your subaccounts. For more information, see New Integration of SAP Cloud Transport Management and SAP Cloud ALM.

  • For integration into change management approaches around SAP Solution Manager, you have the choice: Either run CTS+ centrally on SAP Solution Manager and integrate it with change management tools, such as Change Request Management or Quality Gate Management – or integrate SAP Cloud Transport Management into these tools running on SAP Solution Manager (minimum version: SAP Solution Manager 7.2 SP10). You can even use CTS+ and SAP Cloud Transport Management in parallel within Change Request Management or Quality Gate Management.

    With these approaches, you can set up synchronized transports in hybrid scenarios (involving both on-premise ABAP content and SAP BTP content). For more information, see Interplay of SAP Transport Management, CTS+ and ChaRM in hybrid landscapes

CI/CD with Transport Management

In Cloud Foundry and Neo, combine CI/CD with transport management (either in the form of SAP Cloud Transport Management service or CTS+), to gain more control over the delivery of release candidates towards your production environment and at the same time benefit from the agility CI/CD brings to your development. For more information, see How to integrate SAP Transport Management into your CI/CD pipeline. It's also possible to combine CI/CD, CTS+, SAP Cloud Transport Management, and change management. If you use SAP Continuous Integration and Delivery, you can define an automated hand-over from your pipeline into SAP Cloud Transport Management out-of-the-box.

Manually

  • Deploy applications manually from your IDE to different subaccounts. Import or export your application using the SAP BTP cockpit, or use the Console Client for the Neo environment or the Cloud Foundry command-line interface to deploy your application. For details, see Deploying Applications.

    Note:

    You can transport portal settings and configurations only by manually redeploying your application in each subaccount.

  • In the Neo environment, consider using the Solution Export Wizard that you can start in SAP BTP cockpit: You can model solutions by selecting included components (with an automated resolution of interdependencies) and either export the outcome (as a multitarget application file) or directly handle the modeled solution using the change management options outlined earlier. For more information, see Solution Export Wizard - Ease Modeling and Export of Solutions as MTA.

  • (HTML5 applications only) Synchronize Git repositories and create build scripts that let you transfer commits from the repository of the source subaccount to the repository of the target subaccount. After the synchronization, you must still deploy the application manually using the SAP BTP cockpit.

  • (SAP HANA XS applications only) Use the SAP HANA XS Application Lifecycle Management (HALM) to create transport routes between two SAP HANA systems, then transport delivery units between those systems. For more information, see SAP HANA Application Lifecycle Management.

Related Information

Blog Post: Transport Approaches in SAP BTP

Blog Post: Getting started with the predefined CI/CD pipeline for Kyma runtime

Blog Post: Cloud Native Buildpack Support in SAP Continuous Integration and Delivery

When developing applications for SAP BTP, you can combine the agility of continuous integration with the control of transport management.

  1. You create the application with the IDE of your choice, for example SAP Business Application Studio. The artifacts are stored in a central source code repository.

  2. Whenever a developer commits a change to the source code repository, a continuous integration pipeline starts.

    Recommendation:

    For typical SAP BTP scenarios, such as development with SAP Cloud Application Programming Model, we recommend using SAP Continuous Integration and Delivery. The pipeline templates contain steps to build the application, run automated tests, and deploy the application to your development subaccount.

  3. In the “release” stage of the pipeline, you can also hand over the MTA to SAP Cloud Transport Management.

    This creates a transport request, which can then be handled according to your governance requirements.

    Recommendation:

    We recommend this step only for qualified release candidates of your application. This can be achieved by using a separate release pipeline, for example.

  4. Optionally, you can integrate SAP Cloud Transport Management with SAP Cloud ALM or SAP Solution Manager. With that, you can manage hybrid projects, including SAP BTP and on-premise parts.

Related Information

Continuous Integration and Delivery Best Practices Guide

Transporting Multitarget Applications with CTS+ ↗️