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.

Important: El entorno que cree no debe utilizarse para un sitio de producción real sin tener en cuenta un refuerzo de la seguridad, el equilibrio de carga, el direccionamiento de entrada y el ajuste de rendimiento. Para operar con HCL Commerce versión 9.1 en un entorno de producción real, debe comprometer más tiempo y recursos a consideraciones de rendimiento y seguridad.

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.
  • HCL Commerce Version 9.1.7.0 or later 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.
  • HCL Commerce Version 9.1.14.0 or later

Procedure

  1. 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

    1. Despliegue Elasticsearch.
      1. Cree un espacio de nombres para Elasticsearch.
        kubectl create ns elastic
      2. Añada el repositorio de Gráficos de Helm.
        helm repo add elastic https://helm.elastic.co
      3. Despliegue Elasticsearch utilizando un archivo local elasticsearch-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.

        helm install elasticsearch elastic/elasticsearch -n elastic -f elasticsearch-values.yaml --version="elasticsearch-chart-version"
      4. 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 Elasticsearch con Helm, consulte la Documentación del Gráfico de Helm de Elasticsearch.

    2. Despliegue Zookeeper.
      1. Cree un espacio de nombres para Zookeeper.
        kubectl create ns zookeeper
      2. Añada el repositorio de Gráficos de Helm.
        helm repo add bitnami https://charts.bitnami.com/bitnami
      3. Despliegue Zookeeper con el archivo de configuración de implementación zookeeper-values.yaml proporcionado.

        Puede encontrar una copia de este archivo en el directorio sample_values de su proyecto Helm Chart Git clonado HCL Commerce.

        helm install my-zookeeper bitnami/zookeeper -n zookeeper -f zookeeper-values.yaml --version="zookeeper-chart-version"
        PowerNote: Para realizar el despliegue basado en Power anterior a HCL Commerce 9.1.12.0, debe descargar y modificar el gráfico de Zookeeper Helm antes de desplegarlo con el archivo de configuración de despliegue zookeeper-values.yaml proporcionado.
        1. Descargue gráfico de Helm.
          helm pull bitnami/zookeeper --version "zookeeper-chart-version"
        2. Extraiga el gráfico Helm.
        3. Modifique el archivo de configuración statefulset.yaml dentro del directorio templates del gráfico Helm de Zookeeper.
          1. Abra el archivo para editarlo.
          2. Actualice la sección de comandos con las siguientes adiciones.
              1. Ubique la línea.
                HOSTNAME=`hostname -s`
              2. Antes de esta línea, inserte el mandato siguiente.
                yum install -y hostname
              1. Ubique la línea.
                exec /entrypoint.sh /run.sh
              2. Sustituya esta línea por la siguiente.
                exec /usr/bin/start-zk.sh
          3. Guarde y cierre el archivo.
        4. Despliegue Zookeeper con helm install utilizando los valores modificados con el archivo de configuración de implementación de zookeeper-values.yaml proporcionado.

          Puede encontrar una copia de este archivo en el directorio sample_values de su proyecto Helm Chart Git clonado HCL Commerce.

          helm install my-zookeeper modified_zookeeper_helm_chart_path -n zookeeper -f zookeeper-values.yaml
      4. 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 Zookeeper con Helm, consulte la Documentación del Gráfico de Helm de Zookeeper.

    3. Despliegue Redis.
      1. Cree un espacio de nombres para Redis.
        kubectl create ns redis
      2. Añada el repositorio de Gráficos de Helm.
        helm repo add bitnami https://charts.bitnami.com/bitnami
      3. Despliegue Redis utilizando un archivo local redis-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.

        helm install my-redis bitnami/redis -n redis -f redis-values.yaml --set master.disableCommands="" --version="redis-chart-version"
      4. 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 Redis con Helm, consulte la Documentación del Gráfico de Helm de Redis.

  2. Optional: HCL Commerce Version 9.1.12.0 or later Si tiene previsto habilitar el servicio de aprobación para utilizarlo en Marketplace, deberá desplegar PostgreSQL para utilizarlo como base de datos.
    1. Cree un espacio de nombres para PostgreSQL.
      kubectl create ns postgresql
    2. Añada el repositorio de Gráficos de Helm.
      helm repo add bitnami https://charts.bitnami.com/bitnami
    3. 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" 
    4. 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.

  3. 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.
  4. 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
      1. Despliegue el grupo share con el nombre de la versión demo-qa-share en el espacio de nombres commerce.
        helm install demo-qa-share hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=share -n commerce
      2. Despliegue el grupo auth con el nombre de la versión demo-qa-auth en el espacio de nombres commerce.
        helm install demo-qa-auth hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=auth -n commerce
      3. Despliegue el grupo live con el nombre de la versión demo-qa-live en el espacio de nombres commerce.
        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.

    • 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:
          1. 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.
          2. 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:
          1. Suprima la instancia existente de Zookeeper.
            helm delete my-zookeeper -n zookeeper
          2. Elimine las reclamaciones de volúmenes permanentes existentes.
            kubectl delete pvc --all -n zookeeper
          A continuación, siga el paso 1.b.iii para volver a desplegar Zookeeper.
      • 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.
    • 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
  5. 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 columna Status.
    • 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 columna Ready:
    • 0/1: This container is started but the application is not yet ready.
    • 1/1: This application is ready to use.
  6. 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.
    1. Compruebe la dirección IP del servidor de entrada.
      kubectl get ingress -n commerce
    2. 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:
      • HCL Commerce Version 9.1.7.0 or laterPowerPara 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.comse 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.
    3. 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
  7. Cree su índice de búsqueda.
    • Con la solución de búsqueda basada en Solr
      1. Desencadene el trabajo de creación de índice. Este ejemplo utiliza el spiuser, la contraseña y el ID de catálogo maestro predeterminados.
        curl -X POST -u spiuser:plain_text_spiuser_password https://tsapp.demoqaauth.mycompany.com/wcs/resources/admin/index/dataImport/build?masterCatalogId=10001 -k
        Se visualiza una respuesta con un jobStatusId.
      2. Compruebe el estado del trabajo de compilación de índice utilizando el valor jobStatusId 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 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, y QxV7uCk6RRiwvPVaa4wdD78jaHi2za8ssjneNMdu3vgqipara 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.
    • Con la solución de búsqueda basada en Elasticsearch
      1. Desencadene el trabajo de creación de índice.
        curl -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
        Se visualiza una respuesta con un 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, y QxV7uCk6RRiwvPVaa4wdD78jaHi2za8ssjneNMdu3vgqipara 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.
      2. 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.

Results

El despliegue de HCL Commerce Version 9.1 Kubernetes se ha completado.