SAP Cloud Platform Management Guide
SAP Cloud Platform Management Guide
2020-07-30
This document helps you plan and set up your landscape and your lifecycle management for running
applications on SAP Cloud Platform. It contains best practices and recommendations for planning
development projects – from setting up the correct organizational structure to creating an account and
security model, to developing and operating applications.
This guide is the starting point for setting up application lifecycle management for your specific use case,
business, and IT landscape. It contains recommendations and best practices that give you an overview of what
you should consider when planning development projects on SAP Cloud Platform. It does not contain specific
task descriptions, but does include links to step-by-step instructions when required.
If you're an architect or a development project lead, this guide helps you plan your organizational setup and
your account and security model. It has an overview of processes, tools, and services that are available for
developing and operating applications.
If you're an administrator or developer, this guide helps you define the correct methodologies and tools for
your development project on SAP Cloud Platform.
If you're an SAP partner and want to embed SAP Cloud Platform into your product portfolio, this guide helps
you to set up SAP Cloud Platform for developing and running production services for your customers.
Note
This guide is targeted at SAP Cloud Platform customers who want to run and use applications in a
production environment. If you're a trial user, you might still find that some information in this guide is
useful. Check out the following page for more details about trial accounts: Trial Accounts. Please note that
the services available in the trial version differ from the ones in the enterprise version.
● SAP Cloud Platform is an open platform-as-a-service (PaaS) that is a vital part of the transition to the
Intelligent Enterprise. SAP Cloud Platform and the SAP HANA Data Management Suite comprise the digital
platform of this Intelligent Enterprise. SAP Cloud Platform is where you develop new applications, extend
existing ones, and is at the center of integration scenarios. For more information about the Intelligent
Enterprise, see https://www.sap.com/products/intelligent-enterprise.html
● Basic Platform Concepts [page 7] – regions, environments, accounts, members, quotas, capabilities
and links to in-depth explanations.
1. Set Up and Plan [page 19] – build teams, set up your account and security model, and create an
enrollment process for your development projects.
2. Develop and Build [page 47] – find out about the tools and programming languages that are available on
SAP Cloud Platform, and how to use multi-target applications to efficiently manage dependencies.
3. Deploy and Deliver [page 54] – deploy and deliver simple and multi-target applications.
Related Resources
The Learning Journey for the Lifecycle-Management of SAP Cloud Platform Applications is an extensive, well-
structured collection of links to resources such as videos, blog posts, openSAP courses, and additional
documentation.
Also check out the video tutorial from SAP HANA Academy SAP Cloud Platform, Administrators Overview:
Planning and Lifecycle Management
SAP Cloud Platform provides comprehensive application development services and capabilities that let you
build, extend, and integrate business applications in the cloud. It offers three development environments (Neo,
Cloud Foundry and ABAP), multiple different regions (data centers) and a broad choice of programming
languages.
The central point of entry to the SAP Cloud Platform is the cockpit, where you can access your accounts and
applications and manage all activities associated with them.
The figure below depicts the relationship between a global account, its subaccounts, environments, regions,
entitlements, and quotas. It shows the administrative tasks to be considered at the global acccount level as
well as at the subaccount level.
Global Account ● For each commercial model (licence type), you get a separate global account.
● Appoint at least one person as administrator. The administrator is responsible
for adding new subaccounts, adding members to a global account, and manag
ing the entitlements. We recommend that you also appoint at least one substi
tute administrator. If the main administrator leaves the company or is unavaila
ble, it's important that you have someone who's available to take over these
tasks.
● You purchase entitlements for each global account (according to your commer
cial model). The administrator of the global account distributes quotas to the in
dividual subaccounts.
Subaccount ● Each subaccount runs in exactly one region (data center) and one environment.
● Appoint at least one person as administrator. The administrator is responsible
for adding new members to the subaccount and assigning their business roles.
We recommend that you also appoint at least one substitute administrator. If the
main administrator leaves the company or is unavailable, it's important that you
have someone who's available to take over these tasks.
Recommendation
We recommend that you use the SAP Cloud Application Programming Model to build applications on SAP
Cloud Platform. It uses data models and service definitions on a conceptual level that are used as inputs for
the data, service, and UI layers. The SAP Cloud Application Programming Model is compatible with any
development environment, but we recommed that you use SAP Web IDE Full-Stack.
Related Information
2.1 Regions
A region represents a physical location (for example, Europe, US East) where applications, data, or services are
hosted.
SAP Cloud Platform is available in many regions around the globe. Depending on the environment you're using,
you can choose between data centers that are hosted by SAP (Neo environment) and those run by our partner
Infrastructure as a Service (IaaS) providers (Cloud Foundry environment): Microsoft Azure, Amazon Web
Services (AWS), and Google Cloud Platform (GCP). A region is chosen at the subaccount level. For each
subaccount, you select exactly one region (that is one data center) and one environment.
When deciding on the location of your Platform as a Service (PaaS), consider existing Software as a Service
(SaaS) and Infrastructure as a Service (IaaS) and try to locate it close to those or even in the same data center.
You can also optimize application performance (response time, latency) by selecting a region that's
geographically close to your users. However, the selection of a region is also dependent on many other factors:
First, check the availability of specific services in the individual regions. Second, ensure that you comply with
security requirements, such as country- or industry-specific data privacy regulations. And third, consider the
location of other cloud offerings you’re using. You might have to locate your solutions in the same data center.
For example, if you want to build an extension for SAP SuccessFactors, it must run in the same region as SAP
SuccessFactors, which runs only in SAP data centers. For a complete overview of the availability of SAP Cloud
Platform services in the different regions, see SAP Cloud Platform Regions and Service Portfolio.
2.2 Environments
Environments constitute the actual platform-as-a-service offering of SAP Cloud Platform that allows for the
development and administration of business applications.
Each environment comes equipped with the tools, technologies, runtimes, and services that you need to build
applications. The availability of different environments allows for greater flexibility in your development
process. Environments are self-sufficient and integrated into the platform at the subaccount level, which
means that each environment can be used on its own without any other environments. In the Cloud Foundry
environment, the subaccount is divided into one or more spaces, which is where application development,
deployment, and maintenance takes place. However, the availability of services is not the same for all
environments. For more information, see SAP Cloud Platform Service Availability Matrix.
● Cloud Foundry
● Neo
● ABAP*
Cloud Foundry is the strategic choice for developing new business applications and business services. All
applications that will be available in new third-party Infrastructure as a Service (Iaas) provider data centers, in
partner data centers, or in a private cloud environment are required to run on Cloud Foundry. Also consider the
migration guide for moving from Neo to Cloud Foundry Best Practices for Adapting SAP Cloud Platform
Applications to the Cloud Foundry Enironment to better understand the implications of your environment
choice.
*Within the Cloud Foundry environment, you can create a new space for ABAP development. This is what we
refer to as the ABAP environment, which we recommend for building extensions to ABAP-based products. The
ABAP environment supports the ABAP RESTful programming model that includes SAP Fiori and Core Data
Services (CDS). For more information, see ABAP RESTful Programming Model.
For developers to be able to fully use the ABAP environment for application services and for creating
application UIs in the SAP Web IDE, an administrator has to do a setup of the ABAP environment, as described
in detail in Setup of the ABAP Environment.
● Consumption-based commercial model: Your organization receives access to all current and future SAP
Cloud Platform services that are eligible for this model, but only pays for the actual consumption.
For more information, see What Is the Consumption-Based Commercial Model?.
● Subscription-based commercial model: Your organization subscribes only to the SAP Cloud Platform
services that you plan to use. You can then use these services at a fixed cost, irrespective of consumption.
For more information, see What Is the Subscription-Based Commercial Model?.
For information about service availability, prices, and estimators, see the SAP Cloud Platform website . You
can also view the SAP Cloud Platform service catalog via the Discovery Center .
Note
If you want to use both commercial models, you need two separate global accounts. Each licensing model
requires a specific contract, so you can't combine those models under one agreement.
Tip
You can switch an existing SAP Cloud Platform contract between the two commercial models at any time.
Keep in mind that not all SAP Cloud Platform services are available in both commercial models. Contact
your SAP account executive or sales representative to discuss feasibility and the terms of transforming
your contract.
2.4 Accounts
The SAP Cloud Platform cockpit is structured according to global accounts and subaccounts.
Global Accounts
A global account is the realization of a contract you made with SAP. It is region-independent, and it is used to
manage subaccounts, members, and quotas. You receive quotas to use platform resources per global account
and then distribute the quotas to the subaccount for actual consumption. There are two types of global
accounts: enterprise accounts (paid) and trial accounts (free). The type determines pricing, conditions of use,
resources, available services, scope of the functionality that you can use, and the level of support you can
receive.
Note
If you use SaaS (Software as a Service), this is usually displayed in a separate global account.
Subaccounts
Subaccounts let you structure a global account according to your organization’s and project’s requirements
with regard to members, authorizations, and quotas. Subaccounts in a global account are independent from
each other. This is important to consider with respect to security, member management, data management,
data migration, integration, and so on, when you plan your landscape and overall architecture.
Each subaccount is associated with a region, which is the physical location where applications, data, or
services are hosted. It is also associated with one environment. The specific region and environment are
relevant when you deploy applications and access the SAP Cloud Platform cockpit. The region assigned to your
subaccount doesn't have to be directly related to your location. You could be located in the United States, for
example, but operate your subaccount in Europe.
Note
SAP Cloud Platform accounts are completely independent of user accounts. The global account and its
subacounts in SAP Cloud Platform are the way in which all of your organization's activities in SAP Cloud
Platform are structured in the cockpit.
When you configure your subaccounts, you'll see that the Cloud Foundry environment includes an additional
hierarchical level. In the Neo environment, you perform member, role, and quota management at the
subaccount level; however, in the Cloud Foundry environment, you create spaces within a subaccount. A
subaccount can contain multiple spaces, and member, role, and quota management can be performed at both
the subaccount and the space level.
User Accounts
A user account corresponds to a particular user in the SAP ID service and consists, for example, of a user ID
and a password. User accounts enable users to log on to SAP Cloud Platform and access subaccounts and use
services according to the permissions given to them. A user account can be assigned to one or more global
accounts, subaccounts, and Cloud Foundry spaces.
There are two types of users on SAP Cloud Platform: platform users and business users. Platform users are
usually developers, administrators, or operators who deploy, administer, and troubleshoot applications and
services. They work in the SAP Cloud Platform cockpit or with the command line tools. Business users are
those who use the applications that are deployed to SAP Cloud Platform. For example, a developer who's using
the SAP Web IDE to develop apps, is a business user of SAP Web IDE.
For platform users, the default identity provider is SAP ID Service, but if you want to have subaccount members
from your own user base, you can use your own identity authentication tenant with SAP Cloud Identity
For more conceptual information, see Account Model. To learn how to set up your account model, see Setting
Up Your Account Model [page 24].
Related Information
A member is a user who is assigned to an SAP Cloud Platform global account or subaccount. An account
member automatically has the permissions required to use the SAP Cloud Platform functionality within the
scope of the respective accounts and as permitted by their account member roles.
A member of a global account is always an admin of that global account. Adminstrators can add users to global
accounts and subaccounts and assign roles to them as needed. SAP Cloud Platform offers predefined roles, for
example the administrator role for managing subaccount members. Member management is slightly different
in Cloud Foundry and Neo environments. For more information, see User and Member Management.
Related Information
Entitlements represent a specific set of resources that can be used within a global account.
A quota represents the numeric quantity that defines the maximum allowed consumption of that resource.
Entitlements and quotas are managed at the global account level, distributed to subaccounts, and consumed
by the subaccounts. When quota is freed at the subaccount level, it becomes available again at the global
account level.
Related Information
SAP Cloud Platform provides a set of capabilities that group together different technical components, like
services, tools, and runtimes. For example, the Analytics capability includes three services that allow you to
embed advanced analytics into your solutions to gain real-time insights. Or the DevOps capability, which
includes about a dozen services that help increase developer productivity by simplifying development and
operations of your solution and the interplay of involved teams. For a complete overview of capabilities, see
SAP Cloud Platform Capabilities .
Services enable, facilitate, or accelerate the development of business applications and other platform services
on SAP Cloud Platform. For a detailed list of services and information about their regional availability, see
Availability of SAP Cloud Platform Services.
Related Information
A shared responsibility model applies to SAP Cloud Platform: SAP manages the platform, whereas you develop
and manage applications.
SAP's Responsibilities
SAP is responsible for operating the overall infrastructure of SAP Cloud Platform, including monitoring,
patching, applying software updates, and maintaining the infrastructure and underlying operating systems.
SAP is also responsible for technical operations such as monitoring SAP Cloud Platform services, providing
health check services, managing capacity, performing troubleshooting and housekeeping, implementing
regular updates, and managing incidents.
SAP creates your global account and provides you with the resources and services you've purchased.
Your Responsibilities
As an SAP Cloud Platform customer, you must manage your global account and any subaccounts; that is, you
are responsible for coming up with an account concept, creating and configuring your subaccounts based on
the requirements of your development projects, and for distributing resources and services accordingly.
In addition, it's up to you to develop and operate applications. You are responsible for creating and deploying
applications, managing application-specifc role assignments, integrating with existing systems and
applications, monitoring and implementing health checks, and performing housekeeping, troubleshooting, and
regular updates for your applications that are running on SAP Cloud Platform.
If you're using the SAP HANA service, you're required to trigger updates of SAP HANA revisions when
applicable, using a self-service from SAP Cloud Platform.
For a more granular overview of the responsibilities for operating SAP Cloud Platform, see Operating Model in
the Cloud Foundry Environment.
Related Information
If you're new to SAP Cloud Platform, this checklist helps you ensure the implementation readiness of your
development projects.
Fulfill prerequisites 1. Get familiar with the use cases SAP Cloud Platform SAP Cloud Platform - Learning Journey
covers with its service portfolio, understand basic plat
Basic Platform Concepts [page 7]
form concepts and your responsibilities throughout
the implementation project. Developing with the SAP Cloud Applica
tion Programming Model
2. Identify one or more initial development projects or SAP Cloud Platform Scenarios
a pilot project.
5. Receive onboarding e-mail with a link to the cockpit. If you don't receive this email, for some
reason, or have inadvertently deleted it,
simply access your SAP Cloud Platform
cockpit using the region-specific link
Regions. SAP has activated your ac
count prior to sending you this e-mail.
6. Obtain a customer number (required for support Check with your system administrator if
tickets). you do not know your customer num
ber.
7. If you use SAP ID Service, create SAP user IDs (S- Contact a user administrator in your
users) for all technical users who need access to your company. If you don't want to use SAP
SAP Cloud Platform accounts. ID Service, configure your subaccounts
to use a different identity provider.
Note
SAP cannot assign additional S- or
P-user IDs on your company's be
half.
8. Build a Cloud Administration and a Cloud Develop Building Teams [page 19]
ment Team (and optionally, a Cloud Center of Excel
lence).
Get started 9. Set up your account model. Setting Up Your Account Model [page
24]
10. Set up your security model. Setting Up Your Security and Compli
ance Model [page 36]
11. Create an enrollment process for development Creating an Onboarding Process for De
projects. velopment Projects [page 21]
Implement 12. Develop, integrate, deploy, and transport your ap Develop and Build [page 47]
13. Test and evaluate your application. Integrate and Test [page 66]
14. Go live with your application. Go Live and Monitor [page 69]
15. Make improvements to your application, or retire it Improve and Retire [page 74]
if it's no longer needed.
Before you begin developing your applications, make sure your organizational and landscape setup is
appropriate for managing their lifecycles, and consider failover to prevent breakdowns.
One of the first and most important steps of your journey to the cloud is to establish an appropriate
organizational setup and corresponding governance model. A clear and well-thought-out organizational setup
makes it easier for your employees to adopt agile processes.
We also recommend that, before you begin your development project, you create an onboarding process and a
knowledge transfer process.
For example:
Related Information
We recommend that you set up two teams: A Cloud Development Team, which builds applications, and a
Cloud Administration Team, which is responsible for any account operations and the build infrastructure. In
The Cloud Administration Team defines, sets up, and maintains your cloud landscape.
The responsibility of this team is to operate and ensure a stable and secure cloud landscape, and to enable
other developers to build cloud applications. The members of this team are highly qualified experts who have
development experience and experience with setting up and running a build infrastructure for continuous
deployments and integration scenarios.
This team can support your development teams by providing knowledge and defining guidelines that match
your company’s quality and security requirements. The Cloud Administration Team should generally not be
responsible for the lifecycle management of specific applications; the Cloud Development Team should take
responsibility for this task.
The Cloud Administration Team can also operate as a Center of Excellence (CoE), driving cloud adoption,
migration, and operation throughout your organization by providing thought leadership and guidance for
resolving roadblocks. The CoE is also responsible for identifying, evaluating, and implementing use cases for
the SAP Cloud Platform.
We recommend that the Cloud Administration Team / Center of Excellence (CoE) create the following
documents:
The Cloud Development Team is responsible for developing and operating the applications that run on SAP
Cloud Platform.
Teams that develop on-premise applications often follow a Build-Run setup. The Build team develops the
application, then passes it to the Run team, which operates and maintains it. However, this setup is not optimal
in a cloud application development environment.
We recommend that Cloud Development Teams follow a DevOps approach, which means that the team both
develops and operates applications. The team should maintain applications regularly after Go Live, and fix any
issues. For example, if the team develops an SAPUI5 front end, they should verify at least every six months that
the UI controls used are still supported by the latest SAPUI5 version. This doesn't require much effort, but does
need to be checked to ensure the application continues running properly.
If you're planning on starting multiple development projects on SAP Cloud Platform, we recommend that you
set up an onboarding process to ensure that new projects are tracked and documented properly, compliant
with the security standards and guidelines you define.
Every new application that is managed and tracked by a Cloud Administration Team should have an onboarding
process. Owners of new applications should fill out an onboarding document and a security template.
Maintaining administrative information about all applications in one central place helps the Cloud
Administration Team to keep an overview about all projects, applications, and responsibilities. It also allows the
team to inform all project managers and developers about changes and updates to the cloud landscape.
Onboarding Document
An onboarding document ensures that a new application is properly onboarded and documented. Onboarding
can happen via e-mail, a ticketing system, or any other tool used in your company that you find suitable. The
following provides an example of the information you might want to include:
After the document is verified, application owners and developers should get access to the development
subaccount to start developing. Make sure that all developers understand that on the development
subaccount, all applications can be stopped, and code can be deleted by users at any time without notice. We
recommend that the Cloud Development Team keeps the relevant code and files in a repository outside of SAP
Cloud Platform to avoid that applications and artifacts like git repositories (containing code) are deleted in the
subaccount by accident.
Security Document
We recommend you provide a template for the security document that is filled out for every new application,
which is then approved by security experts in your company before you start developing. The template should
ask for detailed information, such as:
Services Catalog
If you're going to onboard multiple development projects, we recommend that you set up a services catalog
that summarizes all services offered by the Cloud Administration Team, especially when access to the testing
and production subaccounts are restricted for developers. This facilitates and speeds up the collaboration
between the Cloud Administration and the Cloud Development Teams. Examples of such services include the
following:
All services should be offered as templates in a service catalog that developers can fill out, for example, in a
ticketing system.
We recommend that the Cloud Administration Team makes the consumption of services as easy as possible, or
even automates it using SAP Cloud Platform APIs. The team may want to, for example, write scripts for
database schema creation and access management. The Lifecycle Management API lets the Cloud
Development Team restart an application in the production subaccount without having access to it and without
affecting any other application. For more information, see the Lifecycle Management API .
Related Information
API Documentation
Carefully plan for sufficient enablement of all stakeholders, and ensure that the knowledge gained throughout
your application lifecycle is shared with others.
Before you start your development project, we recommend that you do the following:
SAP Cloud Platform offers services, tools, and capabilities to develop, extend, or integrate business
applications in the cloud. You can implement additional workflows or modules on top of existing solutions,
which lets you benefit from out-of-the-box security, inherited data access governance, user interface
embedding, and so on.
The following resources are available for your extension scenarios. The links to various documents guide you
through the configuration tasks that you need to perform to enable the SAP Cloud Platform for developing
extension applications for your existing SAP solutions, and the learning journeys are collections of links to
additional resources.
Related Information
Extensions
The hierarchical structure between global accounts and subaccounts lets you define an account model that
accurately fits your business and development needs.
Once you've signed your commercial contract with SAP, you'll receive access information and credentials for
your global account. Use this account to manage the resources and entitlements for your development
projects; it's the realization of your commercial contract with SAP. You'll also receive a bill for all resources used
in your global account. If you require multiple global accounts for compliance or other reasons, you'll need to
sign a dedicated contract for each one.
To develop and deploy applications, to use services, and to subscribe to business applications provided by SAP,
a global account member must create subaccounts and distribute the resources that are assigned to your
global account across these subaccounts. Subaccounts let you structure a global account according to the
requirements of your organization and projects with regards to members, authorizations, and quotas.
Tip
Check out the video tutorial from SAP HANA Academy about setting up the account model: SAP Cloud
Platform, Administrators Overview: Account Model .
As you've seen in the Basic Platform Concepts [page 7] section, within your (region-independent) global
account, you can create any number of subaccounts in any environment and region, depending on your
contract. For example, if you're located in the US, you can create subaccounts in different regions, such as
Europe (Rot) or Japan (Tokyo), to support the customers who are using your applications. Subaccounts are
independent from each other, which means that each subaccount allows for dedicated quota and member
management. You can configure a dedicated identity provider for business users in each subaccount. Each
subaccount is associated with exactly one environment, Cloud Foundry or Neo, for example.
Related Information
Account Model
Managing Global Accounts and Subaccounts Using the Cockpit
Create a Subaccount [Feature Set A]
The number of subaccounts you create, and for which purpose, depends on your organizational setup and your
use case.
Recommendation
In general, we recommend that you create at least three subaccounts to set up a staged development
environment, including one subaccount each for development, testing, and production.
Although we recommend that you use subaccounts to create a staged development environment, you can also
create subaccounts to do the following:
● Separate development scenarios and projects to allow for easier configuration, for example, with regard to
access restrictions.
● Separate the work of different development teams.
● Set up different trust configurations between your subaccounts and your identity providers; for example,
using the SAP Cloud Platform Identity Authentication service as a user store in one subaccount and an
internal identity provider in another one.
● Restrict access to applications and their administration, for example, by setting up "high-security"
subaccounts with restricted access, or creating separate subaccounts to connect with your different back-
end systems.
● Share an SAP HANA database in one subaccount with similar projects managed in other subaccounts. You
can currently do this only in the Neo environment.
Recommendation
● If you're a highly DevOps-driven company and if your IT department is decentralized, create a separate
subaccount per development project and application so that your developers and teams can work
more independently and effectively.
● If your IT department is highly centralized, start with only one subaccount for each of the three stages
and ensure your IT team can provide sufficient support to all the developers who work in the three
subaccounts. You can consider creating separate subaccounts for development projects with special
needs or larger projects.
● You can monitor the consumption of resources in your global account only per subaccount, not per
application. To monitor the resources consumed by a specific project, department, or application, create a
dedicated subaccount for it.
For information about creating subaccounts in the SAP Cloud Platform cockpit, see Create a Subaccount
[Feature Set A].
When you enable the Cloud Foundry environment in one of your subaccounts, the system automatically
creates a Cloud Foundry org for you. The subaccount and the org have a 1:1 relationship and the same
navigation level in the cockpit (even though they may have different names). You can create spaces within that
Cloud Foundry org. Spaces let you further break down your account model and use services and functions in
the Cloud Foundry environment. For more information about Cloud Foundry orgs and spaces, see the Cloud
Foundry documentation at https://docs.cloudfoundry.org/concepts/roles.html
You can use both subaccounts and spaces to develop applications and to use services. You must therefore
decide, for example, whether to create different subaccounts or spaces within one subaccount to set up a
staged development environment.
In general, we recommend that you create different subaccounts for a staged development environment, as
shown below. This allows for dedicated user management between the different stages, as well as for dedicated
data management in elastic services like Internet of Things Application Enablement. You can then create
dedicated spaces for applications or projects within these subaccounts if you don't need a dedicated user
management for these applications and projects.
To decide whether to create separate subaccounts or separate spaces within the same subaccount, consider
the different configuration possibilities, available for subaccounts and spaces:
Cross-consume SAP HANA tenant da No Possible to share SAP HANA tenant da
tabases tabases with other spaces
Consider the following account scenarios for creating your own account model:
● Account Model 1: Create a Staged Development Environment Combining the Cloud Foundry and the Neo
Environment [page 27]
● Account Model 2: Use a Subaccount as a Base Template for Development Projects in the Neo Environment
[page 29]
● Account Model 3: Use Separate Subaccounts for Data and API Management [page 30]
● Account Model 4: Create a Staged Development Environment Using Continuous Integration / Continuous
Delivery [page 31]
In this scenario, the IT department of an organization creates a staged development environment by creating
three subaccounts in both the Cloud Foundry and the Neo environment.
Dedicated spaces for specific applications or projects are created in each of the subaccounts in the Cloud
Foundry environment.
Note
This setup works only if you use the same identity provider for the subaccounts in the Cloud Foundry and in
the Neo environments. For more information, see Principal Propagation from Cloud Foundry to Neo
Tip
Check out the Business Application Studio, which is runs in the Cloud Foundry environment and this makes
a Neo subaccount unnecessary: .
Related Information
Principal Propagation
Configure Trust
Configure Destinations from the Cockpit
When to Use Which Account Model [page 32]
In this scenario, the IT department creates one subaccount that serves as a base template. If new subaccounts
for a development project are required, the IT department clones the base template, thereby copying its
configuration settings to the new subaccounts.
The owners of the development projects are responsible for application lifecycle management. As shown
below, all new subaccounts are cloned from the base template, regardless of whether a project requires three
subaccounts for each development stage, or whether only one DEV subaccount is needed (for example, for a
proof of concept).
This account setup is especially well suited for organizations that rely heavily on a DevOps methodology with
independent development projects.
Note
This account setup might require a high level of maintenance and governance efforts. For instance, it is
important that the responsible teams of each project landscape stay tightly aligned. Since each team has
full access to their subaccounts, it is important to define and follow guidelines for all projects, such as
security requirements, access guidelines, governance processes, and so on.
In this scenario, the IT department of an organization manages separate subaccounts for data isolation and for
reuse of API management and connectivity. The department also creates dedicated (staged) subaccounts for
development projects.
Access to back-end systems is managed centrally by the IT department via API management in three
dedicated subaccounts. Every new development project uses a separate subaccount that consumes the APIs
that are managed in these subaccounts via destinations. In addition, SAP HANA databases are deployed in two
dedicated subaccounts – Development/Testing and Production – and shared across different subaccounts.
The advantages of this model are that it allows you to scale quickly while ensuring that connections to your
back-end systems are always established via APIs; it also keeps costs low (due to the sharing of the SAP HANA
databases across subaccounts).
In the Cloud Foundry environment, you can either create three dedicated spaces (one each for Development,
Testing, and Production) within one subaccount that includes the API configurations, or you can create one
subaccount each for Development, Testing, and Production. For more information on special considerations in
the Cloud Foundry environment, see Using Subaccounts to Create a Staged Development Environment [page
24].
In this account model, a dedicated Development subaccount is created for each development project.
Applications that are developed in these subaccounts are consolidated, tested, and published in one single
Testing and Production subaccount.
This account model is especially well suited for companies with a focus on continuous integration and
continuous delivery, as it lets every development project decide separately about their environment. A central
Testing and Production subaccount ensures a high degree of governance, data security, and compliance.
In the Cloud Foundry environment, consider creating separate Development spaces in one subaccount and a
dedicated Testing and Production space in a Testing and Production subaccount, respectively.
In this scenario, the IT department creates separate Dev, Test, and Prod subaccounts for each functional area:
In our example, HR, IT, and Sales each get their own subaccounts for development, test, and production.
With a separate account landscape per functional area, you can use multiple instances of the same SaaS
subscription (e.g. in case you need to keep data or user access separated). For example, HR subaccounts
would use an internal identity provider, whereas for public or external scenarios, an external identity provider
could be used.
A SaaS application can only be used once within a subaccount, so if each functional area has their own
subaccounts (for dev, test, and prod), you won't encounter limitations as to using the same SaaS offering in
different projects.
This account model can also be combined with the structuring approach of account model 2. In addition to the
structuring according to functional areas, you can create separate dev, test, and prod subaccounts for large
projects that use different components or services and have a completely separated support process and
operations model than your other projects.
Related Information
Determine which account model is the most appropriate for your needs.
The tables below provide requirements with regards to project and team setup as well as the services and
resources involved. You can compare them against your own requirements and see which account model most
closely matches. Please remember that the four account models are a result of a best-practice approach. They
Project Setup
Your Require
ments ... Account Model 1 Account Model 2 Account Model 3 Account Model 4 Account Model 5
vOps methodology
and have many au
tonomous
projects.
centralized project
landscape with
many projects us
ing the same tech
nologies (for ex
ample, Fiori devel
opment for a Fiori
launchpad).
number of develop
ers, with several dif
ferent project ad
mins responsible
for them.
ferent development
teams, but only one
single production
environment for
which the teams de
velop applications.
development
teams, each of
which works inde
pendently, meaning
they should not be
able to, for example,
accidentally break
the other team's
developments.
Your development X X X X
teams on SAP
Cloud Platform are
coming from differ-
ent organizational
units in different
geographic loca
tions and you want
to track them sepa
rately.
that no developer or
project admin can
assign privileges to
themselves for
services or applica
tions.
security require
ments. For example,
you don't want all
developers to have
access to all Git re
positories.
access to on-prem
ise systems via
Cloud Connector
only for selected
projects, while re
stricting it for the
applications of
other projects.
Your Require
ments ... Account Model 1 Account Model 2 Account Model 3 Account Model 4 Account Model 5
quotas to different
projects and
tightly control that
the projects don't
exceed their re
sources.
monitor which
services are con
sumed by which
projects. For ex
ample, you might
want to do internal
billing based on
the resource con
sumption of the in
dividual projects.
The SAP Cloud Platform landscape runs in an isolated network that is protected from the outside by firewalls, a
DMZ, and communication proxies for all inbound and outbound communication. All user access is protected
The Cloud Connector is a lightweight on-premise agent that establishes a secure tunnel for connecting your
cloud applications to on-premise systems. The Cloud Connector acts as a reverse invoke between the on-
premise network and SAP Cloud Platform. That means you don't need to open in-bound ports in the firewall for
external access from the cloud. The Cloud Connector provides a fine-granular access control mechanism,
supports multiple protocols, such as RFC and HTTP, and can forward the cloud user identity using principal
propagation. It enables users to log on to on-premise systems without logging in again by securely forwarding
their logged-on identity from the cloud. You can configure the Cloud Connector directly from the subaccount in
the SAP Cloud Platform cockpit.
● Principal Propagation
● Connectivity
● Cloud Connector
Access to any endpoint of your applications should be secured by enforcing authentication and authorization.
This ensures that only the intended target group, such as your company's employees, can access your
application. We recommend that you use the SAP Cloud Platform's default SAML single sign-on authentication
mechanism for user acccess and principal propagation for back-end access. Once a user is authenticated,
single sign-on securely propagates the credentials to the back-end system without requiring the user to
reauthenticate.
SAP Cloud Platform subaccounts get their users from identity providers. Administrators ensure that users can
access only their dedicated subaccount by establishing a dedicated trust relationship only between the identity
providers and the respective subaccounts. The preconfigured default identity provider for SAP Cloud Platform
is SAP ID Service. SAP ID Service is managed by SAP. You can also connect your own identity provider, which
means you have full control over your user base. For developing and administrating your own applications on
SAP Cloud Platform, we recommend that you use SAP Cloud Platform Identity Authentication in your own
tenant. SAP Cloud Platform Identity Authentication is SAP's cloud solution for identity lifecycle management
for SAP Cloud Platform applications, and optionally for on-premise applications.
See the following for more information about security best practices:
When building applications, your developers should use the security features of SAP Cloud Platform, such as
protection from web attacks. We recommend that your developers configure and deploy application-based
security artifacts containing authorizations, and administrators assign these authorizations using the cockpit.
SAP Cloud Platform offers platform roles that help you ensure a separation of duties, such as between app
development and administration.
It's likely that data protection and privacy influence your architecture and the functions of your application, and
you should consider any implications as early as possible in your development process. Security monitoring is
done via audit logging. SAP Cloud Platform writes logs for security-relevant events and the written log files are
digitally signed to ensure their integrity.
See the following for more information about security best practices:
SAP Cloud Platform provides various options for implementing user authentication.
Use the decision tree below to determine how to set up authentication. Once you've implemented
authentication, you can start implementing user authorization.
Remember
There are two types of users on SAP Cloud Platform: platform and business. Platform users are usually
developers, administrators, or operators who deploy, administer, and troubleshoot applications and
services. Business users are those who use the applications that are deployed to SAP Cloud Platform.
Business users can be authenticated by SAP ID Service (default), by the SAP Cloud Platform Identity
Authentication service, or by your own identity provider. Platform users can be authenticated by SAP ID
Service (default), or by the SAP Cloud Platform Identity Authentication service. The SAP Cloud Platform
Identity Authentication service (IAS) can authenticate users stored in the IAS user store, your own corporate
user store, or by forwarding to your own corporate identity provider. Because command-line tools don't
support the SAML browser flow, you can't use them to forward authentication of platform users from IAS to
your own corporate identity provider. Only logging in to SAP Cloud Platform cockpit is supported.
Recommendation
We recommend that you use SAP Cloud Platform Identity Authentication service for business users.
Related Information
You can implement the authentication methods that are available on SAP Cloud Platform on the frontend of
applications.
FORM or SAML2 Trusted SAML 2.0 identity provider with FORM authentication implemented
application-to-application SSO through the Security Assertion Markup
Language (SAML) 2.0 protocol. Authen
tication is delegated to the SAP ID serv
ice or a custom identity provider.
BASICCERT User name and password client certifi- Used for authentication either with a cli
cate ent certificate or with user name and
password.
Authentication methods depend on buildpacks, and the cloud Foundry environment offers more than just Java.
Please refer to the Cloud Foundry documentation for more information: Cloud Foundry Security .
Destinations are part of SAP Cloud Platform Connectivity and are used for communication between a cloud
application and a remote system.
Destinations are required to consume a target remote service from an application. They are resolved at runtime
based on their symbolic names, resulting in an object that contains customer-specific configuration details,
such as the URL of the remote system or service, the authentication type, and the respective credentials.
SAP Cloud Platform provides various options for implementing user authorization.
There are two types of users on SAP Cloud Platform: platform and business. Platform users are usually
developers, administrators, or operators who deploy, administer, and troubleshoot applications and
services. Business users are those who use the applications that are deployed to SAP Cloud Platform.
Setting Up Authorization
In general, you can use static or federated authorization configuration in development accounts. In production
accounts, you'd would usually use identity federation or provisioning.
Related Information
The decision tree below might help you identify an appropriate setup, however, these are recommendations
only. Your specific setup highly depends on your use case. In general, we recommend using principal
propagation with SAP systems and OAuth2SAMLBearer Assertion with third-party systems to make use of
mapping. Also, OAuth2SAMLBearer lets you send more infos as SAML attributes.
Related Information
Principal Propagation
Principal Propagation via the Cloud Connector
Configure Principal Propagation to an ABAP System for RFC
Application-to-Application SSO Authentication
All companies must respect data protection and privacy rights of individuals. Data protection and privacy most
likely influences your architecture and the functionalities of your application and should be considered as early
as possible in your development process.
It's important you understand that simply using SAP software, such as SAP Cloud Platform, does not make
your company compliant. However, SAP software can help you achieve compliance. You should consult legal
experts to determine the requirements for your company and specific use cases.
Note
SAP does not provide legal advice in any form. SAP software supports data protection compliance by
providing security features and data protection-relevant functions, such as blocking and deletion of
personal data. In many cases, compliance with applicable data protection and privacy laws is not covered
by a product feature. Furthermore, this information should not be taken as advice or a recommendation
Related Information
If you've set up a staged development environment using different subaccounts or spaces, such as for
development, testing, and production, we recommend that you grant the Cloud Development Team access to
development subaccounts and spaces, but that you grant only the Cloud Administration Team access to the
testing and production subaccounts or spaces.
All developers and stakeholders for a particular development project or application should get access to the
Development subaccount or space, if the project or application has been properly enrolled. See Creating an
Onboarding Process for Development Projects [page 21]. We recommend that you assign all developers the
Developer and Application User Admin roles, to enable them to develop, assign roles, and test the
application's functionalities. You can also configure custom platform roles. See Manage Custom Platform
Roles.
As every small change that's made in a single application (for example, changing a destination) might affect all
other applications, only the Cloud Administration Team should have access to the test and prod subaccounts
or spaces, and should manage them centrally. If required, developers may be assigned to the Support User
role to get read access. For all changes required in subaccounts or spaces, the Cloud Development Team
should reach out to the Cloud Administration Team.
Note
To avoid overwhelming the Cloud Administration Team with inquiries, consider automating of tasks and
providing a build infrastructure for continuous deployment.
Use a multi-data center setup and implement automatic failover to ensure the high availability of your
applications in case of a data center outage.
Together with Implementing Failover [page 58], this chapter helps you implement a basic automated failover
for SAPUI5 and HTML5 applications in a multi-data center setup. The failover approach ensures that your
business-critical applications continue working in case of an unexpected downtime in an SAP Cloud Platform
data center or SAP Cloud Platform Portal.
At the moment, these chapters are only valid for SAPUI5 and HTML5 applications without data persistence
or any kind of in-memory caching, whose data is stored in on-premise back-end systems.
What is Failover
Generally, the term denotes the automated process of switching from one server, network, or system to
another redundant one in case of an either unexpected or planned downtime. If the primary server, network, or
system is unavailable, the traffic is redirected to the secondary one, which takes over the tasks. Therefore, both
functionality and availability of your application is maintained.
The following figure illustrates this concept for a mutli-data center setup, as described in this guide:
The SAP Cloud Platform Failover Guide focuses on four principles to consider when planning a failover:
For more information, see Deploy Your Application in Two Data Centers [page 58].
● Orchestrate your applications manually. See Synchronize Your Applications Manually [page 60].
● Orchestrate your applications with the help of a continuous integration and delivery pipeline. See Use a
Continuous Integration and Delivery Pipeline [page 60].
For more information, see Keep the Two Applications in Sync [page 59].
For more information, see Define How a Failover Is Detected [page 63].
SAP Cloud Platform offers various tools and programming languages for application development. You might
also want to consider to integrate your application with other solutions.
We recommend that you use the SAP Cloud Application Programming Model for your development project. For
more information, see Tools, Programming Models, and Programming Languages [page 47].
Development Guide
To ensure consistency and foster collaboration between developers, we recommend that you define guidelines
that include standards for programming principles, code styles, and naming conventions.
● SAPUI5 Guidelines
● SAP Fiori Design Guidelines
Related Information
SAP Cloud Platform provides various programming languages and tools for your development project.
For an overview about how to develop applications on SAP Cloud Platform, seeDevelopment.
The approach we recommend for developing full-stack applications is the SAP Cloud Application Programming
Model. The Cloud Application Programming Model offers a consistent end-to-end programming model that
includes languages, libraries, and APIs that are tailored for full-stack development on SAP Cloud Platform. It
simplifies the development process by enabling you to create concise and comprehensive data and service
models at a conceptual level, which are then used as input for the data, service, and UI layers. The SAP Cloud
Application Programming Model is compatible with any development environment, but we recommend SAP
Business Application Studio.
For more information, see Developing with the SAP Cloud Application Programming Model and SAP Business
Application Studio.
Programming Languages
SAP Cloud Platform supports many different programming languages; the availability of each depends on the
development environment you're using.
If you want to run in a DevOps mode, which means a collaborative culture between development and operation
of your cloud applications, we recommend that you also implement a highly automated agile development
process, which ensures speed and increases the quality of your deliveries. Continuous integration (CI) is a key
agile software engineering practice where development changes are integrated frequently. Each change is
verified automatically (by automated builds and tests) and results are made transparent to all developers. As
issues are identified faster, CI is an enabler for agile software development.
Continuous delivery (CD) aims at releasing changes quickly and sustainably. You set up a delivery pipeline that
breaks up the build and deployment process into single stages in order to identify and filter out issues that
might affect the production usage of a change with regard to, for example, performance, stability, security, or
usability.
For detailed information, see What Are Continuous Integration and Continuous Delivery?
We provide the following offerings to ease applying CI/CD practices with SAP Cloud Platform:
● Project "Piper" provides pre-configured Jenkins pipelines, which you can use in your own Jenkins master
infrastructure and adapt according to your needs, if necessary.
● The Continuous Integration and Delivery Best Practices Guide provides simple procedures to implement
continuous delivery pipelines on any CI/CD stack and demonstrates how to apply the principles of CI/CD
to SAP-specific technologies.
SAP Cloud Platform includes many tools to help you develop and manage applications, and connect them to
your on-premise systems.
Tool Description
SAP Cloud Platform cockpit The central point for managing all activities that are associ
ated with your subaccount, and for accessing key informa
tion about your applications.
Cloud Foundry Command Line Interface Work with the Cloud Foundry environment to deploy and
manage your applications.
Console Client for the Neo Environment Develop, deploy, and configure an application outside the
Eclipse IDE as well as perform continuous integration and
automation tasks.
Maven Plugin Use Maven to develop Java applications for SAP Cloud
Platform. Call the console client and its commands from the
Maven environment.
SAP Cloud Platform SDK for iOS Based on the Apple Swift programming language for devel
oping apps in the Xcode IDE. Includes well-defined layers
(SDK frameworks, components, and platform services) that
simplify development of enterprise-ready mobile native iOS
apps. The SDK is tightly integrated with SAP Cloud Platform
Mobile Services.
SAP Cloud Platform SDK for Neo Environment Everything you need to work with SAP Cloud Platform, in
cluding a local server runtime and a set of command-line
tools.
SAP Cloud SDK Libraries and tools that make it easy to develop cloud appli
cations that extend SAP S/4HANA Cloud and other SAP
cloud solutions, improving the application development ex
perience by providing out-of-the-box capabilities, such as an
abstraction of the underlying SAP Cloud Platform environ
ment, access to SAP cloud services, fault-tolerance, cache
management, tutorials, and project templates.
One challenge of moving into the cloud is deploying applications that consist of multiple interconnected
components. We recommend that you develop multitarget applications that let you package those
components into one bundle, and deploy and manage them all at once.
Cloud applications often come with a lot of heterogeneity, which is one of the key strengths of cloud
development, allowing for agility, resilience, and the rapid development of new features. However, it also
increases the complexity of cloud applications, which:
A combined lifecycle lets you deploy all parts together, automatically, and in the right order, and manage the
configuration of the complete solution. You can achieve such a combined lifecycle by developing multitarget
applications. Each multitarget application has the following characteristics:
● One archive file that includes all modules and a description of the dependencies
● Can be delivered, transported, linked to SAP software components, and deployed
● The process can be automated in a continuous integration pipeline
The multitarget application archive contains all required application types and configurations, as well as a
deployment descriptor file. It is intended to be used as a generic artifact that can be deployed and managed on
several SAP Cloud Platform subaccounts. For example, you can use one multitarget application archive in your
development subaccount and reuse it in your production subaccounts.
As all interdependencies are part of the archive file, it's easy to pass multitarget applications from development
to operations. All required information for deployment is provided during the development process. Due to the
benefits provided by applying the multitarget application approach, it is also part of the SAP Cloud Application
Programming Model.
Recommendation
The approach isn't mandatory for applications that are running on SAP Cloud Platform – you can also
develop without applying it. Without the multitarget application approach, you'll need to manually deploy
your application artifacts, for example by triggering the deployment from SAP Web IDE or manually
uploading artifacts via SAP Cloud Platform cockpit.
For more conceptual information about multitarget applications and detailed step-by-step instructions, see
Multitarget Applications in the Cloud Foundry Environment.
● If you use SAP Web IDE Full-Stack, you can use multitarget application templates for Cloud Foundry
applications, where the descriptor file is maintained automatically, for example, whenever you add a new
module in the SAP Web IDE.
● If you have development modules from other sources, you can use the multitarget application archive
builder, a Java-based command-line tool that builds modules and packages them into a deployable
multitarget application archive, together with a deployment descriptor. It is available for download from
SAP Development Tools (see https://tools.hana.ondemand.com/#cloud).
● If you have solutions already deployed in the Neo environment, you can use the solution export wizard, as
offered in the Solutions view of the SAP Cloud Platform cockpit. The wizard lets you select existing
components (considering interdependencies automatically) and offers to download the multitarget
application archive (not supported for archives comprising Java modules) or descriptor files, or to
integrate the changes into transport management processes (see Deploy and Deliver [page 54]).
Applications, configuration content, such as destinations, roles, and security groups are supported. For
more information, see Exporting Solutions on SAP Help Portal.
The provider/subscriber approach is one of the important scenarios that that are supported with multitarget
application.
SAP Cloud Platform allows you to develop and run multitenant (tenant-aware) applications. These applications,
which must apply the mulittarget application approach, run on a shared compute unit that can be used by
multiple consumers (tenants). Each consumer accesses the application through a dedicated URL.
For example, SAP partners or central IT organizations can build and run multitenant apps in their provider
accounts, deploy them using the multitarget application concept as providers, then deliver them as services to
their customers or line of business subsidiaries in corresponding subscriber accounts via subscriptions.
One of the advantages of this approach is that the application lifecycle and resource management is centrally
managed. A single deployment can serve several subscribing subaccounts, which eases onboarding of new
customers and decreases the number of code versions to manage. This also eases the consumption, as the
actual customers of the applications do not have to deploy solutions and manage corresponding resources.
● Multitenancy Roles
● Developing Multitenant Applications in the Neo Environment
You should always conduct careful testing to ensure that your application is of high quality. Create a release
candidate to propagate throughout your landscape.
For example, consider testing the user interface, usability, and performance, as well as running general unit
tests. Developers should use unit tests to ensure that software modules behave as expected. Unit tests are the
smallest tests, and they detect issues fast. Taking good care of unit tests usually leads to better maintainable
and understandable code. If you use the Continuous Integration process, you should consider automated tests
as part of the pipeline.
SAPUI5
SAPUI5 supports QUnit testing. We recommend that you write unit tests as small as possible, ensuring that you
only test one single thing at a time. This will not only make debugging easier, but also maintaining the tests in
the long run. See Unit Testing with QUnit.
For an overview of available testing options for SAPUI5 developments, see Testing and Performance
Measurement.
For SAPUI5 and SAP Fiori testing, please see the demokit for SAP UI5: https://sapui5.hana.ondemand.com/.
We recommend that you write JUnit tests for the modules of your backend services. They should be very
granular in that they only test individual modules, such as a class. See Step 13 with SAP Cloud SDK: Automated
Testing .
As part of the Continuous Integration and Delivery Process, we recommend that you run performance tests in
SAP Cloud SDK Pipeline to determine the behavior of the software system and change in responsiveness under
simulated load conditions. SAP Cloud SDK Pipeline has integrated support for performance tests using JMeter
and Gatling. See Step 23 with SAP Cloud SDK: Performance Tests .
SAP Web IDE empowers developers to test and evaluate the functionality and performance of their apps:
● Use the application preview to test functionality, design and performance before deploying it. There are
different configuration options available, such as SAP UI5 runtime version, URL parameters. SeeRunning
Applications in Development Mode.
After you've developed your application, you need to deploy it and deliver it to your TEST and PROD
environments. By deploying it to two different data centers in parallel, you can implement failover.
You can leverage different deployment tools and methods, depending on the application type and your
requirements.
If your application consists of only one module, there are different native options for deploying it, depending on
the programming language you're using.
Java
You can use the SAP Cloud Platform cockpit, the console client (Neo), or the command-line tool (Cloud
Foundry) to deploy a Java application. You have several options to choose from with regards to runtimes, Java
Virtual Machine versions, and more.
For large-scale development setups, we recommend that you connect your own development infrastructure.
HTML5
You can deploy HTML5 applications from within the SAP Web IDE. In addition:
● In the Neo environment, you can export and import your application via the SAP Cloud Platform cockpit.
● In the Cloud Foundry environment, you can deploy your application using the Cloud Foundry command-line
interface.
In the Cloud Foundry environment, you can deploy Node.js applications from within SAP Web IDE, or use the
Cloud Foundry command-line interface.
SAP HANA Extended Application Services, Classic Model (SAP HANA XS)
In the Neo environment, you can create a delivery unit as a .tgz file that contains all the artifacts for
applications that are based on SAP HANA XS. You can import and export the application using SAP HANA
administration tools, and open the application using the SAP Cloud Platform cockpit.
Please be aware that SAP HANA Extended Application Services, Classic Model has been deprecated – for more
information, see 0002465027 .
In the Cloud Foundry environment, you can deploy applications based on SAP HANA XSA using the SAP HANA
Deployment Infrastructure (HDI) from within SAP Web IDE. You can also deploy your application using the
Cloud Foundry command-line interface.
In the Cloud Foundry environment, you can use your own buildpack to create applications. The deployment of
such an application depends on the buildpack-specific development and deployment infrastructure.
● Manually: You can archive all components of your application into one package that includes the
deployment descriptor. You can then manually trigger the deployment of the solution using the SAP Cloud
Platform cockpit or the Console Client. The actual deployment of the MTA files is then performed
automatically by the SAP Cloud Platform deployment infrastructure, considering all interdependencies
specified in the MTA deployment descriptor that is part of the MTA archive. By assigning roles and
encapsulating the Console Client in a script, you can achieve a somewhat controlled release mechanism.
● Managed: If you prefer a managed approach, you can deploy MTAs as part of a CI/CD approach or
implement transport or change management processes for your SAP Cloud Platform apps, using
enhanced Change and Transport (CTS+) for example. For more information, see Transporting Multitarget
Applications with CTS+.
Delivery Option
(Tool Support and Development con
Automation De tent (such as SAP Cloud Plat
creasing from Top Java, HTML5, SAP form Integration Other app-spe
to Bottom) HANA XSA) packages cific content SAP HANA XS Portal Site
● Set up a continuous integration and continuous delivery (CI/CD) infrastructure: Have a look at Getting
Started with Project "Piper" to learn how to use our Cx server and Jenkins for it. For an overview of all
solutions we provide for continuous integration and delivery, see SAP Solutions for Continuous Integration
and Delivery.
For information and best practices on how to apply CI/CD for development projects on SAP Cloud
Platform, such as using pipeline templates and containerized images, see the Continuous Integration and
Delivery by SAP.
● If you're building an extension to SAP S/4HANA, consider using the continuous delivery toolkit that's
provided with the SAP Cloud SDK. The toolkit helps you manage the infrastructure and provides a ready-
to-use continuous delivery pipeline out-of-the-box. It includes the following freely available components:
○ Maven project archetypes for rapidly creating a new SAP S/4HANA extension application along best
practices
○ A preconfigured Jenkins CI and CD server that is managed via easy-to-use lifecycle scripts and Docker
images
Note
You can transport portal settings and configurations only by manually redeploying your application in
each subaccount.
● In the Neo environment, consider to use the Solution Export Wizard that you can start in SAP Cloud
Platform cockpit to model solutions by selecting comprised components (with an automated resolution of
interdependencies) and to either export the outcome (as multitarget application file) or to directly handle
the modeled solution via the change management options outlined above. For more information, see
Solution Export Wizard - Ease Modeling and Export of Solutions as MTA .
Related Information
Deploy your application in two data centers in parallel so that in case of an issue, you can switch from one to
the other.
To implement failover in an active/passive setup, deploy your application in two data centers in parallel. Among
these two data centers, define the primary (active) one to which the traffic is generally directed and the
secondary (passive) data center that takes over in case of a downtime.
Depending on your type of global account on SAP Cloud Platform and the environment you're using, you can
choose from different regions to deploy your applications. To deploy an application in subaccounts of multiple
regions, execute the deployment separately for each subaccount. For more information about regions and a
complete list of data centers from which you can choose, see Regions.
To optimize the performance of your application, which is, for example, response time and latency, we
recommend that you deploy it in two data centers of the region your target audience and your back-end
system are located in. If you are located in Europe, choose, for example, the data centers in Frankfurt and
Amsterdam.
Note
If you want to deploy your application in two data centers that are not located in the same region, keep in
mind that there might be issues concerning legal data processing restrictions. For more information, see
Data Protection and Privacy.
Synchronize your applications in both data centers to maintain their functionality in case of a downtime.
Make sure that you transfer changes on one of your applications to the one in the other data center, as well, so
that its functionality is not interrupted in case of a failover.
Recommendation
Keeping your two applications in sync does not necessarily mean that both applications need to be
identical. If you want to offer only a reduced set of functions in your secondary application, we recommend
to visually mark it as your backup. In this way, your users are constantly reminded that they are using the
backup version and should switch back to the primary one once it is available again.
There are three different ways to synchronize your applications in the primary and the secondary data center:
● Orchestrate your applications manually. See Synchronize Your Applications Manually [page 60].
● Orchestrate your applications with the help of a continuous integration and delivery pipeline. See Use a
Continuous Integration and Delivery Pipeline [page 60].
● Orchestrate your applications through a combination of the Solution Export Wizard and the SAP Cloud
Platform Transport Management service. See Use the Solution Export Wizard and SAP Cloud Platform
Transport Management [page 61].
You can orchestrate your applications manually by duplicating your modifications in both data centers, for
example, by mirroring from Git repositories.
Manual Synchronization
With this approach, you can decide yourself which of your changes to transport from one data center to the
other. Therefore, synchronizing your applications manually allows you to maintain two non-identical
applications, for example, if you want to visually differentiate between the UIs in your primary and the backup
version.
Recommendation
With regard to the relatively high effort needed for this approach, we recommend it only if you do not plan
regular updates or changes to your application.
You can synchronize the deployment of your applications in two different data centers by using a continuous
integration and delivery (CI/CD) pipeline. Configure it for multi-deployment so that in the final stage of your
CI/CD pipeline, your changes are automatically deployed to two SAP Cloud Platform subaccounts in parallel. In
our case, these subaccounts are hosted in different data centers. For more information about subaccounts on
SAP Cloud Platform, see Managing Subaccounts.
Recommendation
Use a pre-configured pipeline of project "Piper" and adapt it for multi-deployment to your two SAP Cloud
Platform subaccounts in different data centers. For more information, see project "Piper" .
Related Information
You can orchestrate your applications through a combination of the solution export wizard and the SAP Cloud
Platform Transport Management service.
Prerequisites
● You have deployed the applications you want to synchronize in two different subaccounts in the Neo
environment. See Create Subaccounts Using the Cockpit.
● You have a subaccount in the Cloud Foundry environment. See Create Subaccounts Using the Cockpit.
● You are subscribed and have access to the SAP Cloud Platform Transport Management service. See SAP
Cloud Platform Transport Management and Initial Setup.
Context
In your subaccount in the Neo environment hosted in your primary data center, use the solution export wizard
to export the changes you have made to your application to the SAP Cloud Platform Transport Management
service. From the Transport Management service, which is hosted in your subaccount in the Cloud Foundry
environment, transport your changes to the backup application in your subaccount in the Neo environment in
the secondary data center.
Note
You can also use the solution export wizard independently from SAP Cloud Platform Transport
Management by manually uploading your exported changes to the target account.
Procedure
1. In the SAP Cloud Platform cockpit, navigate to your subaccount in the Neo environment, in which your
HTML5 application is deployed. See Navigate to Global Accounts and Subaccounts in the Cockpit.
2. From the navigation pane, choose Solutions.
3. To access the solution export wizard, choose Export. For more information, see Exporting Solutions.
4. In the Select Components section of the Solution Export Wizard dialog, select the components of your
HTML5 application you have changed.
Note
The solution export wizard can automatically resolve dependencies, for example, by selecting
corresponding roles.
5. In the Export options section, select Transport Management Service to hand over your MTA archive to SAP
Cloud Platform Transport Management. For more information about MTA archives, see Multi-Target
Applications.
Related Information
Blog - Solution Export Wizard – ease modeling and export of solutions as MTA
Blog - The new cloud-based Transport Management Service
Blog - SAP Cloud Platform Transport Management service generally available
Define in which cases the automatic failover from one data center to the other is triggered.
You can choose from different test categories to decide when the automatic switch from your primary to the
backup application is triggered. Either define these test categories manually in your code or use rule-based
performance solutions such as Akamai ION . At each user request, you could, for example, check for a
combination of a predefined maximum read timeout and set HTTP status codes. If one of these two checks
responds an unwanted behavior of your application, the failover is triggered.
Failover Detection
Example
As an example, you could define 25 seconds as maximum read timeout and set a number of server error
codes (5xx) to be checked. At each first HTTP request towards the URL of your application, both checks
are triggered. All following HTTP requests are ignored to avoid an unnecessary failover if, for example, only
an image resource is missing. If one of the two checks fails, the user is automatically redirected to an HTML
down page, which must not be cached. This down page provides the link to your failover application. Strictly
speaking, the failover itself is therefore manually performed by the user of your application.
In the setup of your failover scenario, define whether a failback is needed and how it is performed.
Depending on the setup of your failover scenario, a failback is either optional or mandatory:
● If you use an active/active setup, your applications in both data centers must be identical and provide the
exact same functionality. In this setup, both data centers are of equal value. Therefore, a failback to the
primary data center is not needed but performed automatically the next time a failover is triggered.
Recommendation
In a basic scenario, you can hand over the failback to the users of your application, who perform the
failback automatically when later trying to access the primary version of your application again. In this
scenario, visually differentiate between your primary and secondary application so that they are constantly
reminded to switch back to the primary one once they have completed their transaction. Unlike an
automatic failback as soon as the primary data center is available again, this approach ensures that your
users are not interrupted while completing a transaction. Instead, they can decide on their own when to
switch back to the primary application.
SAP Cloud Platform offers various options for integrating your cloud application with other cloud and on-
premise solutions.
Cloud Connector
If you want an application running on SAP Cloud Platform to access data from your on-premise back-end
system, we recommend that you use the Cloud Connector. It's an on-premise piece of software that you'll need
to install in your on-premise landscape, within the firewall. Once it's configured and paired with your SAP Cloud
Platform subaccount, a secure tunnel is established between SAP Cloud Platform (and all the services and
applications that run on it) and the Cloud Connector. Communication between SAP Cloud Platform and the
back-end system is routed via the Cloud Connector through a secure SSL tunnel.
We recommend that you use the Cloud Connector if your use case requires any of the following:
SAP Cloud Platform Integration (Cloud Integration) supports end-to-end process integration across cloud and
on-premise applications (cloud to cloud and cloud to on-premise integration). It provides the following
features:
● Core runtime for processing, transforming, and routing of messages to be exchanged between your
systems
● Out-of-the-box connectivity support (IDoc, SFTP, SOAP/HTTPS, SAP SuccessFactors, OData, HTTPS)
● Security features such as content encryption and certificate-based communication
If you're planning on integrating your SAP Cloud Platform application into a hybrid landscape, you can also
leverage the Cloud Integration Automation Service that is offered for selected integration scenarios. This
service provides a guided workflow that uses customer-specific system information, reusable configuration
settings between tasks, and automated execution capabilities, thereby reducing the manual work for your
scenario integration. For more information, see Cloud Integration Automation Service.
Related Information
Blog Post: SAP Cloud Platform Integration: When to use which tool
Blog Post: Using SAP Cloud Platform Cloud Connector with SAP Cloud Platform Integration
Blog Post: Cloud Integration Automation Service - What is it?
Blog Post: Cloud Integration Automation Service: Step-by-Step
In contrast to unit tests that are performed locally on your development subaccount without any external
dependencies in the develop and build phase, integration tests target the interplay of a complete system,
spanning several single components and units potentially spread throughout a hybrid landscape. Integration
tests verify that all building blocks work together, meet specified requirements, and fulfill the targeted business
case. They should therefore then be executed on your test infrastructure or in your test subaccount after the
integration into an existing landscape has taken place. This ensures that the interplay with backend
functionalities is verified. In a CI/CD setup, note that such integration tests are part of the pipeline.
One Page Acceptance Tests (OPA5) is an API for SAPUI5 controls. It hides asynchronicity and eases access to
SAPUI5 elements. This makes OPA especially helpful for testing user interactions, integration with SAPUI5,
navigation, and data binding. See Integration Testing with One Page Acceptance Tests (OPA5).
Integration tests work directly on the defined backend APIs, mainly testing the integration between backend
services and the integration between SAP Cloud Platform to SAP S/4HANA systems. For integration tests of
your backend services, we recommend that you use Arquillian to spawn a server that contains only the
resources for the specific backend services that you want to test. See Step 13 with SAP Cloud SDK: Automated
Testing .
Once you've deployed, transported, tested, and integrated your application, you can go live.
After you've released an application, you have to ensure that it's provided with the right performance and
availability by monitoring its various parts – such as platform services, application parts, and databases. SAP
Cloud Platform offers various native tools for monitoring and operating your application, optionally
complemented by third-party offerings, in case you need deep monitoring of cloud-native applications.
For hybrid scenarios across the SAP portfolio, or if you already have an operations process in place, you can
also integrate monitoring of SAP Cloud Platform applications into SAP Solution Manager and Focused Run of
SAP Solution Manager.
Once you've tested your application successfully and ensured that you are compliant with any applicable
security guidelines and compliance regulations, you can go live with your application.
If you've set up a staged development environment, we recommend that your Cloud Administration Team
defines specific timeframes during which the Cloud Development Team is allowed to go live with an application.
You can forbid go-live activities during times that a stable landscape is particularly crucial (for example, at the
end of each quarter), and allow deployments to your production subaccount only in case of emergencies.
Consider embedding applications with internal end users in the SAP Fiori launchpad using SAP Cloud Platform
Portal before you go live. This enables your internal target audience to access all applications in one central
place and thus improves the app's usability. For more information, see SAP Cloud Platform Portal.
Web Acceleration
If your application's end users are widely spread across different countries or even continents, you can improve
your application's load performance by using a Content Delivery Network (CDN). For example, you can use
common CDN providers such as Akami or Cloudflare.
If you include SAP’s SAPUI5 library directly from *.hana.ondemand.com, the SAPUI5 resources are
automatically delivered via a CDN. See Variant for Bootstrapping from Content Delivery Network.
● Secure transport: Make sure any access via HTTP will get redirected to a HTTPS connection before loading
any content.
Related Information
Updating Applications
There are various options you can use to monitor applications and services on SAP Cloud Platform, provided
natively by the platform itself. Which of them you might use depends on the SAP Cloud Platform environments
you work in.
In the Neo environment, you can use the SAP Cloud Platform cockpit to monitor applications:
SAP HANA XS applications ● Health statistics for SAP HANA da SAP HANA: Application Operations
tabase instances
● Application availability checks
● Email notifications
HTML5 applications Log viewer collecting error messages Log HTML5 Applications
You can also connect your Java applications to a Dynatrace SaaS monitoring environment. For more
information, see Agent Activation for Dynatrace.
In the Cloud Foundry environment, you can use the ELK stack to monitor applications. You can also run the cf
logs command to show the recent logs for an application. For more information, see the Cloud Foundry
documentation at https://docs.cloudfoundry.org/devguide/deploy-apps/streaming-logs.html .
Note
Container metrics in syslog drains are not currently logged by SAP Cloud Platform.
You can also configure health checks that continually monitor the status of a running application. For more
information, see https://docs.cloudfoundry.org/devguide/deploy-apps/healthchecks.html .
You can follow the availability of the platform at SAP Trust Center . You can check:
● the availability by service on the SAP Cloud Platform tile of the Cloud Status tab page;
● the availability by region on the Data Center tab page.
To get notifications for updates and downtimes, subscribe at the Cloud System Notification Subscriptions
application. Create a subscription by specifying Cloud Product, Cloud Service, and Notification Type. For more
information, see Cloud System Notification Subscriptions User Guide .
In addition, you can get a personalized, at-a-glance view of additional SAP Cloud Platform offerings with SAP
Cloud Availability Center , such as SAP Cloud Platform Integration.
There are additional monitoring tools and options available for certain SAP Cloud Platform services, such as
the SAP Cloud Platform Identity Authentication service. Please refer to the respective service documentation
for more details: Capabilities and Services.
In addition to the general notifications mentioned above, SAP Cloud Platform Alert Notification lets you know
instantly whenever there's an issue with your specific cloud application or its dependencies, no matter if your
apps are running in the Neo or Cloud Foundry environment. You can subscribe to events coming from used SAP
Cloud Platform services, from hyperscalers, from third-party tools such as Dynatrace, or you can create
custom alerts for your apps. Furthermore, the notifications arrive via any channel of alert management you
select, for example, email, some sort of corporate chat, a ticketing system, or even SAP Solution Manager or
Focused Run for SAP Solution Manager . For more information, see SAP Cloud Platform Alert Notification.
If you've integrated SAP Cloud Platform with your on-premise SAP landscape, you can use SAP Solution
Manager, Focused Run for SAP Solution Manager, and, for more and more options and scenarios also SAP
Cloud ALM to monitor and operate that hybrid landscape.
For more information about SAP Cloud ALM, see SAP Cloud ALM https://support.sap.com/en/alm/sap-
cloud-alm.html .
User Experience Monitoring Simulate the behavior of users who ac User Experience Monitoring
cess central servers at different loca
tions to run business processes. Lets
you monitor the availability of the sys
tems, and connection performance,
from the end-user perspective, in real
time.
Related Information
Blog: Brief Overview of Hybrid Supportability Options for SAP Cloud Platform
Once your application has gone live, we recommend that you continually ensure its quality. If you determine
that you no longer need it, you should retire it.
Once an application has gone live, the Cloud Development Team is responsible for housekeeping and ongoing
improvements.
● Regularly verify and test the application to avoid issues caused by library and platform updates, such as a
new SAPUI5 version
● Ensure that the application remains compliant with all applicable standards and guidelines
● Fix bugs in a timely manner, and ensure that the user experience remains of high quality and is improved
and adapted over time
● Listen to user feedback
● Set up alerting that informs you automatically about issues with your application, for example by using
SAP Cloud Platform Alert Notification
● Adapt/extend your application, as required:
○ For deploying new application versions in the Cloud Foundry environment, consider using a blue-green
deployment, in which you deploy a new application version in parallel to the previous version to test it
and to route to the new version only after successful testing and without downtime – for more
information, see Multi-Target Application Commands for the CloudFoundryEnvironment on SAP Help
Portal.
○ In the Cloud Foundry environment, consider using the Feature Flag service that lets you enable or
disable specific features in a production solution, for testing purposes, without having to redeploy or
restart the solution.
Recommendation
To stay up to date, we recommend that you regularly check the SAP Cloud Platform Release Notes and the
SAP Community .
If your application is no longer needed, the Cloud Administration and the Cloud Development Teams should
ensure that it is properly retired, and that all data retention requirements are met.
Hyperlinks
Some links are classified by an icon and/or a mouseover text. These links provide additional information.
About the icons:
● Links with the icon : You are entering a Web site that is not hosted by SAP. By using such links, you agree (unless expressly stated otherwise in your
agreements with SAP) to this:
● The content of the linked-to site is not SAP documentation. You may not infer any product claims against SAP based on this information.
● SAP does not agree or disagree with the content on the linked-to site, nor does SAP warrant the availability and correctness. SAP shall not be liable for any
damages caused by the use of such content unless damages have been caused by SAP's gross negligence or willful misconduct.
● Links with the icon : You are leaving the documentation for that particular SAP product or service and are entering a SAP-hosted Web site. By using such
links, you agree that (unless expressly stated otherwise in your agreements with SAP) you may not infer any product claims against SAP based on this
information.
Example Code
Any software coding and/or code snippets are examples. They are not for productive use. The example code is only intended to better explain and visualize the syntax
and phrasing rules. SAP does not warrant the correctness and completeness of the example code. SAP shall not be liable for errors or damages caused by the use of
example code unless damages have been caused by SAP's gross negligence or willful misconduct.
Gender-Related Language
We try not to use gender-specific word forms and formulations. As appropriate for context and readability, SAP may use masculine word forms to refer to all genders.
SAP and other SAP products and services mentioned herein as well as
their respective logos are trademarks or registered trademarks of SAP
SE (or an SAP affiliate company) in Germany and other countries. All
other product and service names mentioned are the trademarks of their
respective companies.