Public visé
Les feature flags s'appliquent à tous les clients, y compris les clients SaaS. Même si les instances SaaS sont installées et gérées par OKIOK, un client SaaS peut vouloir occasionnellement activer ou désactiver un feature flag donné.
Gestion des fonctionnalités
Concepts
Chaque nouvelle version de S-Filer Portal peut introduire de nouvelles fonctionnalités ou des modifications de fonctionnalités existantes. Ces fonctionnalités peuvent être activées ou désactivées selon les besoins. Une fonctionnalité qui n'est pas activée fait en sorte que la plateforme se comporte comme dans une version antérieure. Par défaut, les nouvelles fonctionnalités sont désactivées et doivent être activées manuellement par un administrateur.
Les feature flags sont activés ou désactivés par un administrateur à l'aide de la console web (appelée le Configurateur) ou du S-Filer Config CLI avec la commande update-feature-flag. L'activation ou la désactivation d'une fonctionnalité ne nécessite pas de redémarrage du serveur ; cependant, un délai pouvant aller jusqu'à 5 minutes est nécessaire pour que la modification prenne effet.
Un feature flag est permanent : il persiste d'une version à l'autre et conserve sa valeur lors des mises à niveau. Lorsque S-Filer Portal est mis à niveau, chaque feature flag conserve la valeur que vous lui avez attribuée — une fonctionnalité que vous avez activée reste activée, et une fonctionnalité que vous avez laissée désactivée le reste jusqu'à ce que vous décidiez d'en changer.
Dans les prochaines versions de S-Filer Portal, ces fonctionnalités ne seront plus considérées comme de nouvelles fonctionnalités et seront activées par défaut.
Désactivation d'une fonctionnalité
Il est fortement recommandé de ne pas désactiver une fonctionnalité sans en comprendre les implications. La désactivation d'une fonctionnalité peut entraîner des problèmes de compatibilité tels que des erreurs ou une perte irréversible de données.
Version flags
Public visé
Les version flags s'adressent principalement aux administrateurs on-premise. Pour les instances SaaS, c'est OKIOK qui gère les version flags en votre nom.
Un version flag est un concept distinct du feature flag. Chaque nouvelle capacité introduite par une version est placée derrière le version flag correspondant. Tant que ce version flag n'est pas activé, la version se comporte exactement comme la version précédente. Ceci s'applique uniquement aux versions majeures et mineures — cela ne s'applique pas aux versions patch.
Exemple
Dans la version 4.21.0, si le version flag 4.21.X n'est pas activé, l'instance se comporte comme la version 4.20.17.
Déploiements haute disponibilité (HA)
Le version flag est ce qui rend possible une mise à niveau sûre d'un déploiement haute disponibilité. Comme chaque composante continue de se comporter comme la version précédente tant que le version flag n'est pas activé, vous pouvez effectuer un rolling update des composantes : chaque composante est mise à niveau vers la nouvelle version l'une après l'autre pendant que la plateforme continue de fonctionner. Une fois toutes les composantes mises à niveau, vous activez le version flag afin que chaque composante adopte le nouveau comportement simultanément.
Synchronisation temporelle
Pour garantir que toutes les composantes basculent vers le nouveau comportement au même moment, les composantes sont synchronisées sur l'horloge : un version flag n'est appliqué qu'à un multiple exact de 5 minutes (par exemple, 10 h 05, 10 h 10, 10 h 15). Ceci garantit que de légers écarts dans le moment où chaque composante lit le version flag en base de données ne provoquent pas d'incohérences de version entre les composantes.
Différences clés entre feature flag et version flag
Bien qu'ils soient activés de la même façon, les feature flags et les version flags se comportent très différemment tout au long de la durée de vie d'un déploiement.
Un version flag est éphémère. Il n'existe que pour la version qui l'a introduit : la version 4.21.0 possède le version flag 4.21.X, mais elle ne possède pas de version flag 4.20.X. Lorsque le schéma de base de données est mis à niveau vers une version supérieure, le version flag de la version précédente est considéré comme actif (s'il ne l'était pas déjà), puis il est supprimé. Autrement dit, un version flag vit le temps d'une seule transition de version, puis disparaît.
Un feature flag est permanent. Il persiste d'une version à l'autre et conserve sa valeur lors des mises à niveau, indépendamment de tout version flag. Activer ou désactiver un feature flag est un choix de configuration durable, et non une étape de migration ponctuelle.
Un version flag n'est pas un interrupteur
Un version flag n'est pas conçu pour passer de ON à OFF. Il est destiné à être activé une seule fois, comme étape finale d'une mise à niveau, puis laissé actif jusqu'à ce qu'il soit absorbé et supprimé par la prochaine mise à niveau du schéma.
Désactivation d'un version flag
Il est techniquement possible de désactiver un version flag, mais cela est fortement déconseillé.
Une fois qu'un version flag est actif, la plateforme peut écrire des données « nouvelles » en base de données — des données dont le format ou la signification dépend du nouveau comportement. Selon les nouvelles données déjà écrites, la désactivation du version flag rend plusieurs comportements indéfinis, et la plateforme peut cesser de fonctionner de façon fiable.
Contactez OKIOK avant de désactiver un version flag
Si vous pensez devoir désactiver un version flag, ne le faites pas de votre propre chef. Contactez d'abord le support et les services professionnels d'OKIOK afin qu'ils évaluent votre situation et vous guident en toute sécurité.
