Déploiement de HCL Commerce sur un cluster Kubernetes
HCL Commerce est une plateforme de commerce électronique unifiée et unique permettant de commercer directement avec des consommateurs (B2C) ou directement avec des entreprises (B2B). C'est une solution personnalisable, évolutive, distribuée et hautement disponible, conçue pour exploiter les normes ouvertes. Il fournit des outils faciles à utiliser permettant aux professionnels de créer et gérer des campagnes marketing de précision, des promotions, des catalogues et du marchandisage sur tous les canaux de vente, Les professionnels peuvent créer et gérer des campagnes de marketing de précision, des promotions, des catalogues et du merchandising à travers tous les canaux de distribution. Les utilisateurs professionnels peuvent créer et gérer des campagnes marketing de précision, des promotions, des catalogues et du merchandising sur l'ensemble des canaux de vente. HCL Commerce utilise une technologie adaptée au cloud qui facilite le déploiement et l'exploitation tout en optimisant leur efficacité.
Un environnement complet HCL Commerce est composé d'un environnement (auth) de création et d'un environnement (live) opérationnel. L'environnement de création est destiné à l'administration du site et aux utilisateurs professionnels pour apporter des modifications au site, tandis que l'environnement opérationnel est destiné aux acheteurs. Un troisième groupement existe également au sein de HCL Commerce Version 9.1. L'environnement (share) partagé contient les applications qui peuvent être consommées par les types d'environnement de création et opérationnels. Ceci est utilisé pour la nouvelle solution de recherche Elasticsearch.
Pour plus d'informations sur l'HCL Commerce, voir Présentation du produit HCL Commerce.
HCL Commerce prend en charge plusieurs configurations de déploiement. Le mode de configuration par défaut utilisé par la charte Helm fourni est le mode de configuration Vault. Vault est également le mode de configuration recommandé pour HCL Commerce car il a été conçu pour stocker en toute sécurité les données de configuration. HCL Commerce utilise également Vault comme autorité de certification aux fins de l'émission d'un certificat à chacune des applications, leur permettant de communiquer entre elles en toute sécurité. Par conséquent, assurez-vous que vous avez un service Vault auquel HCL Commerce pèut accéder. Les étapes suivantes mettent en évidence les exigences minimales avant le déploiement de HCL Commerce.
Pour les environnements de non-production, vous pouvez envisager l'utilisation de hcl-commerce-vaultconsul-helmchart pour déployer et initialiser Vault pour HCL Commerce car il peut initialiser Vault et renseigner les données pour HCL Commerce. Toutefois, cette charte exécute Vault en mode développement et non en mode haute disponibilité (HA) et ne gère pas le jeton Vault en toute sécurité. Par conséquent, elle ne doit pas être utilisée pour les environnements de production. Vous pouvez lire Concepts concernant Vault pour toutes les considérations qui doivent être faites pour exécuter Vault dans un cadre de production.
Avec l'équilibrage de charge et le routage d'entrée en particulier, vous pouvez configurer les services que vous souhaitez exposer en externe et restreindre les services restants dans le réseau du cluster. Cette configuration limite leur accès et leur exposition à Internet au sens large.
Before you begin
- Assurez-vous d'avoir déployé Vault. Vault est un composant obligatoire utilisé par défaut comme agent de certification afin d'émettre automatiquement des certificats, ainsi que pour stocker et récupérer les variables et secrets de configuration de déploiement essentiels. Pour plus d'informations, consultez la rubrique Déploiement d'un Vault de développement pour HCL Commerce sur Kubernetes
- Assurez-vous que votre environnement est prêt. Pour configurer l'environnement approprié, voir Conditions préalables au déploiement HCL Commerce sur un cluster Kubernetes.
A partir de HCL Commerce 9.1.7.0, une version Power Linux du Chart Helm est incluse pour une utilisation sur cette plateforme. Assurez-vous que vous utilisez la bonne version du Chart Helm pour la plateforme vers laquelle vous effectuez le déploiement.

