One of the biggest challenges in the enterprise ecosystem is maintaining software versions. As new versions of software are released, support for older versions of operating systems tend to decrease. The upgrade path for new software versions usually results in the provisioning of new servers, mixed with a complex strategy to install and migrate to the new server.
When it comes to upgrading to a new K2 version (for example K2 Five) the process can be made more complex by customisations – including custom service brokers, assemblies and themes. Each customisation adds extra complexity to the mix – resulting in additional time and effort on top of the time taken to provision a new server.
K2’s release strategy advise that K2 works closely with Microsoft to ensure that its products are supported on the latest operating systems. However, with new releases, “the most recently released version of a Microsoft product and at least one older version will be supported. When possible, K2 will support more versions but may drop support for older Microsoft versions at the release of a K2 update.”
With respect to K2 Five, which was released in November 2017, support for Windows Server 2008 R2 was dropped. And with the release of K2 5.3 support for Windows 2012 (including 2012 R2) has also been dropped. This has left a lot of our customers with some challenges when it comes to planning their upgrade path.
In this article we look an alternative approach to upgrading K2 – the in-place Windows Server upgrade.
The Normal Approach
Many customers who are running K2 4.7 or earlier have K2 installed on servers running Windows Server 2008 R2. The typical upgrade approach for these customers who want to upgrade to K2 Five involves provisioning new Windows Servers (e.g. running Windows Server 2016 or 2019), and then installing the current K2 version (e.g. K2 4.7) on these new servers before upgrading to K2 Five. If you have an older version than 4.7 this can involve multiple upgrades.
This upgrade approach also involves making a copy of the K2 system database so that K2 installs and upgrades against the existing K2 solutions (as all forms, SmartObjects & workflows are stored in the K2 database).
Naturally the infrastructure team will also need to get involved in this process to ensure any K2 related firewall rules are maintained for the new servers and that DNS entries are updated.
If there any other K2 customisations, such as custom themes or brokers, the related files must be physically copied to the new K2 servers. If you have SharePoint integrations, then there is another set of complications to consider with respect to server certificates used for authentication.
For a production system upgrade, there will likely be a substantial outage while the upgrade is performed to ensure users are not using K2 solutions connected to the “old” system database.
An alternate approach
In-place windows server operating system upgrades are something that most server administrators have avoided in the past, and usually with good reason as they have not always delivered reliable results. However, Microsoft has provided a supported upgrade path for most Windows servers (see How to In-Place Upgrade Windows Server 2008 R2 to Windows Server 2019).
The main concern with performing these in place upgrades is the impact is can have on the applications installed on that server, in our scenario – K2. We wanted to know if it was technically possible to perform an in-place upgrade from K2 4.7 on a Windows Server 2012 R2 operating system to K2 Five (K2 5.3) on a Windows Server 2016/2019 server. If it is, then it is possible to avoid a lot of the pain and time that comes with the normal upgrade approach.
How did we do it…
We started with an application server running Windows Server 2012 R2 and K2 4.7 as a base line. The other components such as SQL database, exchange server and domain controllers were on their own respective server. This setup mirrors the best practise that exists in most enterprise environments.
Before this upgrade took place, we took adequate backups and restore points. You never know when a restore is required.
The in-place operating system was performed first. The process was simple and intuitive:
- Insert the media disc and run the setup via windows explorer
- When prompted, select the option to get the latest updates
3. Provide the next supported operating system key
(As we were running Windows Server 2012 R2 datacentre, we needed to provide the Windows Server 2016 datacentre key.)
4. Select the desktop experience
5. Accept the licence agreement
6. When prompted, select ‘ keep personal files’ option
7. You might need to wait for updates to be downloaded
8. Once the system has finished checking for any upgrade issues – click the confirm button against any warnings
9. Click Install
The updates will be download and installed. I found at some stage the update screen stopped displaying the current progress value and appeared to hang. A server reboot seemed to fix this issue and the updates continued to process.
Once Windows Server 2016 was installed and server loaded for the first time, the server required one more reboot. At this point, you have Windows Server 2016 and K2 4.7. It is wise to test that your K2 applications run.
If you wish to upgrade to K2 Five, I suggest this is a perfect time for a backup / restore point.
Upgrading to K2 Five (K2 5.3) follows the same simple and intuitive upgrade path. The minor exception is there is a requirement to uninstall SSSRS and SharePoint for 2010 integrations before the upgrade is started – this can be done via the K2 setup in the start menu.
The K2 Five installer files will need to be extracted and when run will warn you that you need to download and install Net Core 2.1.7.
Once Net Core 2.1.7 is installed and a server reboot is performed, right-click run-as-administrator on the K2 Five setup.exe to commence the upgrade. The K2 upgrade will require you to interact with the installer program in order to download and install some pre-requisites and lastly, some repairs.
After some time, you should have all components marked as green
The K2 configuration Analysis tool will run afterwards, checking for invalid configurations. We experienced a false error on the K2 Configuration Analysis tool screen with the ‘K2 application Pool Account Permissions check’. This can be safely ignored – just click next if this is the last error.
If all went well, you should get a success message.
At this point, it is advisable to test the K2 solutions and test the new and exciting features that K2 Five brings you.
If you feel like you want to be more adventurous – the next challenge is to upgrade to Windows Server 2019 using the same method as you did for Windows Server 2016 upgrade.
It is important to consider the following to see if this approach will work for you.
- In-place system upgrades are not currently supported on Windows-based Azure VM’s
(Refer to https://support.microsoft.com/en-au/help/4014997/an-in-place-system-upgrade-is-not-supported-on-windows-based-azure-vms).
- You should review what operating system type you have and check this against the supported operating system paths (refer to https://docs.microsoft.com/en-us/windows-server/get-started/supported-upgrade-paths)
- Additional analysis may be required to check installed applications and roles are compatible with the operating system upgrade (refer to https://docs.microsoft.com/en-us/windows-server/get-started/server-role-upgradeability-table)
There has been an issue identified with the way that new versions of windows save the AM/PM part of date & times (i.e. from “a.m” to “AM”). This can negatively affect K2. You can validate if you are affected by this issue by running a query against the Server.ProcData table – searching for any DateTime values using the a.m./p.m. format. It is recommended to log a support to K2 before doing the upgrade, so they can provide guidance notes.
The last and final point is to stress the importance of running the setup and installer using the ‘run as administrator’ feature. The upgrade requires to be run in this elevated mode to install and update K2 assemblies on the server. Failure to use the run as administrator will result in failure and a broken K2 environment.
Let us help you…
At K2, we have a passion for K2 and have a strong desire for our customers and clients to succeed. Pease reach out if you feel this issue is troubling you and your organisation, so that we may help you resolve and move past these pain points.
Book a call to find out more about how K2 can help with low-code digital process automation which will allow you to build faster and automate smarter or alternatively Play with K2.
This K2 trial experience provides you with 30 days of unlimited access to K2 Cloud so that you can evaluate everything the platform has to offer.