Discussion
Timothy Leavitt · Oct 19

Upgrading InterSystems software

Hello community! I'm working on an internal innovation effort at InterSystems considering our documentation/resources around upgrades. As part of this, I'd love to have your answers to any/all of the following questions, either via comment or (if you prefer your answers to be more private) direct message.

Thanks in advance!

 

What InterSystems products + versions are you running? ($zv is ideal.)

What makes you decide to upgrade?

What are your blockers to upgrading?

What is your process for evaluating and planning a possible upgrade?

What documentation resources do you use?

What gaps/issues do you see in our existing documentation around upgrades?

What would make your InterSystems software upgrade process better?

What has made an upgrade fail?

When have you had to roll-back?

4
0 264
Discussion (12)3
Log in or sign up to continue

Seeing as I just completed a production upgrade yesterday:

  • What InterSystems products + versions are you running? ($zv is ideal.) 
    • IRIS for Windows (x86-64) 2022.1 (Build 209U) Tue May 31 2022 12:16:40 EDT [Health:3.5.0]
  • What makes you decide to upgrade?
    • New features + security fixes
  • ​​​​​​​What are your blockers to upgrading?
    • ​​​​​​​Bugs in new releases + being limited to the non-CD releases due to current configuration
  • What is your process for evaluating and planning a possible upgrade?
    • ​​​​​​​Install in our NPE and use the new version, run tests against the most heavily used elements
  • What documentation resources do you use?
    • ​​​​​​​Release notes + any upgrade guides that explicitly call out versions you can/can't upgrade from
  • ​​​​​​​What gaps/issues do you see in our existing documentation around upgrades?
    • ​​​​​​​It's a small thing, but a link to the release notes from the online distribution page on WRC would be greatly received alongside the release in question.
  • What would make your InterSystems software upgrade process better?
    • ​​​​​​​One step that always bothers me is the need to do a recompile post upgrade, as it's not been made quite clear to me at what stage this needs to be done when working in a mirrored environment. This could be a step handled by the installer given that it should happen with any major version change.​​​​​​​
  • What has made an upgrade fail?
    • Not to hammer on at the same point, but I did have an upgrade "fail" due to a miscommunication about if the version change was major or minor, and we hadn't run the recompile of all namespaces.
  • When have you had to roll-back?
    • Never had to fully roll back, but have had to fall back to a secondary mirror after noting the upgraded mirror was having issues (see above). Otherwise we aim for a "fix forward" approach to issues found following an upgrade.

@Julian Matthews thanks for the super quick reply!

A follow-up question - do you tend to do maintenance release updates or just jump major versions?

Mainly major version jumps unless something is problematic in the version that has ended up in our production environment.

Last jump was 2019.1 to the current 2022.1 and I'm blaming the pandemic on no upgrades between those two releases smiley

We have put our upgrade on pause right now due to constraints, but will be starting it back up and hopefully upgrading by March.

What InterSystems products + versions are you running? ($zv is ideal.) We are currently running HealthShare Health Connect 2018.1.3

Cache for UNIX (IBM AIX for System Power System-64) 2018.1.3 (Build 414U) Mon Oct 28 2019 11:24:02 EDT

What makes you decide to upgrade? Push to move away from AIX and more towards Red Hat for costs, support, additional enhancements and options available to us in IRIS vs 2018.1.3

What are your blockers to upgrading? New network/security policies, new hardware, new OS

What is your process for evaluating and planning a possible upgrade? 

  • What is the benefit to upgrade
  • What does the new version offer and benefits to the Medical Center
  • Where is the Medical Center going
  • What new requirements/policies do we need to address
  • What is the EOL/EOS for the version we are on

What documentation resources do you use? Release notes, installation requirements and guide

What gaps/issues do you see in our existing documentation around upgrades? While the release notes is nice, but more explanation of what is changing, screen shots, etc...

What would make your InterSystems software upgrade process better?

  • Lessons Learned Guide to Upgrades
  • What we should be on the lookout for
  • Notes on the individual changes to be worked
  • Dedicated InterSystems contact that could help with any questions or guide us on the upgrade.

I've added two more questions at a colleague's suggestion:

What has made an upgrade fail?

When have you had to roll-back?

Probably our biggest pain point related to InterSystems software upgrade, and one we have to try and make sure sites using our Deltanji source code management tool are aware of, is that the procedure can result in class dictionaries of remote databases being upgraded to a dictionary version that the instance hosting the databases cannot handle.

Our Deltanji documentation now includes this paragraph in the section about InterSystems platform upgrades:

Before upgrading an InterSystems IRIS, Caché or Ensemble instance we strongly recommend that you first disable all ECP connections the instance makes to other instances. Leave these connections disabled until after you have completed the upgrade, including execution of any post-upgrade steps recommended by InterSystems such as the recompilation of code in all namespaces. These precautions should prevent the upgrading instance from inadvertently upgrading class dictionary entries and routines on remote instances which may still be running an earlier InterSystems platform version.

This is a good point. Fortunately, dictionary version updates are few and far between these days. (They used to happen all the time.)

I think docker is ideal for upgrading - just change the line of the docker image or just use the latest. 

It may not be the case for production, but for development, docker is a no-brainer IMHO.

@Evgeny Shvarov agreed - although it's good to be sure that you're developing on the same version that you're targeting in production.