Qu'est-ce qu'une feature gate et pourquoi l'utilisons-nous ?
Certains clients d'appliances Google Distributed Cloud (GDC) sous air gap doivent suivre une procédure d'accréditation pour répondre à un ensemble d'exigences de conformité. Ces clients peuvent disposer de fonctionnalités spécifiques qui doivent être examinées par un organisme tiers avant de pouvoir être activées pour les charges de travail de production.
Certaines fonctionnalités peuvent nécessiter plusieurs versions pour être finalisées et ne doivent pas être proposées à tous les clients tant qu'elles ne sont pas stables et prêtes. Toutefois, d'autres clients peuvent souhaiter travailler avec Google pour effectuer des tests de preuve de concept avec la fonctionnalité non publiée.
GDC introduit plusieurs concepts pour conserver les fonctionnalités avant qu'elles ne soient prêtes :
Seuil de niveau de fonctionnalité de déploiement (seuil de déploiement) : définit le niveau minimal à utiliser pour l'appareil. Ce paramètre est défini au moment du bootstrap.
La ressource
FeatureGate
définit la configuration de premier niveau qui suit le niveau de maturité par défaut pour chaque fonctionnalité. La ressource suit également les éventuels remplacements de fonctionnalités ajoutés par l'opérateur.Niveau de fonctionnalité : indique le niveau de maturité auquel une fonctionnalité donnée est définie. Une fonctionnalité est activée lorsqu'elle est supérieure ou égale au seuil de déploiement.
Les valeurs possibles pour le niveau de fonctionnalité, par ordre croissant, sont les suivantes : DEV
, TEST
, PREVIEW
, PRODUCTION
et ACCREDITED
.
Par exemple, si le seuil de déploiement est défini sur PRODUCTION
, les fonctionnalités définies avec le niveau de fonctionnalité ACCREDITED
ou PRODUCTION
sont activées. Si le seuil de déploiement est défini sur ACCREDITED
, seules les fonctionnalités de niveau ACCREDITED
sont activées.
Les niveaux ou les portes d'accès aux fonctionnalités ne sont pas les mêmes que les tests A/B que vous pouvez voir dans les produits destinés aux consommateurs. Les feature gates sont activés ou désactivés pour l'ensemble de l'appareil GDC. Les feature gates sont conçus pour être activés une fois l'examen de l'accréditation terminé et rester activés.
Les déploiements soumis à des exigences d'accréditation doivent avoir leur propre configuration FeatureGate
, qui doit correspondre à ce qui a été accrédité pour cette version ou les versions précédentes.
Utilisation au niveau des fonctionnalités
Il existe trois définitions de ressources personnalisées liées à la configuration des niveaux et des portes de fonctionnalité :
Stage
: définit le seuil de déploiement pour un cluster. Stocke le seuil minimal de phase de déploiement, qui sert de référence pour comparer les portes de fonctionnalité et déterminer si une fonctionnalité est activée.FeatureGate
: stocke l'étape par défaut de chaque fonctionnalité et effectue le suivi des éventuels remplacements.SubcomponentOverride
: utilisé par le système de feature gates pour remplacer l'étape par défaut d'une fonctionnalité afin de l'activer. apparaît ailleurs dans d'autres contextes.
La valeur de l'étape correspond au seuil minimal de déploiement stocké dans chaque cluster. Ce paramètre ne doit être défini que lors de l'amorçage et ne doit jamais être modifié après l'amorçage. Toutes les fonctionnalités dont la valeur de l'étape est égale ou supérieure sont activées. Pour remplacer l'état par défaut d'une feature gate, consultez OOPS-P0072.
Les feature gates sont semblables à une mise à niveau. Aucune image ni version ne change, mais il s'agit en fait de la dernière étape d'une mise à niveau pour activer les fonctionnalités qui ont été ajoutées lors d'une mise à niveau précédente. L'activation de cette fonctionnalité peut avoir lieu plusieurs semaines ou mois après la mise à niveau initiale, selon le temps nécessaire à l'accréditation. Continuez à effectuer des mises à niveau régulièrement pour intégrer les correctifs pendant l'accréditation.
Lorsque des fonctionnalités sont remplacées, GDC déclenche un reconciler pour redémarrer tous les pods qui dépendent de la fonctionnalité. Cette opération doit être effectuée pendant un intervalle de maintenance, car certains changements peuvent nécessiter un temps d'arrêt.
Certaines fonctionnalités sont associées à un runbook de manuel de service qui décrit quand elles doivent être activées et ce qu'il faut rechercher une fois le remplacement appliqué. Cela peut être le cas lorsque plus qu'un redémarrage de pod est nécessaire ou lorsque l'opération doit être effectuée après l'activation d'autres fonctionnalités.
Vous trouverez ces manuels d'exécution des fonctionnalités dans le manuel d'entretien joint au composant opérationnel concerné.
La liste des portes de fonctionnalités actives est disponible dans la documentation Étapes des fonctionnalités.