In previous chapters, you should have understood what SAP Business Technology Platform (SAP BTP) is and how SAP positions it in the Intelligent Enterprise ecosystem. You therefore shouldn’t be surprised to see that this first practical chapter is dedicated to explaining the foundational elements of SAP BTP.
We know that you are eager to have a peek at what SAP BTP is, and we are at the point where things will slowly get practical. We say slowly because we need to establish the terminology and define the essential elements of SAP BTP first.
Don’t forget that this book’s audience is architects; therefore, we will not go into the nitty-gritty of every element—we would like to stay at a level of covering things that architects need to know to be able to design solutions and architectures.
Here, we also consider technical architects whose role may extend to creating a governance model for SAP BTP. But if you are a platform administrator, for example, don’t expect to find all the details you need to operate SAP BTP in this book.
In this chapter, we’re going to cover the following main topics:
As with many other cloud vendors, SAP provides trial options that make it possible to get your hands dirty at no expense. Currently, you have two options, as outlined here:
In the SAP BTP context, environment is an overloaded term. So, when we say it, we may mean two similar but different things. Let’s define the first one: at its foundation, SAP BTP provides frameworks, technologies, execution models, and tools for customers to develop and deploy applications that we refer to altogether as a runtime environment or, shortly, an environment.
SAP BTP has had an extensive evolution since it was first released. In this journey, SAP introduced different environments to provide platform services as well as runtimes for applications. As a result, there are four runtime environments in SAP BTP, as outlined here:
After releasing SAP BTP initially with the Neo environment, SAP changed its strategy from mainly two perspectives, as detailed here:
By the way, is this the first time you’ve heard the word hyperscaler? With this term, we mean the cloud vendors that provide the infrastructure as a service (IaaS) on which SAP BTP runs—for example, Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Alibaba, and so on; so, IaaS providers.
Now, we come to the second thing we may refer to when we say an environment, but before that, let’s give a short definition of a term we will start using. A subaccount is an account-model element in which you use services and deploy your applications.
Historically, when there were only Neo and CF runtime environments, a subaccount was tightly coupled with one of them. Therefore, subaccounts were categorized with strict reference to the runtime environments—for example, a Neo subaccount or a CF subaccount.
With the strategy change, runtime environments became subordinate elements of the new types of subaccounts. Thus, a subaccount, whichever way it’s managed under the hood, does not have a strict dependency on a runtime environment anymore. A subaccount can now exist with no runtime environment, or it can have one or many of the strategic runtime environments. This changed the basis for categorization because the new subaccounts could not be referred to with a specific runtime environment. So, a new twofold categorization emerged: the Neo environment and the multi-environment. SAP also refers to the multi-environment as the multi-cloud foundation and sometimes the multi-cloud environment.
The following screenshot shows the different SAP BTP environments available:
Figure 3.1: SAP BTP environments
Now that we know about environments, let’s have a very brief introduction to services and then tackle the question of how to choose an environment.
It is better to define another concept at this point to gain a common understanding before we start using it very frequently going forward. So, what is a service in the SAP BTP context? When we use this term, we mostly use it at a generic level. A service is a managed capability provided through the platform to be used as a building block in our solutions—for example, it can facilitate building, deploying, and running applications, creating integration artifacts, storing data, managing workflows, and so on. We will only provide a definition here as we will discuss services extensively in a later section of this chapter.
At this point, you should have already understood that we can consider the Neo environment to be no longer strategic. This shift of focus is not a secret as SAP releases all strategic innovations in the multi-cloud environment. In addition, SAP actively encourages its customers to transition to the strategic multi-environment.
If you are one of the first customers onboarded on SAP BTP, you may already have applications deployed and services enabled in the Neo environment. Don’t worry; SAP continues supporting the Neo environment and will probably do so for a bit longer to protect the investments of its customers.
Important Note
If you have applications and services in the Neo environment, it’s time to consider in your strategy how you will be migrating to the strategic multi-environment. You can get help from SAP on this. For more information, visit https://help.sap.com/viewer/b017fc4f944e4eb5b31501b3d1b6a1f0/Cloud/en-US/aae4e0ae1cdf434b908c3c8cf3ea942a.html.
Suppose you have a presence in the Neo environment and started a migration to the multi-environment. In that case, you will eventually face the challenging question of which environment to use. At this stage, the choice is between the Neo environment and the multi-environment. However, especially if you will be deploying applications on SAP BTP, you will come to a point where you need to select in which specific runtime environment you want to build your applications. We will discuss this in a later chapter.
The suggestions here depend on where you are with your transition and many other factors you need to consider with your strategy; however, we have some points that may help.
We would recommend using the Neo environment only in the following cases:
It would be best to consider onboarding services or deploying applications in the multi-environment in all other cases. That said, migrating a single integration artifact or building a simple new application in the new environment without a plan for a complete migration may incur unnecessary costs. So, once you start the migration, it’s also best to complete it as soon as possible to eliminate the administration overhead and reduce the overall cost, and bear in mind that the cost element depends on the commercial model with which you purchased SAP BTP. For example, you may need to align your migration completion date with the subscription contract expiration date to avoid sacrificing the remaining committed investment and eliminate the risk of an unnecessary contract extension.
Now that we know our environment options, let’s discuss where we can run them.
Important Note
In this book, we will focus on the multi-environment as it’s the strategic direction. This is in line with our suggestion for migrating away from Neo, and this way, we can reduce the complexity of the topics we discuss.
Now that you know the different environment types in SAP BTP, we need to touch upon the concept of regions. If you are already familiar with cloud architectures, this wouldn’t be a new topic, and a region is the same concept as you would see in other cloud contexts.
As should be clear by now, SAP provisions SAP BTP on top of cloud infrastructure. Yet, as a consumer of SAP BTP, you don’t need to know the specifics about the infrastructure except when you are assessing the platform to make sure it fulfills specific requirements and when a service is provisioned directly with infrastructure-level configuration. At the lowest level, the platform is still running on machines in a data center, and for SAP BTP, this can be an SAP data center or one of the hyperscalers. So, the region corresponds to the geographical location of the data center where the infrastructure is running.
SAP BTP is provisioned with a multi-cloud strategy where customers have the flexibility of using it on a hyperscaler of their choice. In addition, customers can also choose to have SAP BTP on multiple hyperscalers—for example, for business continuity (BC) use cases or in line with their own multi-cloud strategy.
So, when specifying SAP BTP regions, we use two elements: a hyperscaler and the data center locality—for example, AWS Frankfurt, Microsoft Azure Netherlands, GCP US Central, and so on. Here, in the context of SAP BTP, your contract is with SAP, and you do not directly deal with hyperscalers.
You may wonder how to find in which regions SAP BTP is available; we will keep this a secret until later in this chapter. Okay—if you are so eager to know, make a detour to the SAP Discovery Center section and then come back to learn more about regions.
Now that we know there are multiple regions to choose from, it’s time to discuss the factors you need to consider when selecting a region. You need to think about the following:
Ideally, you may think you should choose a single region where you can have all your applications and services. However, after considering the aforementioned factors, you may end up with multiple regions, willingly or unwillingly. On the other hand, there are cases where having SAP BTP in multiple regions may make sense, such as in the following scenarios:
We have now laid the first tile in our SAP BTP foundation, and next, we will discuss our options for purchasing SAP BTP.
SAP provides two main commercial models for enterprises to purchase SAP BTP, as outlined here:
After SAP introduced CPEA, many customers went for it due to its flexibility, but if you purchased SAP BTP a long time ago, you might be on a subscription contract. SAP continues providing both subscription- and consumption-based commercial models to give customers options for the sake of flexibility.
SAP handles each commercial model differently, and you cannot combine them under the same agreement. However, there are transition paths from the subscription and pay-as-you-go models to the CPEA model because CPEA represents a well-established engagement with SAP.
Let’s see a comparison chart for the commercial models to highlight what each offers in terms of critical commercial elements. You can view this here:
Table 3.1: Comparison of SAP BTP commercial models
If your use of SAP solutions is not extensive—for example, you use cherrypicked solutions from SAP—it may make sense to use the subscription model. One way of buying SAP BTP subscriptions is through SAP Store. In SAP Store, you can browse SAP BTP services available for the subscription model. You can then make a purchase after you specify a configuration that consists of the quantity—for example, number of users, duration, and start date. If the product you want to purchase has prerequisites, SAP Store will provide you with a warning and let you know what they are. You can see an example of this in the following screenshot:
Figure 3.2: Making a purchase in SAP Store
As you can see in the preceding screenshot, if you want to subscribe to SAP Workflow Management, an SAP BTP service, you need to purchase a minimum quantity of 100 users for a minimum duration of 3 months. In addition, you are also required to subscribe to SAP BTP Portal and SAP Business Application Studio services, and they will have their own purchase configurations.
On the other hand, if you have extensive usage of several SAP products, you possibly have contracts with SAP, and you can get into another one for purchasing SAP BTP with a consumption-based model. Here, for well-established use cases for which you can easily decide the use of SAP BTP services, you can opt for a CPEA contract and benefit from possible volume-based or company-specific discounts. Of course, this requires proper planning to avoid over- or under-commitment. In addition, your CPEA contract can be part of your general cloud agreement with SAP. In that case, there may be another level of flexibility that allows you to exchange your cloud products and change quantities; hence, you can increase or reduce the cloud credits you have for SAP BTP.
Suppose you do not have a CPEA contract and want an enterprise-grade trial; or, maybe you have a CPEA contract but wish to isolate a specific use case from your CPEA consumption (for example, due to intra-company isolation). In that case, you can choose the Pay-As-You-Go model. But don’t forget, with this model, you will not benefit from potential discounts, so you may pay extra in return for the additional flexibility.
It sounds as though Pay-As-You-Go is a better fit for companies new to SAP BTP that want to evaluate it where the confidence level in SAP BTP is somewhat high; for example, the trial is just a step for due diligence. Eventually, the contract can be transitioned to a CPEA contract retaining the global account. If you are an existing CPEA customer, having a separate Pay-As-You-Go contract wouldn’t make much sense unless you can justify it. If you go above your CPEA commitment, you will be charged with the list prices anyway, and if your overconsumption becomes regular, you can top up your CPEA commitment.
SAP provides SAP BTP in a trial environment where users can try to learn about its capabilities free of charge. It is a win-win situation for both the users—for example, developers—and SAP, where users gain experience by using SAP BTP, and this accelerates the adoption of SAP BTP, which in turn is a commercial gain for SAP.
As an individual, you can register to get a trial SAP BTP account that gives you access to many SAP BTP services free of charge for a limited time—that is, 30 days. You can extend this several times until you reach 365 days, after which SAP will delete your trial account. No worries, as you can create a new one after that.
Important Note
SAP BTP trial accounts are for personal use—for example, exploring SAP BTP capabilities—and you cannot use them for production.
Alternatively, you can use free tier service plans where available. This option is available for many services, and SAP plans to make it available for more services in the future. The free tier may eventually replace the trial account option as it provides an experience closer to enterprise accounts.
In the Technical requirements section at the beginning of this chapter, you can find a link to a tutorial explaining how you can get an SAP BTP trial account. In addition, you can also find information on how to subscribe to SAP BTP for using the free tier. The free tier can be used by enterprise customers as well. It may be a reasonable option for proofs of concept where it is possible to upgrade to a paid service plan without requiring a migration. As you would expect, free tier service plans have limited capacity, and support for the free tier is limited to SAP Community.
Whichever commercial model you are on, you must keep an eye on your consumption. Otherwise, you may overspend your CPEA budget or subscribed amount, and in the case of Pay-As-You-Go, you may see a surprising amount on your monthly bill.
There are different ways to monitor your SAP BTP consumption. Firstly, SAP provides you with statistics and other consumption information on the Usage Analytics page when you log in to your account in SAP BTP Cockpit, as shown in the following screenshot. This page is available for different account-model levels we will discuss in a later section:
Figure 3.3: Usage analytics for a global account
In Figure 3.3, you can see the usage analytics for a global account. Have you figured out the Export button in the screenshot? You can click on this button to download detailed information on your consumption that you can use for further analysis. In the downloaded spreadsheet, you can find which services you consumed from the beginning of your contract period at the subaccount level with month-by-month metered actual usage and the cost. Based on your actual use, you can then make projections for your future consumption, which may signal any potential overspend; hence, top-up requirements. If you need to estimate costs for possible changes in consumption or new services you plan to enable, you can also use the Estimator Tool , which we will explain later in this chapter.
Suppose you need an automated way of retrieving usage data. In that case, you can use the Usage Data Management service and consume its APIs from, for example, an IT spend management or a reporting application. We will discuss how to do this in the section where we discuss services. With this API-based method, you can establish continuous monitoring and integrate your usage data for analytics use cases.
It would be best if you also use these analytics to optimize your consumption—for example, in the report, you can see whether there are services you have enabled but are not actually using. As mentioned before, some services incur costs even though you don’t actually use them because SAP BTP reserves some capacity for them—for example, a Data Intelligence subscription, an Integration Suite subscription, a Kyma environment, and so on.
SAP BTP’s account model defines how its elements are organized in a structured way for administration purposes. For the primary hierarchy, there are three levels that are containers for other elements: global accounts, directories, and subaccounts.
Important Note
At the time of authoring this book, SAP was transforming SAP BTP accounts to provide a better set of cloud management tools. This new variant is called Feature Set B, and the old variant is called Feature Set A. This distinction will possibly disappear after SAP converts all accounts. In this book, we will assume you are on Feature Set B. If your screens look slightly different from the images here, don’t worry; you will get the new features after SAP converts your account.
Before we start defining account-model elements, let’s have an overview. Why not check it out first and try making sense of each element before reading its definition? Check out the following diagram:
Figure 3.4: SAP BTP account-model elements
A global account is the highest level in the hierarchy, and it corresponds to your contractual relationship with SAP. So, after you purchase SAP BTP, SAP will provide you with a global account and instructions to access it. Depending on your contracts with SAP, you may end up having multiple global accounts.
Global accounts are not associated with regions or environments, and they function as the topmost containers to include directories and subaccounts. In the following screenshot, you can see how SAP BTP Cockpit displays a global account having several directories and subaccounts:
Figure 3.5: Account Explorer page of a global account (trial) in SAP BTP Cockpit
Directories help organize the account model by simply being containers for subaccounts or other directories. This is an intermediary level where some properties—that is, entitlements and users—can be assigned at a higher level cumulatively for a set of subaccounts before distributing them to individual subaccounts. In addition, because you can set custom properties (tags) for directories, you can use them as an aggregation level for monitoring usage and cost.
Directories are optional and only available in accounts with Feature Set B. Directories can be nested to include other directories, as long as the entire account model has seven or fewer hierarchical levels. As with global accounts, you cannot associate directories with regions or environments.
We are now at the level where things get concrete, as subaccounts contain your operational SAP BTP elements. Therefore, subaccounts are associated with a region. This means the applications deployed and the services provisioned in a subaccount will be running in the subaccount’s region. As you should remember from earlier chapters, when we refer to a region, it also contains the hyperscaler of choice.
After you create a subaccount, you can enable specific multi-cloud environments you want to use. As we discussed before, you can subscribe to some services with no attachment to a runtime environment, and for others, you need to create service instances attached to runtime environments. One thing to keep in mind about the Kyma environment is that you can choose to run your Kubernetes cluster in a region different from your subaccount’s region.
As with directories, you can assign custom tags to your subaccounts so that you can identify them for particular reasons—for example, ownership, usage type, and so on.
In addition to the SAP BTP account model, the CF and Kyma environments have their own structural models.
The CF environment has two levels for structuring: an organization and spaces under it. In the SAP BTP context, when you enable a CF environment for a subaccount, the organization of the environment is 1-to-1 associated with the subaccount. Then, when you create organization spaces, they become subordinate elements of the subaccount.
Typically, you will deploy your applications and create service instances in spaces; therefore, you need at least one space in your subaccount. CF spaces provide a level of isolation; however, with the overarching account model of SAP BTP, isolation at this level is generally not used. This means you generally have only one space per subaccount.
Similarly, the Kyma environment has namespaces allowing a level of isolation, and you get a default namespace when you enable the environment.
SAP starts metering the consumption of a service once it’s provisioned, and it will cost you cloud credits if it’s not an included service and you are not using the free tier. Therefore, after the structural elements are in place, you may want to set up a mechanism to control the number of services consumed in subaccounts. In order to make this possible, SAP BTP delivers the services with one or more pre-defined configuration variants that primarily define their costs. These variants are called service plans. For example, some services have service plans similar to T-shirt sizes (small, medium, and large).
SAP BTP facilitates the cost-controlling mechanism at two levels. First, with entitlements, you determine which services a subaccount or subaccounts of a directory can use in terms of service plans; for example, you entitle Subaccount A to use Service Plan x of Service 1. Then, attached to the entitlement, you assign a quota that specifies the upper limit of the quantity that service can be used in the subaccount.
As you can guess, at the top, there are entitlements and quotas SAP assigns to your global account that you are supposed to distribute to your subaccounts. If you have a CPEA or a Pay-As-You-Go contract, most of the entitlements for your global account will be unlimited because you can consume as much as you need, provided that it’s within your consumption budget or you are happy to top up.
It’s now time for you to shape your own instance of an account model with the given elements. Indeed, you can use them in a way that fits your requirements, and there is always more than one correct way of doing this. When setting up your account model, the first primary challenge will be which subaccounts you need.
There are different factors here, and each of them may require you to add a set of subaccounts, which increases the landscape complexity; hence, administration overhead and the cost. Therefore, when planning, you need to set principles to optimize the number of subaccounts.
Most probably, the first dimension you would want to incorporate in your account model will be your change delivery strategy, which you likely already established for your on-premises systems. This means a separate subaccount for each landscape environment you have; for example, development, test (quality assurance, or QA), and production. This setup is generally the minimum many companies have. Additionally, you can have a separate pre-production environment to further safeguard delivery to the production environment and for activities such as performance testing. You can also have a sandbox environment to let teams explore options without contaminating the development environment. Finally, you can have a training environment that you specifically reserve for training purposes.
The change delivery in some companies may be quite complex, requiring more landscape environments; for example, some choose to have different sets of environments for the project stream and the business-as-usual (fixing live system incidents) stream.
Let’s assume we have a landscape as depicted in the following diagram. This means we should start with six subaccounts:
Figure 3.6: A typical set of landscape environments
Here, for your SAP BTP account model, you can consider choosing not to have a subaccount for some of the environment types. For example, in a setup where you don’t foresee frequent and significant changes, you can plan training activities accordingly in the pre-production environment because the application version will stay stable and similar to production for a reasonably long time.
This is an opportunity for reducing the number of landscape environments. However, there are more factors that may require increasing the number, such as the following:
So, let’s solve an exercise to demonstrate what we have learned so far. How about creating an account and landscape model for a company with the following requirements? There is still some room for interpretations and assumptions; after working on yours, you can check Figure 3.7 to see our solution:
You can see an example landscape for this exercise in the following screenshot:
Figure 3.7: An example landscape fulfilling the requirements in the exercise
In our solution version, we should also note the following:
With all the aforementioned factors adding new dimensions to your landscape, you may end up having tens of subaccounts, and their administration may become complicated. You may remember that SAP BTP has another element—that is, directories—for grouping subaccounts. Here, you have the freedom of how you want to group, and—most probably—pragmatic reasons will define your choice. For example, you can place the subaccounts in each row in our preceding example under a directory.
Furthermore, within these directories, you can add another level to separate production and non-production subaccounts. Here is a good piece of advice, though: don’t exaggerate and end up with too many directory levels as this may eventually cause more pain than good. There is a limit on how many directory levels you can have anyways. For the entire account model, you can currently have a maximum of seven levels. One is for your global account, and another is for the subaccount level; hence, you are left with a maximum of five directory levels.
After making the landscape decision, you should consider which services you want to enable in each subaccount and with which configuration. We say configuration to take it at a more general level, but this primarily points to service plans and sizing considerations. It is not necessarily the same set of services you have to enable in every subaccount; for example, although you have a four-tier landscape, you can choose to enable the SAP Data Intelligence service in the production subaccount and only in one of the non-production subaccounts. With the two instances of SAP Data Intelligence, all non-production usage can co-exist safely with proper artifact isolation. This way, you can achieve cost savings.
When enabling services, you need to pay attention to which service plan you use because this will impact the cost. For this, you may need to do a sizing exercise where you need to define parameters. Here, you can use numbers from the business or get them from an existing system if, for example, you are moving functionality from on-premises to the cloud. With this input, you can use the Estimator Tool to calculate an estimated cost. We will explain the Estimator Tool later in this chapter.
At the beginning of this chapter, we already defined what a service is: it’s a managed capability provided through the platform to be used as a building block in our solutions.
These can be business services that you can almost immediately incorporate into a business process providing industry-specific or line of business (LOB)-related capabilities, for example, Document and Reporting Compliance, Data Privacy Integration, Business Entity Recognition, and so on. Otherwise, they are technical services that do not directly relate to a business context; instead, you can use them to build technical elements and applications.
What we also need to clarify at this point is that in the SAP BTP context, a service can refer to different technical things, even though all of them are present together in a single service catalog/marketplace. Let’s see them.
An SAP BTP service can be an application that exists in a different provider environment to which you need to subscribe as a consumer before you can use it. These are like multi-tenant software-as-a-service (SaaS) applications; you have an isolated tenancy in the provider environment where the application runs on a managed and dedicated/shared infrastructure; hence, the boundary between platform as a service (PaaS) and SaaS gets blurry here. In any case, your data and processes are protected with appropriate isolation. Surely, for most SAP BTP services, the provider is SAP itself, and the application is built on top of SAP BTP.
Because you subscribe to a provider’s application, SAP uses the term subscription to refer to your specific use of it. A subscription doesn’t need a runtime environment in your subaccount. Your applications generally connect with these provider applications directly, without the platform’s intervention—for example, a HTTPS communication managed by you and programming models can streamline this interaction.
Integration Suite, Workflow Management, Launchpad, Continuous Integration and Delivery, Event Mesh, and Business Application Studio are examples of this service type.
Your company may be on the other side of the subscription—that is, the provider of an application. In that case, you develop a multitenancy-aware application that, for example, uses proper routing mechanisms, Authorization and Trust Management Service for identity and access management (IAM), and so on. In addition, you can use the SaaS Provisioning service for managing subscriptions to your application.
Runtime environments are also considered services in the service marketplace. It’s almost as though we are in a circular reference here, right? This is because of historical reasons we touched upon in an earlier section explaining environments.
You need a runtime environment in your subaccount if you want to deploy applications or use non-subscription services, which we will be explaining next. As we explained when discussing the SAP BTP account model, you can enable CF and Kyma runtime environments at the subaccount level. In contrast, the ABAP runtime environment needs a CF space.
When you create a CF runtime environment, SAP BTP assigns to the subaccount a memory quota that applications can use. Because SAP BTP’s current service provisioning model is based on CF, some services become available only after CF is enabled in the subaccount.
When you create a Kyma runtime environment, SAP BTP reserves the infrastructure for running a managed Kubernetes cluster.
After handling the aforementioned special types, let’s come to the kinds of services that are just reusable functionality reserved for consumption by your applications. To utilize these types of services, you need to create a service instance in an applicable SAP BTP runtime environment—that is, CF or Kyma. The service instances reserve resources in your subaccount, and they are primarily for your applications to communicate with them through APIs. Let’s look at some examples here:
For example, when you enable the SAP HANA Cloud service, SAP BTP provisions an instance of the database and the infrastructure it runs as reserved resources by the service instance. Similarly, when you create an Object Store service instance, SAP BTP arranges its infrastructure—for example, Microsoft Azure Blob storage, an AWS Simple Storage Service (S3) bucket, or a GCP Cloud Storage bucket—and through the created service instances, your applications can communicate with these backing services.
Service instances can be attached to applications by creating bindings that deliver service credentials automatically to the bound applications. If you need to connect to a service instance directly—for example, from an external client—you can create a service key that generates access credentials. These include Open Authorization 2 (OAuth 2) elements, which you need to use for authorization before accessing service instance APIs. For example, the Kyma environment uses service keys to consume services in the CF environment; or, say, you have an IT spend management application that you want to connect to SAP BTP in order to retrieve consumption and cost information using the Usage Data Management service.
Here, after creating a service instance, you can create a service key that generates OAuth 2 credentials. Because the application is external, you cannot use bindings. Instead, the access information needs to be shared manually with the external application.
In Figure 3.8, you can see a diagram bringing the different types of services together. As you can see, there is one single service marketplace that includes all these services. If you are curious about the kernel services, we can say they are foundational components used internally within the platform and are not supposed to be directly consumed by customers.
One thing to note here: SAP’s current strategic direction keeps CF and Kyma environments co-existing in SAP BTP. The current service provisioning model is more aligned with CF, and we don’t yet know if this will be different in the future.
You can view the diagram here:
Figure 3.8: SAP BTP service types overview
You can define external services so that your applications can consume them similarly to SAP BTP’s platform services. For example, after you configure your AWS or Azure account as a resource provider in SAP BTP, you can consume the supported services that are provisioned in the AWS or Azure platforms. Currently, SAP BTP supports PostgreSQL database services on AWS and Microsoft Azure. This way, you can create a PostgreSQL database in AWS or Azure and then build your application in SAP BTP to persist data in that database.
Another approach to achieving external service consumption is using user-provided services. First, you need to create a user-provided service instance that contains access details for the external service. This instance can now be attached to an application with a binding. As you remember, what a binding does is automatically deliver access information to the application to consume the external service. Compared to the first option, this is a less streamlined method.
In the opposite direction, you can also make external environments consume SAP BTP services as well. For this, you need to use the Service Manager service through SAP BTP Cockpit, the Service Manager command-line interface (CLI), or Service Manager APIs. This connectivity option is valid for external Kubernetes clusters as well. Here, you would have an additional option—that is, SAP BTP Service Operator, which streamlines the interaction used by Kubernetes native tools.
Over time, SAP classified SAP BTP services under different categories. You’ve possibly had a peek through the contents of this book and have seen which categorization we adopted; that is, the high-level use cases for which SAP BTP provides services.
Important Note
There are some applications SAP built on top of SAP BTP, selling them as separate products. These are generally considered under the SAP BTP portfolio, although they are not directly available as SAP BTP services—for example, SAP Analytics Cloud (SAC) and Identity Access Governance (IAG).
The following figure shows a basic categorization of SAP BTP services:
Figure 3.9: A basic categorization of SAP BTP services
Classification is not an easy task, and surely the functionalities of some services span multiple scenarios. In Figure 3.9, we wanted to give an overview and a sample of services for each category. Further listing all SAP BTP services and providing catalog information here would be a waste of space because we will explain most of them in later chapters with examples. Besides, there is a great online tool that fulfills service discovery requirements, and you do not need to wait long as we will discuss this in the next section.
Who doesn’t like a catalog that functions as a registry and has the following attributes:
We cannot see anyone raising their hands. Luckily, SAP provides such a superb catalog for SAP BTP—that is, SAP Discovery Center. So, don’t take just our word for it; go and check yourself as it’s at your fingertips at the following link: https://discovery-center.cloud.sap/.
While designing your solutions, SAP Discovery Center is your best companion to help you find your way among so many platform services. Let’s see this with an example. Bear in mind that the following example is based on the content available at the time of authoring this book:
Figure 3.10: SAP Discovery Center overview page for SAP Launchpad service
As an architect working for Company A, Mary considers using the SAP Launchpad service in her design and needs to gather information. So, she navigates to SAP Discovery Center and searches for or browses the SAP Launchpad Service page. The screen looks like the one shown in Figure 3.10.
The Overview page tells her what the service is about and includes links to resources and tutorials. Next, she gets to the Pricing tab, which is shown in Figure 3.11. Company A has a CPEA contract. So, after ensuring the CPEA option is selected as the commercial model, she can see that two service plans are available: Free and Standard. The design is for a production solution end users will use. Thus, she thinks she should look into the Standard service plan.
Mary realizes there are two sets of pricing information, and it seems the region feature for EU access may impact the cost. Also, she needs to check whether the Launchpad service is available in the SAP BTP region in which her company already has subaccounts. She clicks on the globe button, which shows a map as in Figure 3.12, and it seems the service is available in the region she wants.
You can see the pricing page here:
Figure 3.11: SAP Discovery Center pricing page for SAP Launchpad service
So, how much will consuming this service cost? In order to calculate it, she needs to know the metric by which the service is charged. For the Launchpad service, she can see that it is the number of active users, and from the definition, it looks as though she needs to count anyone who would use the Launchpad service at any time during a month. From the requirements, she knows that approximately 6,000 users will be using this service, so she can base her calculation on this number. Checking the pricing table, it looks as though the quantity of 6,000 active users falls under the fifth pricing tier, which says Up to 20,000, and the price per unit for this tier is 0.79 British pound sterling (GBP)/month. So, for all users, that makes 6,000 x 0.79 = 4,740 GBP/month. Because Company A is on a CPEA contract, this will be the amount withdrawn monthly from the cloud credits balance for consuming the SAP Launchpad service.
Important Note
In contrast to many cloud vendors using cumulative pricing, SAP uses tiered pricing. In this model, you pay the entire quantity with the same price per unit of the tier to which your consumption corresponds. Therefore, once you identify the tier of your usage, other tiers have no place in your cost calculation.
The following figure shows the regions in which the SAP Launchpad service is available:
Figure 3.12: SAP Discovery Center regional map showing in which SAP BTP regions the SAP Launchpad service is available
In Mary’s aforementioned scenario, there was only one service. The more services you need to consider, the more difficult it may become. Also, the metrics for some services require a deeper level of sizing exercises, such as SAP HANA Cloud, SAP Data Intelligence, and Kyma environments.
SAP provides a handy tool that helps customers neatly calculate prices. With the Estimator Tool, you can add multiple services and customize the factors that impact pricing. For example, check out the screenshot in Figure 3.13, where we added three services in the estimation. As you can see, besides providing the parameter values for service pricing metrics, we have also customized the estimator to do the following:
Important Note
You can access the Estimator Tool from within the SAP Discovery Center or by directly navigating to https://www.sap.com/uk/products/business-technology-platform/estimator-tool.html.
Let’s take a look at what the Estimator Tool window looks like with our example:
Figure 3.13: Estimator Tool showing prices for three services
As mentioned before, for some services, you need to have a more sophisticated sizing exercise to determine the cost. In such cases, SAP generally provides an abstract metric—that is, capacity units. By defining sizing-parameter values, a total number of capacity units is derived. In the tool, next to the metric input box label, a calculator icon appears for this type of service; upon clicking it, you will be taken to a sizing screen specifically tailored for the service. Let’s take the SAP Data Intelligence service as an example. Multiple components may impact the cost, such as the number of pipelines, jobs, users, pre-trained machine learning (ML) services, and core ML services. For all related components, you can specify how many you need according to your requirements. In the following screenshot, you can see an example. It may not be a completed sizing exercise because our goal was to showcase different elements in the screenshot, but it should give you an idea:
Figure 3.14: SAP BTP Estimator Tool – calculation of SAP Data Intelligence capacity units
As you can see, after our input, the number of capacity units is calculated as 6087 per month. Now, you can close the sizing screen and go back to the Estimator Tool to enter this number as the metric value.
Next, let’s learn more about account administration.
We have talked a lot about SAP BTP so far, and we understand there are lots of new concepts that need to sink in. Undoubtedly, the best way this can happen is when you try it yourself. So far, it has been all about foundational concepts, commercial models, and the SAP BTP account model. Now, let’s look at the options around how you can manage all these. As an architect, you may not need to know the lowest-level details of account administration; however, having a high-level knowledge of it will help. So, we will keep it short and sweet. At the end of the day, you may want to know how to find your way around SAP BTP when designing architectures, and you may need to try things yourself.
You can manage your SAP BTP account mainly using three tools: SAP BTP Cockpit, the SAP BTP CLI, and SAP BTP APIs.
SAP BTP Cockpit is a web-based user interface (UI) that lets users manage SAP BTP account-model elements using screen controls. The UI adheres to the account-model structure, and you can drill down from your global accounts to service instances where each has a dedicated administration screen.
Here, we should remind you of the note we provided at the beginning of the Account model section. Your Cockpit screens may look different from the screenshots in this book, depending on which feature set your global account is on. Also, SAP continues improving SAP BTP Cockpit; hence, changes in appearance over time wouldn’t be surprising.
In Figure 3.5 in a previous section, you already had a peek at the Account Explorer screen, which shows subordinate elements of the global account. As you can see, the screen displays information and contains buttons to make changes to your global account—for example, creating/updating/deleting a directory or a subaccount.
As another example, in the following screenshot, you can see the administration screen for a subaccount. It has a similar structure that displays essential information, and contains buttons for managing subordinate or linked elements:
Figure 3.15: SAP BTP Cockpit – subaccount administration screen
Important Note
If you are stuck when using SAP BTP Cockpit, you can use the context-aware help by clicking the question-mark button. It’s a great facility and provides rich content that will help with the page you are on, including essential information and links to the standard documentation. Try it, it’s impressive.
Another interesting part of SAP BTP Cockpit is the Service Marketplace. Here, you can find all available services according to the entitlements assigned to the subaccount, as shown in Figure 3.16.
The following figure shows an overview of the Service Marketplace.
Figure 3.16: SAP BTP Cockpit – Service Marketplace
It may look a bit abstract when you manage your account using SAP BTP Cockpit; however, under the hood, your account data is persisted somewhere, and there is an application processing that data.
As a convenience tool both internally for SAP and for customers, the BTP CLI provides a set of commands and other common CLI features for users who prefer working in a terminal.
This way, the BTP CLI enables scripting, which means you can create scripts to automate administrative tasks. Enabling automation is a crucial cost-optimization element in today’s IT landscapes as operational requirements are much more dynamic.
You can use the BTP CLI to do everything you can do in SAP BTP Cockpit; for example, you can log in to your global account and manage all account-model elements.
Important Note
You can use the BTP CLI only for global accounts with Feature Set B.
If you have advanced use cases to manage CF elements of your subaccount, you can use the CF CLI. Similarly, with the Service Manager Control (SMCTL) command-line tool, you can run commands to manage service instances in your SAP BTP subaccount directly with Service Manager. Many SMCTL commands are available in the BTP CLI, though.
SAP BTP provides a special set of APIs that you can use to manage your global account and its subordinate elements, as follows:
Core Services for SAP BTP: The APIs in this package use the Cloud Management, Usage Data Management, and Service Manager services; therefore, you need service instances in your subaccount accordingly. With these APIs, you can do the following:
SAP Authorization and Trust Management Service: These APIs can be used to manage IAM-related entities, as follows:
We have just listed APIs that can be used for administrative purposes. There are many other APIs that you can use to consume the capabilities of SAP BTP platform services—for example, APIs for monitoring, connectivity, transport management, alert notification, and so on.
Important Note
For more information on SAP BTP APIs, you can visit SAP API Business Hub at https://api.sap.com/ and search for SAP BTP.
As you would expect, these APIs are protected for security reasons, and you would need to get OAuth 2 authorization before you can use them. Any idea how you can achieve this? How about if we remind you that these APIs are exposing the functionality of SAP BTP services? If you don’t have an answer, then maybe you should read (again) the part where we discuss service keys.
We are now at the end of this chapter after going through so many foundational elements of SAP BTP. So, let’s go back to the beginning and fast forward for a summary.
First, we learned which environments you could have in SAP BTP and in which regions SAP BTP was available. Next, we discussed different options to buy SAP BTP and how they compared. Then, it was time to see how SAP BTP components were structured in its account model, and we discussed how to set up your own account model based on an example. In the subsequent section, we had a good overview of what a service meant and also learned about SAP Discovery Center. Finally, in the last section, we briefly discussed the administration tools you could use to manage SAP BTP.
Now that we have laid out the essential foundational elements, we will go more technical in the next chapter and discuss two fundamental aspects you need to consider in your technical designs: security and connectivity.
3.144.4.221