Stratégie CI/CD pour déployer des personnalisations
La solution Elasticsearch HCL Commerce Search ne dicte pas le référentiel de données ou le scriptage requis pour automatiser un pipeline Continuous Integration/Continuous Delivery (CI/CD). Vous avez la possibilité d'utiliser votre propre référentiel de données et votre propre structure de génération. Les rubriques suivantes décrivent une approche recommandée, y compris une structure de pipeline de données suggérée.
Un pipeline CI/CD doit vous permettre d'automatiser un grand nombre ou la plupart du processus de modification de vos personnalisations. Pour ce faire, le pipeline requiert une structure de données cohérente qui peut être transmise d'une étape à l'autre et suppose que ces étapes sont répétées dans une séquence prévisible. Bien que vous puissiez implémenter un tel pipeline en fonction de vos propres besoins, nous décrivons un ensemble recommandé d'étapes et les structures de données associées ci-dessous.
Etapes du pipeline CI/CD
Bien que vous puissiez construire un pipeline CI/CD de plusieurs manières, une approche utile pour les personnalisations HCL Commerce Search implique les étapes suivantes.
- Codifier une structure de package de données standard pour vos personnalisations
- Pour automatiser la distribution de vos personnalisations, assurez-vous de stocker systématiquement les modifications apportées aux éléments suivants :
- Configurations personnalisées,
- Code logique personnalisé, et
- Recherchez le code d'édition et les correctifs.
- Personnaliser votre code
-
- Personnaliser l'image de l'application Ingest
- Vous êtes susceptible de modifier ou de toucher les ressources suivantes lorsque vous personnalisez Ingest. Tous les fichiers nouveaux et mis à jour à partir de ces emplacements doivent être disponibles lorsque vous régénérez le conteneur Docker Ingest. Pour plus d'informations, voir Personnalisation de la recherche d'automatisation CI/CD.
- Le descripteur de connecteur personnalisé, disponible sur /profile/apps/search-ingest.ear/search-ingest.war/WEB-INF/classes/deployments/commerce, et les propriétés du descripteur de connecteur (utilisées pour remplacer les propriétés de canal de connecteur par défaut), se trouvent sur/profile/apps/search-ingest.ear/search-ingest.war/WEB-INF/classes/deployments/customization. Pour une discussion sur le mode d'organisation de cette tâche pour CI/CD, voir Exemple : déploiement d'un connecteur pour CI/CD. Vous pouvez utiliser le même processus général pour chacun des composants suivants.
- Personnalisations de flux, dans le registre. Ces extensions sont mises à jour toutes les cinq minutes dans le répertoire /opt/nifi-registry/flows/extensions.Note: Ingest synchronise la zone de conception NiFi à chaque démarrage en important (de nouveaux) connecteurs personnalisés et en appliquant des propriétés personnalisées
- Personnaliser l'image de l'application Query
- Vous êtes susceptible de modifier ou de toucher les ressources suivantes lorsque vous personnalisez le service Query. Tous les fichiers nouveaux et mis à jour à partir de ces emplacements doivent être disponibles lorsque vous régénérez le conteneur Docker Query.
- Configurations Ingest (pour les attributs globaux), qui se trouvent dans le conteneur Query sur /profile/apps/search-query.ear/search-query.war/WEB-INF/classes/ingest-configs.json.
- Profil Ingest pour Query. Il se trouve dans le conteneur Query à l'adresse /profile/apps/search-query.ear/search-query.war/WEB-INF/classes/profiles/ingest.
- Gestionnaires REST, disponibles dans /profile/apps/search-query.ear/search-query.war/WEB-INF/classes.
- Configurations de composant, disponibles dans /profile/apps/search-query.ear/search-query.war/WEB-INF/classes/wc-component.json.
- Profils de recherche personnalisés, qui se trouvent sous /profile/apps/search-query.ear/search-query.war/WEB-INF/classes/profiles/dans les sous-répertoires productview, categoryview ou sitecontent.
- Logique d'extension personnalisée du profil de recherche (Java), située sous /profile/apps/search-query.ear/search-query.war/WEB-INF/classes.
- Profil NLP personnalisé, par défaut le fichier HCL_NLPProfile.json. Ce fichier se trouve dans /profile/apps/search-query.ear/search-query.war/WEB-INF/classes/profiles/nlp.
- Fichiers Matchmaker, disponibles dans les répertoires /profile/apps/search-query.ear/search-query.war/WEB-INF/classes/colors(_locale).properties, ...units(_locale).propertieset ...filter(_locale).properties.
- Personnaliser les processeurs NiFi et les flux NiFi
- Construisez tous les nouveaux processeurs NiFi et flux NiFi à l'aide des instructions de la section Création d'un groupe de processus NiFi personnalisé. Les ressources sont les suivantes :
- Extension de profil Ingest (Java) pour NiFi. Il se trouve dans le conteneur NiFi à l'adresse /opt/nifi/nifi-current/extensions en tant que fichier NAR.
- Appliquez tous les correctifs de service à vos images personnalisées.
- Assurez-vous d'avoir appliqué les correctifs de service les plus récents. Cela inclut le déploiement de correctifs temporaires et de mises à niveau d'image. L'extraction automatique de correctifs temporaires implique de récupérer les types de fichier suivants dans le répertoire /patches :
- Ingest : code binaire, descripteur de connecteur (Json).
- Liste de cadeaux : flux (chargement dynamique via un fichier ou une interface utilisateur Registry).
- Requête : code binaire, descripteur de profil (Json).
Mise à niveau des images : Lorsque NiFi est configuré pour utiliser le stockage de volume persistant, la séquence de déploiement suivante est requise pour permettre la mise à jour automatique de la zone de conception NiFi.Pour obtenir une liste actualisée des correctifs logiciels, voir Correctifs inclus dans les versions de HCL Commerce.- NiFi + Registry + Query
- NiFi + Ingest Note: Lorsque vous utilisez un volume persistant, vous devez redémarrer le pod une fois de plus après l'avoir mis à niveau vers une nouvelle image afin de terminer la mise à niveau automatique de la zone de conception NiFi.
- Déployer des images personnalisées dans vos environnements de test
- Veillez à tester toutes vos modifications avant de les déployer. Pour plus de détails, voir Test et débogage dans la rubrique Personnalisation de profils ingest et Journalisation et identification et résolution des incidents des services Ingest et Query.
- Pousser vos modifications vers un référentiel de code source
- Poussez le code vers un référentiel de code source. Par exemple, Git. Voir Exemple de structure de fichier .sra pour l'automatisation CI/CD
- Utiliser un outil de scriptage automatisé pour extraire des images du référentiel, générer de nouvelles images Docker et les activer
- Configurez le pipeline CI/CD à l'aide de l'outil CI/CD, Jenkins. Créez et implémentez des scripts Jenkins de sorte que le pipeline CI/CD extraie le package de personnalisation du référentiel, crée de nouvelles images Docker, puis pousse les images vers un référentiel Docker. Pour plus d'informations, voir Automatisation du pipeline CI/CD.Note: Vous pouvez utiliser n'importe quel autre outil CI/CD pour configurer et implémenter le pipeline CI/CD. Assurez-vous que vous faites des recherches avant de décider quel outil CI/CD vous souhaitez mettre en œuvre pour faciliter votre pipeline CI/CD. Réfléchissez à l'outil CI/CD qui fonctionne le mieux pour votre entreprise.