I was wondering what is typical DR scenario for OD?
What I’m thinking about is this:
1 OD environment in Production and 1 in DR.
2 servers + highly available DB in each.
Let’s say I have DB backups in Prod. Do I restore them in DR? If so, how can I configure my DR servers to act as Prod servers when needed?
Thank you for any information you can provide as I was unable to find any DR related information in online documentation.
Thanks for reaching out. We have a High Availability solution built into Octopus that you can use. You’ll basically have Multiple Octopus servers hitting the same DB (which could be mirrored to provide high availability also on the data side).
You can learn more about this over here: https://octopus.com/blog/octopus-high-availability
I just wanted to jump in here. High Availability is a solution for having Octopus available at all times, but it is not our DR strategy, nor is the HA license required for DR.
To setup a DR Octopus Server, what you are doing with the DB side is great, but if you lost your OD server itself you would not be back up and running in a very short time frame, like I think you have determined
The solution is to have an Octopus instance on another server where the service is not running. This instance would be connected to the DB server (or quickly changed to another via the connection string in the configuration) and you would want it to take the place of your production Octopus. To do this you need to update this instance to have the same node name as your production instance. This can be achieved by the following command after installation of another instance:
Octopus.Server.exe configure --serverNodeName=<SameNameAsPrimary>
What this effectively does is make this server in effect the same as the production server, and able to pick up where it left off. The key here is that it cannot be running or active while the production server is, as it will try and do everything the production instance is and cause all sorts of issues. But as a DR solution it allows for instant and optimal cut over.
There are a few processes you will need to put into place. There are files on disk for task logs, artifacts and packages that will need to be backed up. A daily sync between the production and DR server may be deemed enough of a recovery option.
With all of that configured you should have the ability to have a working Octopus instance back up and running within 5 minutes. As DR nodes cannot be running or online at the same time as a production instance, it does not consume any of the instances defined by each license (3). So you can have 3 instances and a DR instance in waiting without breaking the EULA.
Please let me know if you have any further questions. I will try to get a documentation page up, it is planned we just have not had the time to spare.
Thank you Vanessa. Just to clarify the above scenario.
Let’s say I have 4 OD App Servers. 2 are my primaries connected to the DB1 in Production data center.
Where do I join the other 2? Do I join them to the same database with OD services off and then use the mentioned command when I want them to act as primaries in case of a DR scenario?
Also, after main data center is ready to be the primary again; how do I remove from DR OD servers?
Thank you for clarification.
To confirm, if you are wanting to have 2 App servers connected to a single database then this will require a High Availabilty license.
To answer your questions (and to clarify my instructions), that command is only run once, on setup. The act of starting the service will then make the two DR servers act as the primaries. And then turning off the service will stop them once the main data center is ready again. You are in effect setting them up as mimics of the server they are DR for. That one command means they will not have their own record as nodes in our database, but take over from existing nodes when they are actively running.
Hopefully I made that clearer and not worse.
This issue has been closed due to inactivity. If you encounter the same or a similar issue and require help, please open a new discussion (if we asked for logs or extra details in this thread, consider including them in the new thread). If you are the creator of this thread and believe it should not be closed let us know via our support email.