Hi @Bryan @SSabnss & @matteo.fiorillo1586365319990
Thank you for raising such a good topic of discussion. Your views and opinions have been really helpful and created some healthy conversations within the @MatillionProductTeam. However, we would like to call on you, and the rest of the community for some further assistance.
We have begun working on a "Best Practices" document and would love to have your feedback as to whether this would assist you with your upgrade paths or if there is further information you would require. We will then look to have an official article added to our documentation site.
Matillion Upgrade Options - Pros and Cons
Matillion provides software as a Machine Image which leads to the creation of one or more Virtual Machines running in AWS, Azure or GCP.
Upgrades are offered both as:
- New RPM packages which can be applied as “in-place” upgrades
- New machine images and migration support
Both of these methods have some advantages and disadvantages.
All software upgrades are inherently risky. Matillion integrates with over 100 external services which are changing all the time - improvements and fixes for the latest updates often risk causing issues with older versions of systems and/or services, therefore there is both a need to upgrade and a risk in doing so.
Your attitude to risk should steer the upgrade path and the effort put into it.
1.In place Upgrade
Method: YUM update over SSH or Update Software from the Matillion UI
Pro: Can be done via the UI by a non-specialist. The RPM upgrade is performed in the background and the service restarted.
Con: There is no automatic backup.
You should take backups (from within Matillion or another method) of the VM so you can recreate it if the upgrade causes issues. You should test restoring a working system from that backup too.
Pro: Does not require SSH access to Matillion Virtual Machine
Con: In-place upgrade cannot always be used. For example, moving from Amazon Linux to Centos is an OS change - that can never be offered as an in-place upgrade.
2.Create-New and Migrate
Method: Launch new Virtual Machines and migrate the workload to them. The migration can use the Matillion UI (Server Migration Wizard, or Export/Import tools) or the API - although using the API is quite involved it can be customized and made repeatable.
Pro: There is no need to back up the old infrastructure. Once you verify your workloads work on the new software, you can enable the scheduling of the new infrastructure and remove/retire the existing infrastructure.
Con: System modifications are not preserved, e.g. JVM settings, changes to JDBC settings. The user configuration is also not migrated.
*Some of the items not migrated from the UI can be done from the API, but not all.
Pro: You can test out the new versions over a period of time while the old software is still running production jobs.
Con: Requires additional effort from users to maintain a pre-prod environment and perform testing (although this is good practice!)
3.Best Practices
- Based on the information in the above sections, decide the appropriate update method and frequency for your situation
- Test and verify your chosen update method before implementing on your live server(s)
- Ensure that you have a robust test strategy so that after updating the Matillion software you'll quickly know if there are any problems
4.Best practices if you choose to use an In-Place upgrade
- Make sure you have taken a backup prior to making any changes
- Make sure you are able to quickly restore from the backup in the event of any problems
5.Best practices if you choose to use Create-New and Migrate
- Ensure you have a working and tested migration strategy for features which don't get automatically migrated (including non-standard JDBC drivers, git branches, local user configuration, custom licenses, SSL certs)
- Ensure that your new server is given the same cloud privileges as the original, including feature access rights and firewall rules
- If you are relying on any OS customization (e.g. you have added libraries), ensure that you can replicate those customizations on the new server
- If you rely on such considerations, consider creating your own AMI based on ours with your customizations “baked in”. Then each release, re-make your AMI from our latest one and test. This could also be used to ensure drivers, user configuration, and so on are “baked in”.
I look forward to hearing your thoughts and opinions, as with your input we can ensure our users have a clear route to upgrading.
Thanks, Joe