I have read this nice Outsystems article about how you can (using a Load Balancer and at least 2 FE-servers) deploy to a production environment with any downtime.
But it only describes the process using Service Center and .oap/.oml or .osp files.
Does anyone know if Lifetime could be used instead? (as that is the 'default' deployment engine and would be involve fewer manual steps I assume)
Hi, Ravn.
You can use Lifetime to publish your applications both in scenarios where there is only one server in the environment and in scenarios where there is more than one server in the environment.
In your Lifetime you will point to the server of each environment that you have and is responsible for the Deployment Controller service, which must have only one server responsible for this in each environment.
Remembering that when installing the other servers in the environment, all the others will point to the main one and will use the same database access settings, for example, as the main one.
I hope I have helped you.
Luiz Alberto Jr.
Hi Luiz,
Thank you very much for your reply. I can see that a "typo" has snuck into my original post:
with any downtime -> That should have read -> without any downtime
The core of my question is if it is possible to use Lifetime in the "Zero downtime" deployment as described in the article referenced? - Because currently that process is only described using Service Center and not described using Lifetime.
That's right, using more than one server in the environment it becomes possible to use the update procedure using the zero downtime mode. I can confess that it exists (downtime), but it is minimal in this model.
Let me explain to you how to update. First, and it's even recommended and described in the documentation, you upgrade Lifetime.
Next, you update the Development environment. At this point you can still take Quality applications to Production as both environments are still on the same version (the previous one).
Next, you update the Quality environment. At this point you can take applications from Development to Quality as both environments are in the same version (the new one). It's an important point because there may be a breakage and you need to fix it in Development and take it to Quality to ensure that it won't impact the new version in Production.
Next, you update the Production environment by applying the Zero Downtime mode; and, if necessary, takes the Quality corrections to Production when everyone is on the same version (the new one).
Publishing applications while updating the environment is not recommended.
Thank you for your answer, but that's not totally what I'm trying to find out. Let me try it in another way. Inside the Outsystems Documentation referenced in the question - can this step 4 (shown below) be replaced using LifeTime?
Because otherwise you will need to keep both "Solutions" in Service Center up-to-date and since the rest of the deployment is done using LifeTime (all the way to all environments) - then it seems non-optimal and more manual to suddenly have to use Service Center for deployment.
I was thinking that it might be possible to do something like this:
Done
So instead of having to meddle with Service Center - then the same process can be completed with LifeTime...? But that's just not part of the documentation of the process... But maybe that's because the above is not possible or recommended...?
Hi,
In lifetime if the target environment has more than 1 front end server you will automatically without downtime.
Just deploy the plan, lifetime takes care of it.
Regards,
Daniel
You can check here in more detail how that works (and the screenshots in this document are from Lifetime):
https://www.outsystems.com/evaluation-guide/how-does-outsystems-handle-deployment-and-staging/
You can see that the "zero downtime" isn't related with the tool that you use (Service Center or Lifetime), but with the OutSystems Platform Server.
Hope this can give you a little more context about how it works.
Best regards,
Ricardo Pereira