This is a series of blogs that will go through the vendor support lifecycles for the main technologies that we use and what options and approaches for upgrade paths there are available.
We’ve covered Microsoft’s technologies in the previous two posts, let’s now look at other technologies that Software Solved use in our solutions.
Web Technologies
The availability of vendor support for web technologies is heavily tied to browser vendors and those vendors’ support lifecycles for their browsers. The major browser vendors are really good, if you’re interested in all the detail, in communicating their support for each element of the various web standards around HTML and CSS. Support for rendering legacy markup often continues for many years. So, in these examples, the desire to upgrade to a newer version is usually dictated by the benefits associated with those newer features rather than a push to upgrade due to a feature no longer being supported by a browser. Exceptions to this rule are linked to the system relying on features of an older technology such as Flash, Silverlight or Internet Explorer[1], where considerable work is required to bring a system up to date with current support technologies.
JavaScript/TypeScript
The JavaScript language itself is like other web technology standards, i.e. ‘support’ is linked to browser support and there is copious information on standards support available from browser vendors, and support for older standards is pretty good. Again, unless you’re relying on some browser specific functionality like something that only works in Internet Explorer, in which case work is often required to enable compatibility with modern browsers.
JavaScript libraries are, on the other hand, a different story. These are typically versioned and have some form of support lifecycle much like server technologies like .NET. The major libraries like jQuery will only have support and bug fixes for the most recent releases and the risk around security issues in frontend libraries isn’t to be underestimated.
TypeScript, the programming language that extends JavaScript and provides type information to improve compile-time quality checks, is something that we use a lot at Software Solved. Even though TypeScript is compiled into JavaScript before it is run in production, support is still very important to the health of a system that uses it. A new TypeScript version is released every quarter and these releases include both new features and well as bug fixes. If you were to stay on an older version of TypeScript for a long period of time and hit up against a blocking bug, the only way to get around that bug is to upgrade to a version that fixes it, and that could be quite disruptive to your system, especially if you are upgrading multiple versions in one go. So, in this scenario, it is important to plan in regular updates to TypeScript in your system roadmap. Not necessarily every quarter, but it shouldn’t be left for several years before updating.
Databases
We’ve covered Microsoft databases in a previous blog post, and how the support lifecycle works for them, so in this section I’ll cover the vendor support options for the two-leading open-source databases, that you might use in your system as an alternative to Microsoft SQL Server.
MySQL
If you’re using MySQL as your database, you will most likely be using one of two variants: Oracle MySQL and MariaDB. Each version of MySQL has its own support lifecycle so it is worth being clear which version you’re running. So often, we hear ‘MySQL’ and that’s that, but supported versions do vary between the vendors and you do want to be on a version that will receive security fixes at the very least.
Oracle MySQL support covers the following versions:
Version | Support Until |
5.6 | Feb 2021 |
5.7 | Oct 2023 |
8.0 | Apr 2026 |
MariaDB is community supported and they have the following versions still in support. Note that version numbering in MariaDB followed the MySQL scheme up to version 5.5, but after that they used version 10.0 onwards.
Version | Support Until |
10.2 | May 2022 |
10.3 | May 2023 |
10.4 | Jun 2024 |
10.5 | Jun 2025 |
So many systems will still be on quite old versions of MySQL, as they provide a stable, known experience. You do have the weight up the risk of running a older version and the exposure to unfixed security issues, versus the costs of upgrading and any regression tests you need to perform.
PostgreSQL
The PostgreSQL global development group provides support for major versions of PostgreSQL for five years after its initial release, with a new major version released about once per year. Bug fixes and, if needed, security fixes are scheduled for release as a minor release every three months, with critical bug or security fixes released as and when they are available.
Version | Support Until |
13 | Nov, 2025 |
12 | Nov, 2024 |
11 | Nov, 2023 |
10 | Nov, 2022 |
9.6 | Nov, 2021 |
Again, like MySQL, lots of systems that run PostgreSQL are likely to be on older versions, and the PostgreSQL global development team does provide a good period of coverage for patches for security issues and fixes for high impact bugs. However, five years can go by very quickly, especially with internal line-of-business systems where you’ll be looking to reap the benefits of that initial system development investment. So, keeping on a supported version of PostgreSQL really must be on your roadmap. Which is a great segue into the next section.
Importance of keeping systems maintained and updated
All systems are built from a combination of technologies and it is important to plan upgrades to these technologies into your system roadmap so that you aren’t confronted with either a significant major version upgrade to address an urgent security or compatibility issue, or just a system that is reliant on end-of-life technology that can’t be fixed.
Some of the upgrades I’ve covered in the various technologies above can be trivial, if a regular programme of updates and upgrades is kept. Some are more involved, we can’t escape that fact, but still cheaper and less risky than a complete system replacement in a lot of cases.
The cost of maintaining a system reliant on older technologies will increase over time and you could get to the situation where your organisation is held back by technical constraints in a system you are reliant upon, without a clear way forward. As technology ages, the availability of people or outsourced organisations, to support that technology reduces as people retire or reskill in newer technologies.
Staying on up to date technology is something that must be factored into the long-term health of a system and if ignored can result in costly replacement or rewrite projects to have a system that fully enables and supports your organisation again.
Internet Explorer is a browser that Microsoft only provides support for in the case of backwards compatibility. One shouldn’t use it for day-to-day web browsing and Microsoft recommend using Edge for web browsing. See this page for more details https://docs.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge