Hi,

Good Day!!

We have the requirement to have two applications to be deployed to two different production servers in the same environment.

For example : Application 1 code has to be deployed to Production 1 server. Application 2 code to Production 2 server. Development and Quality servers will have code of both applications.

Please help me with the below.

How can we manage deploying Application 1 code from Quality to Production 1. Is there any affect on database entities in such server setup? 

Is it possible/recommended to have the above set up?

What are the risks/challenges of having the above server set up.


Thanks,

Saicharan

Hi,

CMIIW, if you using lifetime, you cannot bypass what already specified by lifetime environment.

But, you can create solution on dev from service center, then deploy that solution on the production 2.

Solution

Hi sai charan,

Let me just start by clarifying some OutSystems terms, so we can all be on the same page:

When you talk about Development, Quality and Production, you are talking about OutSystems environments. An environment can have multiple servers, all using the same environment database: different environments = different databases

An OutSystems infrastructure is a set of environments under the same licensing contract (the number of environments possible, and the characteristics of each is part of the licensing deal).

LifeTime manages the entire infrastructure, allowing you to deploy your applications between any two environments. It is most useful when your environments form a pipeline (for instance Development->Quality->Production).

Now, do you want your two applications to be installed (a) on two different servers of the same environment?, or (b) two different environments in the same infrastructure?

For (a) you can look into Selective Deployment using Deployment Zones, both your applications will be using the same database and tables (they will be able to share data) but please not it is not available for Cloud environments managed by OutSystems.

For (b), provided your license allows it, you can add a Production 2 environment to your infrastructure and set it up after your original Production 1environment in LifeTime (something like Development->Quality->Production 1->Production 2). This allows you to deploy from Quality to either (although LifeTime will always default to deploying to Production 1). If each of your applications is deployed to a different Production environment, they will be using distinct databases.

Hope this helps

Solution

Hi Jorge,

is there any possibility of using different database servers for the different production environments? for example as u mentioned, there can have prod1 and prod2 environments. can prod1 connect to dbserver1 and prod2 connect to dbserver2? or both should connect to single db server?

this is in consideration of, two completely independant applications to be running on two diff prod env using same lifetime.

Hi Jomon,

I think this should be possible. We have a production server running in a DMZ facing the internet, that has a seperate database from our backoffice production servers, which are only accessible via the intranet.

i c.. means it is possible..

Thank you very much Kilian.. :)

Hi Jomon,

Do note that we have an on-premise installation, I don't think you can do this in the cloud (PaaS). Also, if you think my reply was the answer to your question, please mark it as solution, thanks :).

Kilian Hekhuis wrote:

Hi Jomon,

Do note that we have an on-premise installation, I don't think you can do this in the cloud (PaaS). Also, if you think my reply was the answer to your question, please mark it as solution, thanks :).


Thank you Kilian.. noted on onpremise set up.. yes aware of outsystems cloud does not allow this.. by the way, i dont see option to mark as accepted solution.. i will explore and see how to do it.. 

It's the "MARK AS A SOLUTION" button next to my name, on the right side of the post :).

something is wrong.. I cannot see "Mark as solution" button.. see my screenshot..


Ah, I see now, you're not the original poster of this topic, never mind :).

Hello All,

Kilian Hekhuis wrote:

Hi Jomon,

Do note that we have an on-premise installation, I don't think you can do this in the cloud (PaaS). Also, if you think my reply was the answer to your question, please mark it as solution, thanks :).

Yes, we can have multiple Prod environment in PAAS every environment defined as productive has is own database.


Best regards,


As far as I know you can have multiple production environments in cloud infrastructure, and each production environment has its own database.

Only non production environments use a shared database.

Also publishing from life time should not be a problem. There is a menu option available to switch the target environment. 


Hi All,

Can I have following setup in my On-Premise installation?

Zone 1 -> Database Server 1

Zone 2 -> Database Server 2

Application deployed on both the zones will be same. The separation is for the users using it. Please refer the image attached.

Thanks,

Akshay 




Hi Akshay,

In OutSystems an environment only can have one main OutSystems database, even if the front-ends are split between multiple deployment zones (refer to my posts above).

If you want separate databases OutSystems databases you will have to have multiple production environments, and deploy the same applications on both.

Hope this helps.

Jorge Martins wrote:

Hi Akshay,

In OutSystems an environment only can have one main OutSystems database, even if the front-ends are split between multiple deployment zones (refer to my posts above).

If you want separate databases OutSystems databases you will have to have multiple production environments, and deploy the same applications on both.

Hope this helps.

Thank you, Jorge. Does this mean separate license as well?


No you can have multiple production environments in the same license, we have several customers with multiple production environments.

Daniël Kuhlmann wrote:

No you can have multiple production environments in the same license, we have several customers with multiple production environments.


Thank you, Daniël.

This is what I have right now - Dev, Test, Prod and Lifetime.

So, if I understand correctly I can set 2 Production environment pointing to separate databases under same license. Would I be able to deploy to both these Prod Environments using lifetime? Thanks again.

No, what I tried to say is we have customers with DEV, TEST, Production, Production2 and LifeTime.

They have a so-called OutSystems Silver license - External & Internal.

2 production environments with the intention to use one external and one internal.

Each production environment has its own database, and can be configured with different number of front-end-servers.


Akshay Puri wrote:

Daniël Kuhlmann wrote:

No you can have multiple production environments in the same license, we have several customers with multiple production environments.

Nothing stops you from having more Production environments in the same License, but the number of (Production) environments is limited by your specific license.

Thank you, Daniël.

This is what I have right now - Dev, Test, Prod and Lifetime.

So, if I understand correctly I can set 2 Production environment pointing to separate databases under same license. Would I be able to deploy to both these Prod Environments using lifetime? Thanks again.

You cannot deploy to both Production environments simultaneously, but you can deploy separately to each of them, as explained above.


Thank you Jorge and Daniël. I think I am clear now. Basically my license should look like below to achieve this:

  1. Dev
  2. Test
  3. Prod1
  4. Prod2
  5. LifeTime