Part 1: Why Combodo has decided to launch a Long Term Support release of iTop
With iTop 2.7 we introduced our first Long Term Support (LTS) which is a release that Combodo plans to support for several years. Following the end of support of 2.7, a later release of iTop will replace it as LTS in order to guarantee a stable and long-term support to our customers.
After 2 years of use of our first Long Term Support release by some of our customers, we would like to share with you our experience of the transition to the combination between LTS and STS. In this first article we will explain the reasons that led us to create this Long Term Support release.
In the next two articles, we will see how the Combodo teams organized themselves to deliver this release as well as our return on experience in the perspective of the next iTop LTS.
Long Term Support : what does that mean?
According to Wikipedia, the definition of a Long-term support (LTS) release is the following:
Long-term support (LTS) is a product lifecycle management policy in which a stable release of computer software is maintained for a longer period of time than the standard edition. The term is typically reserved for open-source software, where it describes a software edition that is supported for months or years longer than the software’s standard edition.
LTS applies the tenets of reliability engineering to the software development process and software release life cycle. Long-term support extends the period of software maintenance; it also alters the type and frequency of software updates (patches) to reduce the risk, expense, and disruption of software deployment, while promoting the dependability of the software. It does not necessarily imply technical support.
Why a Long-term support release for iTop
iTop releases used by our customers
- 40% of the iTop releases had been installed by our customers more than 2 years ago
- We had to maintain 7 different releases of iTop, including 6 major releases!
With an increasing number of customers, it became difficult to provide a service of quality in good conditions.
Two types of customers are emerging:
- Customers looking for stability by staying on a release of iTop that suits them
- Customers looking for new features using the latest release of iTop
We provide both support services (including application maintenance), integration and specific development services for our customers. Prior to implementing a release management policy, we were supporting any iTop releases for our customers. Thus the teams had to master the specificities of a range of different releases, which keeps growing!
- iTop 1.0 features are completely different from those of iTop 2.6, so it takes more and more time to bring new employees up to speed.
- Moreover, maintaining environments adapted to iTop releases so different in terms of system requirements (PHP, MySQL…) has become too complex.
In order to keep the subscription price reasonable for our customers and the quality of service at the highest level, we had to focus on what we knew best. We had to focus on the latest releases of iTop and system platforms.
We have decided to switch to a LTS / STS release management: This means that a Long-term support release supported for several years is followed by several STS (Short Term Support) releases supported for a shorter time. In other words, at any given time we will have a limited number of releases to support.
You can find iTop releases support timetable on the official documentation. As of July 2022, this schedule is as follows:
The LTS / STS model meets our customer typologies mentioned above:
- The LTS correspond to customers looking for stability
- While the STS are intended for customers looking for new features, sometimes at the cost of significant changes
It encourages us to consider more disruptive features (like changing the console interface of iTop 3.0.0, which is an STS) while keeping stability for customers who remain on the LTS release.
Scope of a Long-term support release: tough choices
For a long time, the policy in terms of content of iTop releases has been the following:
- New features are introduced in major releases (those ending in “.0”, for example: 2.5.0 or 2.6.0)
- Some new features are still integrated in the first minor release (release x.1)
- All other minor releases contain functional or security fixes only
- Minor releases have to maintain API and interface compatibility to guarantee extensions smooth running
For this first LTS, we considered that we had to meet several objectives:
- Stability: a release that has to remain installed for a long time in a customer environment must be stable (no shutdown, no blocking defects…). Consequently, the enhancements included shouldn’t impact the code base too much.
- Performance: as the volume of data managed by iTop increases over the years, it is important to have a high-performance LTS version
- Adjust existing features (attachments, user portal, log, …) to avoid having to make functional updates during the LTS life
- Provide features that cannot wait for the next major release: requested features not yet implemented, but which will be useful to customers adopting the LTS release over its lifetime
- Add internal support tools to ease maintenance
- Facilitate upgrade to maintenance releases: customers adopting the LTS release should be able to install security fixes easily with minimal downtime
As you can see, the work to be done being very important, we had to make some difficult choices to respect the release date we had set!
The world is moving fast
iTop is coded in PHP and uses MySQL (or MariaDB) as database.
PHP support calendar has clearly speed up in the last few years with a two-year support period for each major version, followed by one year of security updates. Here is for example this schedule in May 2022 :
As a comparison:
- PHP 5.5.0 was released in June 2013, and the latest version 5.5.38 in July 2016: over 3 years of support
- PHP 5.6.0 was released in August 2014, and the latest version 5.6.40 in January 2019: over 4 years and a half of support
- PHP 7.0.0 was released in December 2014, and the latest version 7.0.33 in January 2019: over 3 years of support
We would like our customers to migrate quickly to this first LTS version. Therefore we cannot force them to use a minimum PHP / MySQL release which is too recent.
As users choosing an Long-term support release choose stability, we have to keep this minimal PHP version as much as possible… considering that this LTS version will have to be supported for several years by Combodo!
But iTop also uses about 60 external PHP libraries that also evolve. The management of these dependencies is very important to take into account when you want to support a release for several years:
- some libraries will follow the evolution of the language but will stop supporting too old PHP versions
- others will be released too late
- and still others will be withdrawn by their publisher
By the time the development of this LTS started, we had to replace one of these libraries which development was discontinued: Silex. This library, used for iTop Portal, was not maintained after 2018.
Thus, the supported releases have to meet a complex set of constraints and prerequisites, and the combination of LTS and STS does not make it any easier to manage developments… With all this in mind, we launched the development project in March 2019.
But how do you organize ourselves to develop and deliver a Long Term Support release? That’s what we’ll tell you in the next article.