Comment intégrer Redis dans votre processus d’intégration et de déploiement continus (CI/CD)

Comment intégrer Redis dans votre processus d’intégration et de déploiement continus (CI/CD)

Plus tôt cette semaine, j’ai écrit sur la façon dont Redis peut bénéficier aux équipes de développement distribuées en les aidant à publier de nouvelles fonctionnalités en toute sécurité et à les restaurer avec un impact minimal si nécessaire. Aujourd’hui, je vais plonger dans des détails spécifiques sur la façon dont les basculements de fonctionnalités, le contexte des fonctionnalités et les journaux d’erreurs peuvent améliorer votre processus d’intégration et de déploiement continus (CI/CD).

Basculement de fonctionnalités avec Redis

Le “basculement de fonctionnalités” est un ensemble de modèles qui vous aident à fournir de nouvelles fonctionnalités aux utilisateurs d’applications rapidement mais en toute sécurité. Les bascules de fonctionnalités sont également appelées drapeaux de fonctionnalités, bits de fonctionnalités ou bascules de fonctionnalités.

Redis - Figure 5 : bascules de fonctionnalités stockées dans redis_ent_1
Figure 5 : bascules de fonctionnalités stockées dans redis_ent_1

Dans Redis Enterprise, il est très facile de structurer une stratégie de basculement en utilisant le natif Hachage Redis Structure de données.

Avec Redis-cli ou n’importe lequel Client Redis pour la langue de votre choix, vous pouvez créer des clés HASH (telles que “useNewAlgorithm”) avec des valeurs qui définissent un indicateur de basculement, un numéro de version, des noms de développeur, un indicateur de remplacement, etc.

En utilisant ce type de structure de données, vous pouvez configurer autant de bascules de fonctionnalités dans Redis que nécessaire. Votre application peut ensuite les rechercher au moment de l’exécution pour vérifier l’état et les métadonnées de l’indicateur en temps réel.

En utilisant ce type de structure de données, vous pouvez configurer autant de bascules de fonctionnalités dans Redis que nécessaire. Votre application peut ensuite les rechercher au moment de l’exécution pour vérifier l’état et les métadonnées de l’indicateur en temps réel.

Réponse:

Contexte des fonctionnalités avec Redis

Le « contexte de fonctionnalité » est une décision de routage dynamique basée sur un certain contexte, tel que l’utilisateur qui fait la demande. Il peut être lu directement à partir de la gestion de session, qui est un cas d’utilisation populaire pour Redis.

Feature context
Figure 6 : contexte de fonctionnalité (magasins de session) stocké dans redis_ent_1

Encore une fois, en utilisant le natif Hachage Redis structure des données et Redis-cli (ou n’importe Client Redis), vous pouvez stocker les données de session dans des clés et les rechercher au moment de l’exécution pour lire les valeurs en temps réel.

Par exemple, dans la figure 6, la méthode « sessionAuthorized » vérifie si un utilisateur s’est connecté avec Facebook à l’aide de la valeur « authType » stockée dans la clé de session.

Réponse:

N’hésitez pas à en savoir plus sur les magasins de session ici.

Utilisation de Redis pour une base de données d’erreurs rapide et consultable

Une “base de données d’erreurs” est un magasin de données centralisé pour les erreurs signalées pendant l’exécution. Les erreurs peuvent être stockées dans RediRecherche, un puissant moteur de recherche de texte et d’indexation secondaire, qui permet une recherche rapide pour les rechercher. La version de RediSearch fournie avec Redis Enterprise prend en charge la mise à l’échelle sur de nombreux serveurs, ce qui lui permet de passer facilement à des milliards de documents sur des centaines de serveurs.

Vous pouvez transférer toutes les erreurs signalées lors de l’exécution dans RediSearch, ainsi que d’autres informations utiles de la bascule de fonctionnalité et du contexte de fonctionnalité, ce qui facilitera le processus de triage.

Créer des index de recherche avec Redis-cli ou n’importe lequel Client Redis.

Par exemple, créons un nouvel index appelé “toggle_errors_db” pour stocker toutes les erreurs signalées chaque fois qu’une fonctionnalité bascule est utilisée.

Ajoutons quelques données à cet index avec une nouvelle clé au format :useNewAlgorithm:03-12-19-10-32-05

Essayez une recherche sur cet index pour n’importe quel objet avec des mots-clés, par exemple recherchez le nom du développeur : John

Réponse:

Rechercher le nom de la bascule de fonctionnalité : useNewAlgorithm

Réponse:

Base de données des journaux

Une « base de données de journaux » est un magasin de données centralisé qui suit les messages de journal. Vous pouvez utiliser Redis pour stocker une liste récente des messages de journal, ce qui vous donnera une vue instantanée de vos journaux à tout moment.

Figure 8 : Journaux stockés dans redis_ent_3
Figure 8 : Journaux stockés dans redis_ent_3

Pour conserver une liste récente des journaux, vous pouvez LPUSH consigner les messages dans une LISTE, puis découper cette LISTE à une taille fixe.

Plus tard, si vous souhaitez lire ces messages de journal, effectuez simplement un simple LRANGE pour les récupérer.

En savoir plus sur cette approche ici.

SEVERITY = {
logging.DEBUG: 'debug',
logging.INFO: 'info',
logging.WARNING: 'warning',
logging.ERROR: 'error',
logging.CRITICAL: 'critical',
}
SEVERITY.update((name, name) for name in SEVERITY.values())

//Set up a mapping that should help turn most logging severity levels into something consistent
def log_recent(conn, name, message, severity=logging.INFO, pipe=None):
severity = str(SEVERITY.get(severity, severity)).lower()
//Actually try to turn a logging level into a simple string.
destination = 'recent:%s:%s'%(name, severity)
//Create the key that messages will be written to.
message = time.asctime() + ' ' + message
//Add the current time so that we know when the message was sent.
pipe = pipe or conn.pipeline()
pipe.lpush(destination, message)
//Add the message to the beginning of the log list.
pipe.ltrim(destination, 0, 99)
//Trim the log list to only include the most recent 100 messages.
pipe.execute()

Premiers pas avec Redis Entreprise

Chacune de ces techniques offre la possibilité de faire passer vos mises à jour continues au niveau supérieur et de minimiser le temps et les maux de tête inhérents à la gestion du développement d’applications à grande échelle avec des versions fréquentes. Bien sûr, Redis Enterprise est un excellent moyen d’apporter plus de puissance et de flexibilité à l’ensemble du processus CI/CD. Heureusement, la création d’un cluster Redis avec Redis Enterprise Pro (qui inclut le module RediSearch et la persistance des données) est simple et gratuite.

Premiers pas avec Redis Entreprise aujourd’hui.

Development Source

Related Posts

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Clés Redis dans la RAM |  Redis

Clés Redis dans la RAM | Redis

No Comment

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *