Deploying a Solution Using a Multi-Target Application (MTA) on the SAP Cloud Platform
News flash: Тhe Cloud has taken the digital businesses by storm! The thunderous fairytale of lowered TCO, increased speed, paying depending on demand, improving flexibility, scalability, seamless updates – is an achievable reality.
Usually, one of the challenges when moving from one environment to another is the subsequent manual deployment of multiple interconnected components. Regarding the cloud, SAP Cloud Platform has a “cure” called a Multi-Target Application (MTA). Instead of separately deploying applications and then making them work together, you package them in one specifically structured bundle, and deploy them in one run. This is what we call a solution within the context of the platform, but more on that later.
Jumping on the SAP Cloud Platform can really increase your competitive advantage once you start deploying your own applications and tools. Let’s dive in, shall we?
What is a Multi-Target Application?
So, a solution is an easily-deployable puzzle of applications and configurations designed for your specific use case – and SAP Cloud Platform wisely deploys these puzzle pieces simultaneously where they should be, depending on the technology they are based on. What you need to do is bundle up these components in an archive we call a Multi-Target Application (MTA) archive, and optional MTA extension descriptor, and deploy them. SAP Cloud Platform is aware of each technology used in the archive, thus knows how to deploy each component. You can also trigger an MTA deployment using a console client or by using by using CTS+.
By the way, MTA-delivered solutions, which are provider-deployed, can be entitled to a third party for their own use.
Anyway, the following picture shows the deployment of an MTA in condensed form.
Figure 1 – An MTA with its components, and a Cloud with its runtimes
Ok, let’s assume you want to build and run productively an SAP Cloud Platform solution with the elements that your regular business requires. First we’ll see how the required archive structure and descriptors are made, then the apps placed and bundled; after that we’ll deploy and see the options you can use productively. Basically, we’ll see the conception of a solution and how to use it via the brand-new Solutions view of the SAP Cloud Platform cockpit, so that you simplify and ensure the consistency through the deployment lifecycle.
How do I create an MTA?
You have two options:
A. To create it yourself
B. To use the brand-new MTA builder tool.
A. Creating the MTA yourself
Follow these steps:
1. Create a directory with a specific naming and sub-structure, the “backbone” of the MTA archive.
2. Comprise the required descriptors using the YAML language.
3. Create the necessary artifacts, binary files, and the manifest file.
4. Place the said files where needed inside the directory, and package them in a JAR archive.
Let’s get started in a little bit more detail.
- Create the directory structure for the MTA archive
Create a directory and give it a name, for example My_First_MTA. Inside that directory, create and name two more directories:
– META-INF – this one will contain the MTA deployment descriptor and the MANIFEST.MF file, after you have created and populated the two files with data.
– resources – this one will contain required binaries, for example the roles and tiles JSON files in the case of SAP SuccessFactors.
Figure 2 – inside the MTA
For the fully detailed technical procedure, see the official documentation at SAP Cloud Platform documentation.
- Comprise the MTA deployment descriptor
Create a text file, and name it mtad.yaml. Open it for editing in a text editor, and populate with the required data, for example the MTA schema version, the required parameters, the ID of the application, the application modules, and the required resources. See the details in Defining an MTA Deployment Descriptor and MTA Module Types, Resource Types, and Parameters for Neo Applications.
- Model the necessary applications, database bindings, and destinations
In parallel to the previous step, you also model the apps, database bindings, and destinations. These are the key elements of an MTA – they carry over the to-be-built business solution in the SAP Cloud Platform – Java, HTML5, and so on apps. That’s described in detail in Model Solutions. Note though, there’s no one-to-one mapping for the components that you package, compared to what entities are deployed on the SAP Cloud Platform. That is, several components might be deployed from one source module. See the picture below, which depicts what the MTA is before deployment and what you can see in the Solutions view.
Figure 3 – How a single module can deploy several components after deployment, or just one.
Optionally, define the MTA extension descriptor
If this is necessary – when you have security-sensitive data for example, you can provide an MTA extension descriptor. You can also use it if want to provide several sets of additional data to a single MTA, which is deployed to different targets. See the details at Defining MTA Extension Descriptors. And note – the MTA extension descriptor is a separate file you provide in parallel to or after you have deployed the MTA archive itself.
- Put all of this in a JAR, that is, create the MTA archive.
You do this by neatly packaging the manifest, deployment descriptor, and the modules in a JAR file, which is actually a ZIP file. To be on the safe side of what is what, use the JAR file specification and full procedure at Defining Multi-Target Application Archives.
B. Using the MTA Archive Builder
To automatize and speed up the above process, you can give the brand-new MTA Archive Builder tool a try. To see more about it, and an example of how it can be used, see the blog Deploying an MTA across DEV, QUAL and PROD in Cloud Foundry environment.
To see it’s full capabilities and commands, see the official documentation at Multi-target Application Archive Builder Guide.
Now that I’ve got the archive, how do I deploy it?
You log on to your cockpit subaccount, go to the Solutions view, select Deploy, navigate to the MTA archive (and the MTA extension descriptor), then choose deploy – then go get yourself a quick cup of coffee. When you’re back, your business solution will now be deployed and ready.
Do I have any other deployment options? Console client commands?
Yes, and yes – either by using the SAP Cloud Platform console client commands, or the CTS+ transport management system.
See the details in deploy-mta to deploy one or several MTA archives using the console client commands, and to see how this worked afterwards – see list-mta-operations. Alternatively, check Change Management with CTS+, if you’d prefer to use this deployment method.
Great! What can I do with a solution?
Apart from the designated work the solution is intended for, you can manage a solution by monitoring it, by sharing it for reuse via entitlements to third parties, and delete it if needed – all using the Solutions view in the SAP Cloud Platform cockpit.
The Solutions view can show you the state of each solution component. All related details, too. See more at Monitoring Solutions Using the Cockpit.
Entitle your solution for reuse by third parties
Depending on the options you have chosen during deployment, you can also make a solution available for subscription. This means that subaccounts to whom you have given entitlements can use your solution for their purposes. Of course, the vice-versa situation also applies – you can subscribe to a solution, if you are a subscriber and have an entitlement. See all necessary info Deploying a Provided Solution and Creating and Editing Entitlements.
As you might want to get rid of a solution that has become redundant. Just click the Delete button in the page dedicated to the solution in the Solutions view. For details, see Deleting Solutions Using the Cockpit.
For all details on each feature, see the official documentation at Operating Solutions.
So this is our quick overview of the MTA concept, solutions it can provide, and how you can manage it. See the Multi-Target Applications and Solutions documentation pages for the full technical details, parameters, options, special cases, and much, much more.
Or drop us a comment below, we’ll address it as soon as we can.
Iskren Asenov and Lilyana Rangelova
User Assistance developers for the SAP Cloud Platform