Procedure
- Optional:
Si vous utilisez la solution de recherche basée sur Elasticsearch pour HCL Commerce, vous devez déployer Elasticsearch, Zookeeper et Redis.
Important:
- Vérifiez que Elasticsearch, Zookeeper et Redis sont tous déployés avec la persistance activée. Cela permet de s'assurer que votre index de recherche et que vos configurations de connecteur sont sauvegardés si les conteneurs sont redémarrés.
- Les déploiements d'Elasticsearch, Zookeeper et Redis nécessitent des versions spécifiques de leurs chartes Helm. Ces versions sont compatibles avec les exemples de valeurs regroupés dans votre projet Git de chartes Helm HCL Commerce cloné ou de chartes Helm HCL Commerce Plinux. Les valeurs de version spécifiques sont référencées dans la charte Helm hcl-commerce-helmchart/stable/hcl-commerce/Chart.yaml, à partir du projet Git de chartes Helm HCL Commerce cloné. Assurez-vous que les versions spécifiées dans les commandes suivantes avec le paramètre version sont alignées sur les valeurs référencées dans ce fichier.
Note: Si vous déployez Elasticsearch, Zookeeper et Redis sur Red Hat OpenShift, vous pouvez être obligé d'accorder des contraintes de contexte de sécurité (SCC) privilégiées au compte de service afin d'éviter les erreurs de sécurité. Cette fonction est basée sur le compte de service que vous choisissez d'utiliser.Par exemple :
oc adm policy add-scc-to-user privileged -z default –n NAMESPACE - Optional:
Si vous avez l'intention d'activer le service d'approbation pour une utilisation dans une place de marché, vous devez déployer PostgreSQL pour qu'il soit utilisé comme base de données.
- Créez un espace de nom pour PostgreSQL.
kubectl create ns postgresql - Ajoutez le référentiel de chartes Helm.
helm repo add bitnami https://charts.bitnami.com/bitnami - Déployez PostgreSQL à l'aide d'un fichier postgresql-values.yaml local. Une version d'exemple de ce fichier est disponible dans le répertoire sample_values de votre projet Git de chartes Helm HCL Commerce cloné.Important: Un fichier d'initialisation SQL est utilisé pour personnaliser la base de données à utiliser avec Approval server. Vous devez mettre à jour l'exemple de mot de passe utilisé dans le script et vous assurer que le mot de passe de la source de données sous la section Approval server est mis à jour avec le même mot de passe.
helm install my-postgresql bitnami/postgresql -n postgresql -f postgresql-values.yaml --version="postgresql-chart-version" - Surveillez le déploiement et assurez-vous que tous les pods sont en bon état.
Pour plus d'informations sur le déploiement de PostgreSQL à l'aide de Helm, consultez la documentation sur la charte Helm PostgreSQL.
- Créez un espace de nom pour PostgreSQL.
-
Configurez votre charte Helm de déploiement HCL Commerce.
Utilisez le hcl-commerce-helmchart fourni pour personnaliser votre déploiement. Consultez les rubriques suivantes en fonction de vos connaissances et des exigences en matière de configuration :Note: Il est fortement recommandé de ne pas modifier le fichier de configuration values.yaml par défaut pour votre déploiement. Créez plutôt une copie à utiliser comme fichier de valeurs personnalisées, par exemple my-values.yaml. Cela vous permettra de conserver vos valeurs personnalisées pour les futurs déploiements et mises à niveau.
-
Utilisez Helm pour contrôler le déploiement de HCL Commerce.
Une fois que vous avez terminé la configuration de votre déploiement dans votre fichier my-values.yaml et que vous répondez aux conditions préalables de l'environnement, vous êtes prêt à déployer HCL Commerce l'aide de Helm.
-
Premier déploiement
- Déployez le groupe share avec le nom de version
demo-qa-sharedans l'espace de nomscommerce.helm install demo-qa-share hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=share -n commerce - Déployez le groupe auth avec le nom de version
demo-qa-authdans l'espace de nomscommerce.helm install demo-qa-auth hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=auth -n commerce - Déployez le groupe live avec le nom de version
demo-qa-livedans l'espace de nomscommerce.helm install demo-qa-live hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=live -n commerce
Une fois que les applications HCL Commerce sont déployées, si vous avez d'autres modifications de configuration ou mises à jour d'image, vous pouvez utiliser la commande de mise à niveau Helm pour mettre à jour le déploiement.
- Déployez le groupe share avec le nom de version
-
Mise à jour d'un déploiement
Pour mettre à jour un déploiement, exécutez la commande Helm suivante pour la version et l'environmentType que vous souhaitez mettre à jour.
helm upgrade release-name hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=environmentType -n commerceNote:- Si vous utilisez la solution de recherche basée sur Elasticsearch, il est nécessaire d'utiliser un volume persistant complètement nouveau pour NiFi et d'effacer toutes les données Zookeeper existantes avant de procéder au redéploiement. Ceci est nécessaire pour que la nouvelle version des connecteurs puisse être créée automatiquement lors du déploiement.
- Pour effacer les données NiFi :
- Voir Données de recherche persistantes pour créer un nouvel appel de volume persistant (PVC) et configurer le nouveau nom PVC dans votre fichier de déploiement values.yaml.
- Vous pouvez ensuite supprimer l'ancien appel de volume persistant joint.
kubectl delete pvc previous_pvc_name -n commerce
- Pour effacer les données Zookeeper :
- Supprimez l'instance Zookeeper existante.
helm delete my-zookeeper -n zookeeper - Supprimez les appels de volume persistants existants.
kubectl delete pvc --all -n zookeeper
- Supprimez l'instance Zookeeper existante.
- Pour effacer les données NiFi :
- HCL Cache met en cache les classes qui peuvent être modifiées dans les versions plus récentes de HCL Commerce. Pour éviter les erreurs de désérialisation d'une ancienne version de la classe, il est fortement recommandé d'effacer les clés Redis après la mise à niveau de HCL Commerce. Les clés Redis peuvent être effacées avec les commandes Redis flushdb ou flushall.
- Une fois la mise à niveau de HCL Commerce effectuée, recréez tous les profils et connecteurs de recherche personnalisés avant votre prochaine indexation de recherche.
- Si vous utilisez la solution de recherche basée sur Elasticsearch, il est nécessaire d'utiliser un volume persistant complètement nouveau pour NiFi et d'effacer toutes les données Zookeeper existantes avant de procéder au redéploiement. Ceci est nécessaire pour que la nouvelle version des connecteurs puisse être créée automatiquement lors du déploiement.
-
Supprimer un déploiement
Pour désinstaller ou supprimer un déploiement, exécutez la commande Helm suivante pour la version que vous souhaitez supprimer.
helm delete release-name
-
Premier déploiement
-
Observez le déploiement.
Lorsque vous installez ou mettez à jour HCL Commerce, le démarrage doit suivre une séquence précise. Le conteneur de support est principalement utilisé pour les vérifications des dépendances de service, afin de s'assurer que les différentes applications Commerce sont mises en ligne correctement et dans l'ordre attendu. En outre, il est également utilisé par certains travaux d'utilitaire, tels que pour la génération de certificatS TLS pour l'entrée sécurisée. Le processus de déploiement peut prendre jusqu'à 10 minutes en fonction de la capacité de vos nœuds de travail Kubernetes.
Vous pouvez vérifier l'état de votre déploiement. Les valeurs suivantes s'affichent dans la colonneStatus.Running: This container is started.Init: 0/1: This container is pending on another container to start.
Vous pouvez également observer les valeurs suivantes affichées dans la colonneReady:0/1: This container is started but the application is not yet ready.1/1: This application is ready to use.
-
Accédez à vos environnements.
Par défaut, la charte Helm utilise les valeurs par défaut de tenant, envet envtype. Si vous avez modifié les valeurs par défaut, mettez à jour les noms d'hôte utilisés dans les exemples d'étapes suivantes.
- Vérifiez l'adresse IP du serveur d'entrée.
kubectl get ingress -n commerce - Créez le mappage d'IP et de nom d'hôte du serveur d'entrée en modifiant votre fichier d'hôtes d'environnement de développement.
#Auth environment Ingress_IP store.demoqaauth.mycompany.com www.demoqaauth.mycompany.com cmc.demoqaauth.mycompany.com tsapp.demoqaauth.mycompany.com search.demoqaauth.mycompany.com #Live environment Ingress_IP store.demoqalive.mycompany.com www.demoqalive.mycompany.com cmc.demoqalive.mycompany.com tsapp.demoqalive.mycompany.com searchrepeater.demoqalive.mycompany.comNote:
Pour un déploiement Power Linux sur OpenShift, des routes OpenShift doivent être utilisées pour exposer les services, au lieu du serveur Ingress. La valeur Ingress_IPde l'exemple d'hôtes doit être remplacée par l'adresse IP du service OpenShift.- Pour Ambassador ou Emmisary Ingress, l'
Ingress_IPest l'adresse IP du service Ambassador ou Emissary. search.demoqaauth.mycompany.comest utilisé pour exposer le service de recherche maître.searchrepeater.demoqalive.mycompany.comest utilisé pour exposer le service répéteur de recherche dans votre environnement opérationnel, pour déclencher la réplication d'index.
- Accédez à vos pages et outils d'environnement avec les URL suivantes :
- Vitrine Aurora :.https://store.demoqaauth.mycompany.com/wcs/shop/en/auroraesite
- Vitrine Emerald (le nouveau magasin de référence basé sur la réaction) : https://www.demoqaauth.mycompany.com/Emerald
- Management Center for HCL Commerce: https://cmc.demoqaauth.mycompany.com/lobtools/cmc/ManagementCenter
- Vérifiez l'adresse IP du serveur d'entrée.
-
Générez votre index de recherche.
-
Avec la solution de recherche Solr
- Déclenchez le travail de génération d'index. Cet exemple utilise le spiuser, le mot de passe et l'ID de catalogue maître par défaut.
Une réponse avec uncurl -X POST -u spiuser:plain_text_spiuser_password https://tsapp.demoqaauth.mycompany.com/wcs/resources/admin/index/dataImport/build?masterCatalogId=10001 -kjobStatusIdest affichée. - Vérifiez l’état de la tâche Build Index à l’aide de la valeur
jobStatusIdrenvoyée.
Une valeur renvoyée decurl -X GET -u spiuser:plain_text_spiuser_password https://tsapp.demoqaauth.mycompany.com/wcs/resources/admin/index/dataImport/status?jobStatusId=jobStatusId -k0indique que la génération a été effectuée avec succès.
Note:- Le mot de passe par défaut de l'utilisateur spiuser est
passw0rdpour HCL Commerce 9.1.0.0 à 9.1.8.0 etQxV7uCk6RRiwvPVaa4wdD78jaHi2za8ssjneNMdu3vgqipour HCL Commerce version 9.1.9.0 et ultérieure. - Il est essentiel de définir votre propre mot de passe spiuser pour sécuriser votre déploiement. Pour plus d'informations, voir Définition du mot de passe spiuser dans vos images Docker.
- Déclenchez le travail de génération d'index. Cet exemple utilise le spiuser, le mot de passe et l'ID de catalogue maître par défaut.
-
Avec la solution de recherche Elasticsearch
- Déclenchez le travail de génération d'index.
Une réponse avec uncurl -X POST -k -u spiuser:plain_text_spiuser_password https://tsapp.demoqaauth.mycompany.com/wcs/resources/admin/index/dataImport/build?connectorId=auth.reindex&storeId=1jobStatusIdest affichée.Note:- Le mot de passe par défaut de l'utilisateur spiuser est
passw0rdpour HCL Commerce 9.1.0.0 à 9.1.8.0 etQxV7uCk6RRiwvPVaa4wdD78jaHi2za8ssjneNMdu3vgqipour HCL Commerce version 9.1.9.0 et ultérieure. - Il est essentiel de définir votre propre mot de passe spiuser pour sécuriser votre déploiement. Pour plus d'informations, voir Définition du mot de passe spiuser dans vos images Docker.
- Le mot de passe par défaut de l'utilisateur spiuser est
- Vérifiez l’état de la tâche Build Index à l’aide de la valeur
jobStatusIdrenvoyée.curl -X GET -u spiuser:plain_text_spiuser_password https://tsapp.demoqaauth.mycompany.com/wcs/resources/admin/index/dataImport/status?jobStatusId=jobStatusId -kUne valeur renvoyée de
0indique que la génération a réussi. Pour plus d'informations, consultez Génération de l'index Elasticsearch.
- Déclenchez le travail de génération d'index.
-
Avec la solution de recherche Solr