Planning your container infrastructure

Determine which software you want to use to build an infrastructure that can support the containers that are running your HCL Commerce application.

For more information about Docker, see the Docker website.
Note: HCL is not responsible for your infrastructure. Use the following high-level information as a guide to decide how you want to build your infrastructure to suit your unique business requirements.
The following image is a representation of the components that you need to consider when deciding how to build your container platform.
Layers
  • 1 Determine where you want to host and run your containers for production. You can host HCL Commerce on a bare metal machine, in the Cloud, or within virtual machines.
  • 2 Determine which network configuration to use for containers to communicate with each other. For more information, see Docker container networking.
  • 3Determine the security configuration and certificates.
  • 4 Determine which tools to use to persist important data as containers are destroyed and created.
    • Communication between containers requires specific configurations and access to sensitive information such as API keys, passwords, and certificates. Determine which data management system to use to securely store and access this data. Create a strategy to update container configurations as containers are created and destroyed or when new Docker hosts are added to your environment. To understand more about the necessary configurations, see Docker container start up logic for HCL Commerce Version 9.1.

      Some software examples for data management include Vault, Consul, and ETCD.

    • As search-app containers are destroyed or created, you need to persist the search index data to the new containers because your store relies on the search index. Determine which remote storage system to use to store the search index for the search master and repeater nodes.

      Some examples for remote storage include GlusterFS, ScaleIO, or Ceph.

  • 5 Now that your containers are configured, create a strategy to monitor the health of your entire system to prevent outages from occurring or minimizing the impact of unexpected failures. Logs for HCL Commerce are captured inside the containers so you need determine how to collect log entries across all your containers. You also need to determine how to display the information in an organized, readable structure and how to search these logs to support troubleshooting issues.

    Some software examples for logging and monitoring include Graylog, ELK, or Prometheus.

  • 6, 7 The HCL Commerce application runs in separated Docker containers. You can cluster these containers to achieve redundancy. As business demands increase, you might need to deploy more Docker hosts and more container clusters. Determine which Docker orchestration tool to use to manage the container lifecycle to update, replace, scale up, or scale down as needed.
  • 8 At this point, your application works within the internal network but you also need to integrate with third party systems and expose your containers to external traffic. Determine an appropriate load balancing solution that incorporates service registry and discovery automatically. While setting up load balancing, you also need to consider support for running multiple versions of your application at the same time to prevent dropped connections or routing traffic to the wrong version during maintenance upgrades or customization deployment.

    Some software examples to achieve load balancing and service registry and discovery include NGINX, DC/OS VIP, or Marathon-LB.

The following table illustrates the provided reference solutions for the applications on the Docker container platform.
Important: Because the Docker container platform can be set up based on varied technologies, the information provided in this table is only for your reference. You need to adjust the provided reference solutions or adopt other solutions based on your business needs in the production environment.
Table 1. Reference solutions on Docker container platform
Platform layer Function Applications/Reference solutions
DC/OS Kubernetes
Load balance layer Load balance (external/internal) Marathon-LB Ingress
Application layer Applications HCL Commerce HCL Commerce
Control layer Service registry and discovery Internal DNS Internal DNS
Scaling DC/OS capability Kubernetes capability HCL Commerce deployment utilities2
Docker orchestration /Scheduling DC/OS capability Kubernetes capability
Deployment orchestration (Deployment pipeline) Jenkins Jenkins HCL Commerce deployment utilities 2
Application catalog N/A1 N/A1
Operation layer Logging N/A1 ELK
Monitoring (alert, health check, etc) N/A1 Prometheus
Persistence layer Storage PersistentVolumeClaim (PVC)
Configuration Consul/Vault Consul/Vault
Foundation layer Security scan N/A1 N/A1
Certificate management Vault Vault
Network layer Networking N/A1 N/A1
Hypervisor layer Container OS CentOS or Redhat CentOS or Redhat
Hypervisor (internal/virtual machine/bare metal) ESX ESX
1HCL does not provide reference white paper for these solutions. However, you can apply any existing solutions in the industry based on your business needs.
2This tool chain is available within GitHub and is provided for reference purposes only. HCL does not provide support for the usage of the tool chain.