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.
- 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.0.0.2 or later.
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.
- 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.0.0.2 or later.
- 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.
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 | Gluster FS Persisting search index data to a Gluster file system | Gluster FS Deploying HCL Commerce Version 9 on Kubernetes |
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. |