cancel
Showing results for 
Search instead for 
Did you mean: 

Deploy App from own BAS to Custom Cloud Foundry

Missschaaa
Participant
0 Kudos
1,995

Hey guys,

Is it possible to deploy an app from our own BAS in our BTP to a Cloud Foundry of a customer?

We created our own app which consumes data from Non-HANA On-Premise Backend System. To deploy the app to our system we added deploy configuration with “npx fiori add deploy-config” and entered our ABAP System which is linked in our BTP via Cloud Connector. This works fine and app gets created as BSP Application in our Backend System so we can use it in our launchpad with SICF node.

Now we want to roll out this app to a customer as MTA Project directly into customer Cloud Foundry and Launchpad Work Zone. Therefor we connected our own BAS to customer Cloud Foundry which worked. Then we overwrote again with “npx fiori add deploy-config” our Deploy Config and this time chose Cloud Foundry. But although we before connected to customer Cloud Foundry system only shows up our own Cloud Foundry Destinations. So we used our own Destination in deploy config and started MTA Project deploy. This leads to wrong xs-app.json entry for the destination.

The app gets created in Customer CF like we wanted it but opening the link does not work because app cannot find metadata, of course due to wrong destination. We can workaround this by copying the destination of customer BTP in our own BTP but sounds wrong for me. So what would be the "standard" way to deploy it? Download it in our BAS and upload it in customer BAS and then deploy it there?

Other question: It looks like deploy config always has to get overwritten. So do we always have to overwrite/switch it when deploying to On-Premise Backend and CF? Is there any way to do it both individual without always overwriting?

Regards

Michael

Accepted Solutions (0)

Answers (2)

Answers (2)

WouterLemaire
Active Contributor

I think that multitenancy would be the better solutions here. What you are trying to do is providing an application to one or more customers as a cloud solution. Multitenancy is the solution for this, here you have a bit more information: Fundamentals of Multitenancy in SAP BTP | SAP Blogs

Missschaaa
Participant
0 Kudos

Thanks for your answer, that's an interesting blog. If I understand it correctly pre-condition of this would be that we and customer share same infrastructure ressources for SAP Backend System? If so this is the problem which would not work. Customers all have their own SAP systems hosted on Cloud, classical On-Premise Backend, with S/4, without S/4, independent of our infrastructure.

WouterLemaire
Active Contributor
0 Kudos

Normally every customer will have his own BTP subaccount inside the same global account as you. Every customer can subscribe to your application in their subaccount. Inside their subaccount, they need to configure their own destination to their s4 system. In the end, every customer has his own subaccount with its own destination to their own system.

Missschaaa
Participant
0 Kudos

Ok but this means administration, costs and everything that has to do with BTP is done by us? Normally our customers consume only a hand full of Apps from us but use their own BTP space for their own purposes.

WouterLemaire
Active Contributor
0 Kudos

that’s indeed the goal of multitenancy, share resources and lowering the costs. You can include this into the calculation of the monthly fee of your customers.

junwu
Active Contributor
0 Kudos

the deployment configuration is just a yaml file

you can manually add a new one.

Let's say you deploy to onpremise using:

"deploy": "npm run build && fiori deploy --config ui5-deploy.yaml && rimraf archive.zip",

you add another script call it "deployCF", which use another yaml file.

never tried myself, but i think it will work.

Missschaaa
Participant
0 Kudos

Also thought at this and we will try. But it assumes that you always have to manually write the CF destination of customer which is not reachable in our own BTP (because not linked in our Cloud Connector) in the file, right? Or just create a dummy destination in our own CF analogous to the one in the cusomter CF.