Overview
CloudOps for Kubernetes provides a way to run Self Managed Commerce in the Amazon Web Services (AWS) public cloud, leveraging AWS Kubernetes and database services. Other services including networking management, CI tools and the Self Managed Commerce applications, run as containers inside the Kubernetes cluster.
CloudOps for Kubernetes Cluster Infrastructure
The CloudOps for Kubernetes platform manages the following cloud and Kubernetes infrastructure:
- An Amazon Elastic Kubernetes Service (EKS) cluster
- Amazon Elastic Container Registry (ECR) repositories
- An Amazon Route53 Zone
- Amazon Elastic Load Balancing
- A DNS CNAME record pointing to the domain name of the EKS cluster network load-balancer
The following are the basic services that are created in the EKS cluster by the initial setup process:
- HAProxy Ingress Controller
- Cert-manager
- Jenkins
- Nexus
- Kubernetes dashboard
- Cluster Autoscaler
- Overprovisioning
- (Optional) ModSecurity Web Application Firewall
- (Optional) Fluentd CloudWatch agent
- (Optional) New Relic Infrastructure agent
Self Managed Commerce Components
Each Self Managed Commerce environment (stack) that is deployed consists of the following:
- A MySQL database, deployed in one of two ways:
- A containerized MySQL service running in Kubernetes
- A managed AWS Aurora RDS MySQL cloud database
- An Apache ActiveMQ service running in Kubernetes
- The Self Managed Commerce Kubernetes services, deployed in their own Kubernetes namespace
- Cortex
- Commerce Manager
- Search Primary
- Search Secondary
- Integration
- Batch
- (Optional) Data-Pop
- (Optional) Wiremock
- Kubernetes secrets configured in the same namespace
- (Optional) Horizontal Pod Autoscaler (HPA)
Example Diagram
The following is an example of a Self Managed Commerce environment:
In the preceding diagram, there are two deployments of the Elastic Path stack: one in the Author namespace and one in the Live namespace. These namespaces refer to the environments that they provide. The intent of an author environment is to create and update catalog content. The live environment is intended to serve live catalog data and handle API calls. Both Elastic Path stacks are deployed in the same Kubernetes cluster within one AWS account.
For more information about the roles and details on the functionality provided by each of the Pods in the namespaces, see the Self Managed Commerce documentation.
Optional Components
For more information about the New Relic Infrastructure agent, see: