Re: Migration between servers

Re: Migration between servers

  

Hi,


I would like to migrate a developed Mobile Application from one server to another without rebuilding the Module. Is there any way to perform the same?


Best Regards,

Punya Swaroop Sirigiri

Hi Punya


Do you mean to move between environments? If so you can do it by deploying your applications on lifetime, which you can access at yourenvironment.outsystemsenterprise.com/lifetime


If you need to take your code to a different developer URL, you can export the project as a OML and upload it to the other environment by clicking on the upper-left menu > Module > Export As > Save


And then Opening it again on the environment you want to pass it to. (Environment > Open Files)


Note that your code will be intelectually protected (the IPP error that will pop-up when you try to import the project to a new environment). You can remove the IPP by going to https://www.outsystems.com/homeIpp/IPP_Page.aspx and submitting you module/reason for approval. 


Hope this helps!

  - CLSJ

One thing you must consider is migrating your data.

It can get a little complicated if you used a lot of static entities, as the id of static entities might be different from your original server.

When migrating your data, make sure to remap those static entity id / foreign key according to your new static entities' id. 

@Harlin: One reason to not have auto numbers as Static Entity Identifiers :).

@Punya: As for the IPP, you can't move applications between Personal Environments. If that's what you want, you're basically stuck.

@Killian: there is a way, submit your application to Forge, any IPP will be stripped from your application, and you'll do good for community :)

Hi Harlin,

I know that's a possibility, but this is not encouraged. I disagree with "doing good", we see a lot of these "applications", and they're typically not usable for a wider audience. If people use the Forge route, we encourage them to quickly delete (disable) the component afterwards, to avoid poluting the Forge.

I agree with you Kilian. I also want sugest that the Outsystems make a Forge cleaning because it's full of grabage. Or at list make it more dificult to publish garbage,  obliging to fill all the fields of a regular forge contribution.



@Alberto: Yeah, it's one of the constant points of attention for us MVPs, but it's fighting a losing battle sometimes...

Punya Swaroop Sirigiri wrote:

Hi,


I would like to migrate a developed Mobile Application from one server to another without rebuilding the Module. Is there any way to perform the same?


Best Regards,

Punya Swaroop Sirigiri

Hello Punya,

The short answer to your exactly question is: As far as I know, no, there isn't.
At least, i didn't found anything in documentation.

When you move an app from one server to another, it will be published. The package you created in the previous version will be pointing to the old server, so you will need to rebuild the package and install it again in the device.

Cheers.


Carlos López Santibáñez Jácome wrote:

Hi Punya


Do you mean to move between environments? If so you can do it by deploying your applications on lifetime, which you can access at yourenvironment.outsystemsenterprise.com/lifetime


If you need to take your code to a different developer URL, you can export the project as a OML and upload it to the other environment by clicking on the upper-left menu > Module > Export As > Save


And then Opening it again on the environment you want to pass it to. (Environment > Open Files)


Note that your code will be intelectually protected (the IPP error that will pop-up when you try to import the project to a new environment). You can remove the IPP by going to https://www.outsystems.com/homeIpp/IPP_Page.aspx and submitting you module/reason for approval. 


Hope this helps!

  - CLSJ


Hey CSLJ,


Thank you so much for the Response.

If I understand it right, I do not need to rebuild the module in an application when migrating to another server. Is that correct?

FYI,  As of now I am developing the app in enterprise's server. I would like to migrate it to another public server where the end customers do not have to VPN in. Does exporting the module as an OML file from enterprise's server and importing it into another server work?

If yes, Could you please describe the steps involved(Like IPP which you mentioned)?

I do not quite understand what is IPP.


Thank you so much!

Best Regards,

Punya Swaroop Sirigiri


Kilian Hekhuis wrote:

@Harlin: One reason to not have auto numbers as Static Entity Identifiers :).

@Punya: As for the IPP, you can't move applications between Personal Environments. If that's what you want, you're basically stuck.

Hi Kilian,


Thank you for the response. Don't you think OML export and import will do the trick? Could you tell me the reason behind this not working?


Thanks!

Best,

Punya Swaroop Sirigiri

Hi Punya,

You could try, but if the source and target environments have different activation codes, it won't work, because of the IPP protection.

Punya,

When a solution, application or module is published to a platform they have the needed resources generated and deployed to the front-end server. 

When doing this via ServiceCenter you will see the steps that are taken everytime a module is published.

For more information on IPP: https://www.outsystems.com/homeIpp/IPP_Page.aspx

Punya Swaroop Sirigiri wrote:

Carlos López Santibáñez Jácome wrote:

Hi Punya


Do you mean to move between environments? If so you can do it by deploying your applications on lifetime, which you can access at yourenvironment.outsystemsenterprise.com/lifetime


If you need to take your code to a different developer URL, you can export the project as a OML and upload it to the other environment by clicking on the upper-left menu > Module > Export As > Save


And then Opening it again on the environment you want to pass it to. (Environment > Open Files)


Note that your code will be intelectually protected (the IPP error that will pop-up when you try to import the project to a new environment). You can remove the IPP by going to https://www.outsystems.com/homeIpp/IPP_Page.aspx and submitting you module/reason for approval. 


Hope this helps!

  - CLSJ


Hey CSLJ,


Thank you so much for the Response.

If I understand it right, I do not need to rebuild the module in an application when migrating to another server. Is that correct?

FYI,  As of now I am developing the app in enterprise's server. I would like to migrate it to another public server where the end customers do not have to VPN in. Does exporting the module as an OML file from enterprise's server and importing it into another server work?

If yes, Could you please describe the steps involved(Like IPP which you mentioned)?

I do not quite understand what is IPP.


Thank you so much!

Best Regards,

Punya Swaroop Sirigiri


