Migrating from 2.6 to 3.12

Hi OD,

I’ve finally got my business case approved to upgrade from 2.6.4.951 to 3.12! However, to get it over the line, I have committed to upgrading one environment at a time. Risk mitigation and all that. We have a dedicated machine hosting OD and few enough tentacles that I can iterate through them manually, ditching the old one and installing the new one. The idea was to have the old server software running in tandem with a new server install on the same machine. This would be easier when it comes to firewall changes in that I don’t need to deal with all the red tape of getting new holes punched because I can just use the existing, opened ports. So, with our environments being DEV, SIT, UAT and PROD, I wanted to have the new server software handling DEV, confirm all our projects can deploy without issue into DEV through new tentacles, then gradually progress my way up through the environments.

So I’m testing out this approach on my local machine. I’ve installed 2.6.4.951 server and tentacle and am now trying to install 3.12 alongside it. But all I can get the installer to do is upgrade my existing server software.

Can I have both versions of the server running on the same machine? Or is my only option a “big bang” approach where I need to upgrade the server and all tentacles across all environments in one go?

Thanks,

Jay

Hi Jay,

Thanks for getting in touch! The answer to your question is, you can have 2 versions of Octopus (Server and Tentacle) running side by side, but it is a manual process, and not highly recommended (thus undocumented).

The blocking issue is the installer. It will detect an installed version and attempt to overwrite it. As the installer only installs the binaries for Octopus and not the services, you can ‘install’ the second version MSI on a different VM or computer, copy the files from the program files directory, and move them into a new directory on the existing Octopus installed server. You can then run the Octopus Manager and install your second differently versioned instance on the same machine. Be very careful with the bindings and ports so they do not clash. You will need new and unique ports so those holes will still need to be punched.

I could not recommend continually doing a data import or migration from 2.6 to 3.12 over an extended period of time, as it was not designed for this method, your changed projects will be altered from the backup, and it does not account for deleted data from initial import to final import. Were you mostly planning on starting ‘clean’ with no deployment history?

As for updating your Tentacles, Hydra can be run like a project, to specific environments. So if you want all of DEV Tentacles upgraded you can run Hydra only on DEV to save you the manual upgrade.

Please let me know if you have any questions or if I can assist in your game plan :slight_smile:
Vanessa

Hi Vanessa,

admittedly, I hadn’t properly considered your points on deployment history and the need for repeatedly synchronising the databases during a protracted upgrade process. Thanks for pointing those out. Also, piggybacking on the existing firewall configuration was key to my proposed approach and, if I need to deal with the red tape of getting that changed anyway, I think I need a less disruptive approach.

I think I might be able to form a convincing enough proof of concept by deploying each of our project types to our DEV environment from a new server install on my local machine. Then we’ll just have to bite the bullet and upgrade the “real deal” at an opportune time.

Thanks for your advice.

Jay

Hi Jay,

Glad I could help. I could probably estimate the time your data migration will take based off your Raven document size and server specifications if that will help you plan the migration for the appropriate downtime.
If you are interested I need to know:

  • Document count in Raven (using the Octopus Manager -> Browse RavenDB and the footer shows the document count)
  • Size of your Octobak files
  • RAM on your Octopus Server

Vanessa