Despliegue HCL Commerce en un clúster de Kubernetes
HCL Commerce es una plataforma de comercio electrónico única y unificada que ofrece la posibilidad de hacer negocios directamente con los consumidores (B2C) o directamente con empresas (B2B). Se trata de una solución personalizable, escalable, distribuida y de alta disponibilidad que está diseñada para utilizar estándares abiertos. Proporciona herramientas de fácil uso para que los usuarios de empresa gestionen de forma centralizada una estrategia entre canales. Los usuarios de la empresa pueden crear y gestionar campañas, promociones, catálogos y mercancía de marketing en todos los canales de ventas. HCL Commerce utiliza tecnología compatible con la nube para que el despliegue y el uso sean sencillos y eficaces.
Un entorno de HCL Commerce completo se compone de un entorno de autoría (auth) y de un entorno real (live). El entorno de autoría es para administrar el sitio y para que los usuarios de empresa realicen cambios en el sitio, mientras que el entorno real es para que acceda el comprador. También existe una tercera agrupación en HCL Commerce Version 9.1. El entorno compartido (share) incluye las aplicaciones que pueden consumir los tipos de entorno de autenticación y reales. Se utiliza para la nueva solución de búsqueda basada en Elasticsearch.
Para obtener más información sobre HCL Commerce, consulte Descripción general del producto HCL Commerce.
HCL Commerce admite varias configuraciones de despliegue. La modalidad de configuración predeterminada utilizada por el Gráfico de Helm proporcionado es el modo de configuración de Vault. Vault es también el modo de configuración recomendado para HCL Commerce, ya que se ha diseñado para almacenar datos de configuración de forma segura. HCL Commerce también utiliza Vault como autoridad de certificación para emitir certificados a cada aplicación para que se comuniquen entre ellas de forma segura. Por lo tanto, asegúrese de que tiene un servicio de Vault disponible para que acceda HCL Commerce. Los siguientes pasos resaltan los requisitos mínimos antes de desplegar HCL Commerce.
Para entornos que no sean de producción, puede considerar usar hcl-commerce-vaultconsul-helmchart para desplegar e inicializar Vault para HCL Commerce, ya que puede inicializar Vault y rellenar datos en HCL Commerce. Sin embargo, ese gráfico ejecuta Vault en el modo de desarrollo y no en el modo de alta disponibilidad (HA) y no maneja la señal de Vault de forma segura. Por lo tanto, no debe utilizarse para entornos de producción. Puede leer los Conceptos de Vault para todas las consideraciones que deben tenerse en cuenta para ejecutar Vault en un marco de producción.
Con el equilibrio de carga y el direccionamiento de entrada específicamente, puede configurar qué servicios desea exponer externamente y restringir los servicios restantes dentro de la red del clúster. Esta configuración limita su acceso y su exposición a Internet de uso general.
Before you begin
- Asegúrese de que ha desplegado Vault. Vault es un componente obligatorio que se utiliza de forma predeterminada como agente de certificados para emitir certificados automáticamente, así como para almacenar y recuperar secretos y variables de configuración de despliegue esenciales. Para obtener más información, consulte Desplegar el almacén de Vault para HCL Commerce en Kubernetes
- Asegúrese de que el entorno esté preparado. Para configurar el entorno adecuado, consulte Requisitos previos para desplegar HCL Commerce en un clúster de Kubernetes.
- A partir de HCL Commerce 9.1.7.0, se incluye una versión para Power Linux del Helm Chart para su uso en esa plataforma. Asegúrese de que está utilizando la versión correcta de Helm Chart para la plataforma en la que está realizando el despliegue.
Procedure
- Optional:
Si está utilizando la solución de búsqueda basada en Elasticsearch para HCL Commerce, debe desplegar Elasticsearch, Zookeeper y Redis.
Important:
- Asegúrese de que Elasticsearch, Zookeeper y Redis estén desplegados con la persistencia habilitada. Esto garantizará que el índice de búsqueda y las configuraciones de conector se guarden si se reinician los contenedores.
- Las implementaciones de Elasticsearch, Zookeeper y Redis requieren versiones específicas de sus gráficos Helm. Estas versiones son compatibles con los valores de muestra incluidos en su proyecto Git clonado HCL Commerce de Helm Chart o HCL Commerce Plinux Helm Chart. Se hace referencia a los valores de versión específicos en el gráfico Helm hcl-commerce-helmchart/stable/hcl-commerce/Chart.yaml, desde el proyecto Git de gráfico Helm clonado HCL Commerce. Asegúrese de que las versiones especificadas en los mandatos siguientes con el parámetro version están alineadas con los valores a los que se hace referencia en este archivo.
Note: Si está implementando Elasticsearch, Zookeeper y Redis en Red Hat OpenShift, es posible que tenga que conceder restricciones de contexto de seguridad (SCC) privilegiadas a la cuenta de servicio para evitar errores de seguridad. Esto se basa en la cuenta de servicio que elija utilizar.Por ejemplo,
oc adm policy add-scc-to-user privileged -z default –n NAMESPACE
- Optional:
Si tiene previsto habilitar el servicio de aprobación para utilizarlo en Marketplace, deberá desplegar PostgreSQL para utilizarlo como base de datos.
- Cree un espacio de nombres para PostgreSQL.
kubectl create ns postgresql
- Añada el repositorio de Gráficos de Helm.
helm repo add bitnami https://charts.bitnami.com/bitnami
- Despliegue PostgreSQL utilizando un archivo local postgresql-values.yaml. Hay disponible una versión de ejemplo de este archivo en el directorio sample_values del proyecto de Git del Gráfico de Helm de HCL Commerce.Important: Se utiliza un archivo SQL de inicialización para personalizar la base de datos para utilizarla con Approval server. Debe actualizar la contraseña de ejemplo que se utiliza en el script y asegurarse de que la contraseña de origen de datos de la sección Approval server se actualiza con la misma contraseña.
helm install my-postgresql bitnami/postgresql -n postgresql -f postgresql-values.yaml --version="postgresql-chart-version"
- Supervise el despliegue y asegúrese de que todos los pods están en buen estado.
Para obtener más información sobre cómo desplegar PostgreSQL con Helm, consulte la Documentación del gráfico de Helm de PostgreSQL.
- Cree un espacio de nombres para PostgreSQL.
-
Configure el Gráfico de Helm de despliegue de HCL Commerce.
Utilice el hcl-commerce-helmchart proporcionado para personalizar el despliegue. Revise los siguientes temas basados en el conocimiento y los requisitos de su configuración:Note: Es muy recomendable no modificar el archivo de configuración values.yaml predeterminado para el despliegue. En su lugar, cree una copia para usarla como archivo de valores personalizados, por ejemplo, my-values.yaml. Esto le permitirá mantener sus valores personalizados para futuros despliegues y actualizaciones.
-
Utilice Helm para controlar el despliegue de HCL Commerce.
Una vez que haya finalizado la configuración del despliegue en el archivo my-values.yaml y cumpla los requisitos previos del entorno, estará preparado para desplegar HCL Commerce utilizando Helm.
-
Desplegar por primera vez
- Despliegue el grupo share con el nombre de la versión
demo-qa-share
en el espacio de nombrescommerce
.helm install demo-qa-share hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=share -n commerce
- Despliegue el grupo auth con el nombre de la versión
demo-qa-auth
en el espacio de nombrescommerce
.helm install demo-qa-auth hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=auth -n commerce
- Despliegue el grupo live con el nombre de la versión
demo-qa-live
en el espacio de nombrescommerce
.helm install demo-qa-live hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=live -n commerce
Una vez que se hayan desplegado las aplicaciones de HCL Commerce, si tiene cambios de configuración o actualizaciones de imagen adicionales, puede utilizar el mandato de actualización de Helm para actualizar el despliegue.
- Despliegue el grupo share con el nombre de la versión
-
Actualizar un despliegue
Para actualizar un despliegue, ejecute el siguiente mandato de Helm para la versión y el environmentType que desea actualizar.
helm upgrade release-name hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=environmentType -n commerce
Note:- Si utiliza la solución de búsqueda basada en Elasticsearch, es necesario utilizar un volumen persistente completamente nuevo para NiFi y borrar los datos existentes de Zookeeper antes de volver a implementar. Esto es necesario para que la versión más reciente de los conectores se pueda crear automáticamente durante el despliegue.
- Para borrar los datos NiFi:
- Consulte Persistir datos de búsqueda para crear una nueva Reclamación de volumen persistente (PVC) y configurar el nuevo nombre de PVC en el archivo de despliegue values.yaml.
- A continuación, puede eliminar la reclamación de volumen persistente adjunta anterior.
kubectl delete pvc previous_pvc_name -n commerce
- Para borrar los datos de Zookeeper:
- Suprima la instancia existente de Zookeeper.
helm delete my-zookeeper -n zookeeper
- Elimine las reclamaciones de volúmenes permanentes existentes.
kubectl delete pvc --all -n zookeeper
- Suprima la instancia existente de Zookeeper.
- Para borrar los datos NiFi:
- HCL Cache almacena en memoria caché las clases que se pueden modificar en versiones más recientes de HCL Commerce. Para evitar errores al deserializar una versión antigua de la clase, es muy recomendable borrar las claves de Redis después de actualizar HCL Commerce. Las claves de Redis se pueden borrar con los mandatos Redis flushdb o flusall.
- Una vez que haya hecho la actualización de HCL Commerce, vuelva a crear los conectores y perfiles de búsqueda personalizados antes de la siguiente indexación de búsqueda.
- Si utiliza la solución de búsqueda basada en Elasticsearch, es necesario utilizar un volumen persistente completamente nuevo para NiFi y borrar los datos existentes de Zookeeper antes de volver a implementar. Esto es necesario para que la versión más reciente de los conectores se pueda crear automáticamente durante el despliegue.
-
Eliminar un despliegue
Para desinstalar o eliminar un despliegue, ejecute el siguiente mandato de Helm para la versión que desea eliminar.
helm delete release-name
-
Desplegar por primera vez
-
Realice el despliegue cuidadosamente.
Al instalar o actualizar HCL Commerce, el inicio debe seguir una secuencia precisa. El Contenedor de soporte se utiliza principalmente para comprobaciones de dependencia de servicio con el fin de asegurarse de que las diversas aplicaciones de Commerce se han puesto en línea correctamente y en el orden esperado. Además, también lo utilizan algunos trabajos de programa de utilidad, como por ejemplo para la generación de certificados TLS para una entrada segura. El proceso de despliegue puede tardar hasta 10 minutos, en función de la capacidad de los nodos de trabajador de Kubernetes.
Puede comprobar el estado del despliegue. Los siguientes valores se muestran en la columnaStatus
.Running: This container is started.
Init: 0/1: This container is pending on another container to start.
También puede observar los siguientes valores visualizados en la columnaReady
:0/1: This container is started but the application is not yet ready.
1/1: This application is ready to use.
-
Acceda a los entornos.
De forma predeterminada, el Gráfico de Helm utiliza los valores predeterminados de tenant, env y envtype. Si ha cambiado los valores predeterminados, actualice los nombres de host que se utilizan en los siguientes ejemplos de pasos.
- Compruebe la dirección IP del servidor de entrada.
kubectl get ingress -n commerce
- Cree la correlación de IP y nombre de host del servidor de entrada editando el archivo de hosts del entorno de desarrollo.
#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.com
Note:- Para una implementación de Power Linux en OpenShift, se deben utilizar las rutas de OpenShift para exponer los servicios, en lugar del servidor de entrada. El valor
Ingress_IP
en la muestra de hosts debe ser sustituido por la dirección IP del servicio OpenShift. - Para la entrada de Ambassador o Emmisary, la
Ingress_IP
es la dirección IP del servicio de Ambassador o Emissary. search.demoqaauth.mycompany.com
se utiliza para exponer el servicio maestro de búsqueda.searchrepeater.demoqalive.mycompany.com
se utiliza para exponer el servicio de repetidor de búsqueda en el entorno real para desencadenar la réplica de índice.
- Para una implementación de Power Linux en OpenShift, se deben utilizar las rutas de OpenShift para exponer los servicios, en lugar del servidor de entrada. El valor
- Acceda a las páginas y herramientas de su entorno con los siguientes URL:
- Un escaparate de Aurora: https://store.demoqaauth.mycompany.com/wcs/shop/en/auroraesite
- Un escaparate de Esmerald (la nueva tienda de referencia basada en React): https://www.demoqaauth.mycompany.com/Emerald
- Management Center for HCL Commerce: https://cmc.demoqaauth.mycompany.com/lobtools/cmc/ManagementCenter
- Compruebe la dirección IP del servidor de entrada.
-
Cree su índice de búsqueda.
-
Con la solución de búsqueda basada en Solr
- Desencadene el trabajo de creación de índice. Este ejemplo utiliza el spiuser, la contraseña y el ID de catálogo maestro predeterminados.
Se visualiza una respuesta con uncurl -X POST -u spiuser:plain_text_spiuser_password https://tsapp.demoqaauth.mycompany.com/wcs/resources/admin/index/dataImport/build?masterCatalogId=10001 -k
jobStatusId
. - Compruebe el estado del trabajo de compilación de índice utilizando el valor
jobStatusId
devuelto.
Un valor devueltocurl -X GET -u spiuser:plain_text_spiuser_password https://tsapp.demoqaauth.mycompany.com/wcs/resources/admin/index/dataImport/status?jobStatusId=jobStatusId -k
0
indica que la compilación se ha completado correctamente.
Note:- La contraseña predeterminada para el usuario spiuser es
passw0rd
para las versiones de HCL Commerce entre 9.1.0.0 y 9.1.8.0, yQxV7uCk6RRiwvPVaa4wdD78jaHi2za8ssjneNMdu3vgqi
para la versión de HCL Commerce 9.1.9.0 o posteriores. - Es esencial que establezca su propia contraseña spiuser para proteger el despliegue. Para obtener más información, consulte Establecimiento de la contraseña de spiuser en las imágenes de Docker.
- Desencadene el trabajo de creación de índice. Este ejemplo utiliza el spiuser, la contraseña y el ID de catálogo maestro predeterminados.
-
Con la solución de búsqueda basada en Elasticsearch
- Desencadene el trabajo de creación de índice.
Se visualiza una respuesta con 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=1
jobStatusId
.Note:- La contraseña predeterminada para el usuario spiuser es
passw0rd
para las versiones de HCL Commerce entre 9.1.0.0 y 9.1.8.0, yQxV7uCk6RRiwvPVaa4wdD78jaHi2za8ssjneNMdu3vgqi
para la versión de HCL Commerce 9.1.9.0 o posteriores. - Es esencial que establezca su propia contraseña spiuser para proteger el despliegue. Para obtener más información, consulte Establecimiento de la contraseña de spiuser en las imágenes de Docker.
- La contraseña predeterminada para el usuario spiuser es
- Compruebe el estado del trabajo de compilación de índice utilizando el valor
jobStatusId
que se ha devuelto.curl -X GET -u spiuser:plain_text_spiuser_password https://tsapp.demoqaauth.mycompany.com/wcs/resources/admin/index/dataImport/status?jobStatusId=jobStatusId -k
Un valor devuelto de
0
indica que la construcción se ha completado con éxito. Para obtener más información, consulte Compilación del índice de Elasticsearch.
- Desencadene el trabajo de creación de índice.
-
Con la solución de búsqueda basada en Solr