In that case (where it is from enterprise to enterprise) you do not need to rebuild the component. Follow the steps above to export the module as an OML (if it is more than one module, I'd suggest downloading a solution which would migrate the application as well as all of its dependencies. You  can check out how to that over here). 

Once you have that file go to the IPP screen (https://www.outsystems.com/homeIpp/IPP_Page.aspx) and upload that file along with the destination's environment activation code (Which you can find at Service Center > Administration > Licencing) and submit it for review. 

The Outsystems team will review the request (and probably email you to the email provided on said page for additional information) and if approved will instal said OML or OSP in your new environment. Once the code is installed, all the code will be available the same as it was on the previous environment at the time you downloaded your OML. As Harlin said, the data you will either have to start from scratch, or download excel records from your previous environmnent to bootstrap it.


Hope this helps!

  - CLSJ

Carlos López Santibáñez Jácome wrote:

Punya Swaroop Sirigiri wrote:

Carlos López Santibáñez Jácome wrote:

Hi Punya


Do you mean to move between environments? If so you can do it by deploying your applications on lifetime, which you can access at yourenvironment.outsystemsenterprise.com/lifetime


If you need to take your code to a different developer URL, you can export the project as a OML and upload it to the other environment by clicking on the upper-left menu > Module > Export As > Save


And then Opening it again on the environment you want to pass it to. (Environment > Open Files)


Note that your code will be intelectually protected (the IPP error that will pop-up when you try to import the project to a new environment). You can remove the IPP by going to https://www.outsystems.com/homeIpp/IPP_Page.aspx and submitting you module/reason for approval. 


Hope this helps!

  - CLSJ


Hey CSLJ,


Thank you so much for the Response.

If I understand it right, I do not need to rebuild the module in an application when migrating to another server. Is that correct?

FYI,  As of now I am developing the app in enterprise's server. I would like to migrate it to another public server where the end customers do not have to VPN in. Does exporting the module as an OML file from enterprise's server and importing it into another server work?

If yes, Could you please describe the steps involved(Like IPP which you mentioned)?

I do not quite understand what is IPP.


Thank you so much!

Best Regards,

Punya Swaroop Sirigiri


In that case (where it is from enterprise to enterprise) you do not need to rebuild the component. Follow the steps above to export the module as an OML (if it is more than one module, I'd suggest downloading a solution which would migrate the application as well as all of its dependencies. You  can check out how to that over here). 

Once you have that file go to the IPP screen (https://www.outsystems.com/homeIpp/IPP_Page.aspx) and upload that file along with the destination's environment activation code (Which you can find at Service Center > Administration > Licencing) and submit it for review. 

The Outsystems team will review the request (and probably email you to the email provided on said page for additional information) and if approved will instal said OML or OSP in your new environment. Once the code is installed, all the code will be available the same as it was on the previous environment at the time you downloaded your OML. As Harlin said, the data you will either have to start from scratch, or download excel records from your previous environmnent to bootstrap it.


Hope this helps!

  - CLSJ

Hi Carlos,


Thank you. As of now, I just have licensing access for one server(The Enterprise's Server). Do I have to have licensing for another server where I am migrating to for this way to work?


Best Regards,

Punya Swaroop Sirigiri


Punya Swaroop Sirigiri wrote:


Hi Carlos,


Thank you. As of now, I just have licensing access for one server(The Enterprise's Server). Do I have to have licensing for another server where I am migrating to for this way to work?


Best Regards,

Punya Swaroop Sirigiri


In order for this method to work, yeah. But it sounds like you do not want to migrate it from one environment to another, rather than migrate the whole environment to another server. That is another different thing completely. 

If that is the case check this article out. However, before you start any migration I would strongly suggest both doing environment back-ups and contacting the Outsytems support team (which are excellent and will be of great assistance) at https://success.outsystems.com/Support in order for them to help you analyze your particular case and advice which route might be the best way to go.


-CLSJ


Hi Kilian,


Thank you for the info. 


Best Regards,

Punya Swaroop Sirigiri

Carlos López Santibáñez Jácome wrote:

Punya Swaroop Sirigiri wrote:


Hi Carlos,


Thank you. As of now, I just have licensing access for one server(The Enterprise's Server). Do I have to have licensing for another server where I am migrating to for this way to work?


Best Regards,

Punya Swaroop Sirigiri


In order for this method to work, yeah. But it sounds like you do not want to migrate it from one environment to another, rather than migrate the whole environment to another server. That is another different thing completely. 

If that is the case check this article out. However, before you start any migration I would strongly suggest both doing environment back-ups and contacting the Outsytems support team (which are excellent and will be of great assistance) at https://success.outsystems.com/Support in order for them to help you analyze your particular case and advice which route might be the best way to go.


-CLSJ


Hi Carlos,


Thank you. I will keep you posted on how it goes.


Best Regards,

Punya Swaroop Sirigiri


Solution

Hi Punya, now I understand your use case.

You have enterprise on-premise server that works behind firewall (corporate network only).

But you need public users accessing your mobile apps from the internet.


In that case, you just need to setup a new front-end server for your Test or Production environment, and place this front-end server outside your firewall. Buy a corporate domain and ssl for this new front-end server.

Setup a new zone in Service Center:
- InternalZone --> point to your existing front-end behind the firewall
- ExternalZone --> point to the new front-end outside the firewall


Before deploying your mobile app from Dev to Test/Production, change the default zone to ExternalZone first, so your mobile app will be deployed and published to this new front-end server.

After deploying mobile apps, change back default zone to InternalZone, so next deployment will be published in the InternalZone (behind firewall).


You may need to consult with Outsystems Support for detailed configuration.


Hope it helps.

Solution

Harlin Setiadarma wrote:

Hi Punya, now I understand your use case.

You have enterprise on-premise server that works behind firewall (corporate network only).

But you need public users accessing your mobile apps from the internet.


In that case, you just need to setup a new front-end server for your Test or Production environment, and place this front-end server outside your firewall. Buy a corporate domain and ssl for this new front-end server.

Setup a new zone in Service Center:
- InternalZone --> point to your existing front-end behind the firewall
- ExternalZone --> point to the new front-end outside the firewall


Before deploying your mobile app from Dev to Test/Production, change the default zone to ExternalZone first, so your mobile app will be deployed and published to this new front-end server.

After deploying mobile apps, change back default zone to InternalZone, so next deployment will be published in the InternalZone (behind firewall).


You may need to consult with Outsystems Support for detailed configuration.


Hope it helps.


Hi Harlin,


This is very helpful. If I understand it right, I do not have to rebuild the app again on external server right?


Thank you so much!

Best Regards,

Punya Swaroop Sirigiri

Yes, you just need to set default zone, deploy to Test/Production using Lifetime, reset back the default zone. Done.

(Outsystems might need to reconsider to include zone picker in Lifetime deployment. Might as well submit this idea)

You don't need additional license for new front-end server.

Also it will shared your Infrastructure's Activation Code.

There will be no issues with IPP.


You welcome.

Hey Harlin,


Thank you so much.

I am using service center in Development mode. How do I change it to Production mode? Could you please send me a Document which explains the steps involved from the development of the app till the launching of the app into the Play store using Outsystems?


Best Regards,

Punya Swaroop Sirigiri


Harlin Setiadarma wrote:

Hi Punya, now I understand your use case.

You have enterprise on-premise server that works behind firewall (corporate network only).

But you need public users accessing your mobile apps from the internet.


In that case, you just need to setup a new front-end server for your Test or Production environment, and place this front-end server outside your firewall. Buy a corporate domain and ssl for this new front-end server.

Setup a new zone in Service Center:
- InternalZone --> point to your existing front-end behind the firewall
- ExternalZone --> point to the new front-end outside the firewall


Before deploying your mobile app from Dev to Test/Production, change the default zone to ExternalZone first, so your mobile app will be deployed and published to this new front-end server.

After deploying mobile apps, change back default zone to InternalZone, so next deployment will be published in the InternalZone (behind firewall).


You may need to consult with Outsystems Support for detailed configuration.


Hope it helps.

Hi Harlin,


Thank you.

One quick question:

If I create a front end server outside the firewall of the company server, the front end server might be accessible to the users, but how would the data from the company server flow into the front-end server which I made public?


Best Regards,

Punya Swaroop Sirigiri

Punya Swaroop Sirigiri wrote:

Hey Harlin,


Thank you so much.

I am using service center in Development mode. How do I change it to Production mode? Could you please send me a Document which explains the steps involved from the development of the app till the launching of the app into the Play store using Outsystems?


Best Regards,

Punya Swaroop Sirigiri



That is on the "Administration" settings in Service Center.

J.Ja

Harlin Setiadarma wrote:

Hi Punya, now I understand your use case.

You have enterprise on-premise server that works behind firewall (corporate network only).

But you need public users accessing your mobile apps from the internet.


In that case, you just need to setup a new front-end server for your Test or Production environment, and place this front-end server outside your firewall. Buy a corporate domain and ssl for this new front-end server.

Setup a new zone in Service Center:
- InternalZone --> point to your existing front-end behind the firewall
- ExternalZone --> point to the new front-end outside the firewall


Before deploying your mobile app from Dev to Test/Production, change the default zone to ExternalZone first, so your mobile app will be deployed and published to this new front-end server.

After deploying mobile apps, change back default zone to InternalZone, so next deployment will be published in the InternalZone (behind firewall).


You may need to consult with Outsystems Support for detailed configuration.


Hope it helps.

Hi Harlin,


What would be the best way to go about getting to access my internal server(Behind the Firewall) from public server(Outside the firewall)?


Best Regards,

Punya Swaroop Sirigiri


Hi, sorry I've been busy.

Actually I've been using wrong terminology.

Everything actually behind a firewall, even public server/front-end.

But usually your network have multiple security level zone (eg: internet, intranet, extranet).

Your front-end server in public access zone still can connect to your database in your internal access zone.

I am not network administrator, so I don't know details about how to configure it.

You should consult with your network administrator and Outsystems Support to configure this.

Check this documentation:
https://success.outsystems.com/Documentation/10/Managing_the_Applications_Lifecycle/Deploy_Applications/Selective_Deployment_Using_Zones
https://success.outsystems.com/Evaluation/Security/Security_Configurations_for_On-premises_Deployments#Network-based_security

Hello Punya,

Its all depends on your Firewall setup /  configuration. One need to setup a port forwarding at the firewall. Based on the source IP ( in your case its the IP address of the public server) and requested port request will be forwarded to internal server on a specified port. 

There are lot of documentations available on the internet on how to configure various firewall. Hope this helps.


What would be the best way to go about getting to access my internal server(Behind the Firewall) from public server(Outside the firewall)?


Best Regards,

Punya Swaroop Sirigiri