Elastic Path CloudOps for Kubernetes is an infrastructure-as-code asset available to Elastic Path Commerce customers to assist with Elastic Path Commerce infrastructure development and deployment.
With CloudOps for Kubernetes you receive
- A solution that provides several options and alternatives for deploying and configuring Elastic Path Commerce infrastructure.
- A solution that takes time and effort to evaluate, understand, customize and operate.
- A solution with technical architecture and technology choices that are suitable for many Elastic Path Commerce customers.
- A solution with infrastructure source code that you can extend and modify to meet your unique requirements.
Other Infrastructure Options
CloudOps for Kubernetes is not the only option available for deploying Elastic Path Commerce infrastructure. For more information about the available options, see the Elastic Path Commerce Deployment Solutions documentation.
Evaluating CloudOps for Kubernetes
The Elastic Path CloudOps for Kubernetes asset is complex and deploys a wide variety of AWS cloud and Kubernetes infrastructure in a prescriptive way. Any customer considering whether to use CloudOps for Kubernetes should review and consider the following points:
- The technology choices, design decisions and capabilities of Elastic Path CloudOps for Kubernetes.
- The technical architecture of the infrastructure that is provisioned by Elastic Path CloudOps for Kubernetes.
- The alignment of the technology choices and architecture to your available skills, corporate technology standards, and other infrastructure requirements.
- The effort and skills required to modify the asset to meet any custom requirements.
- The effort and skills required to deploy and configure the infrastructure.
- The effort and skills required to maintain and operate the infrastructure.
- The effort and skills required to understand, operate and maintain the build infrastructure and the continuous integration (CI) and code promotion jobs.
When an Elastic Path Commerce customer chooses to use the CloudOps for Kubernetes asset to build and deploy their Elastic Path Commerce solution they take on the following responsibilities:
- Be accountable and responsible for the ongoing health, operation and maintenance of all components and services deployed through the use of CloudOps for Kubernetes.
- Understand and troubleshoot the Infrastructure-As-Code technologies used in Elastic Path CloudOps for Kubernetes, such as Terraform, Docker, Helm and eksctl.
- Understand the technical architecture of the infrastructure that is provisioned by Elastic Path CloudOps for Kubernetes.
- Maintain the knowledge and skills necessary to navigate, troubleshoot and operate the cloud infrastructure technologies. These are provisioned and deployed by Elastic Path CloudOps for Kubernetes, such as Amazon EKS and Amazon Aurora, and Kubernetes and Cloud-Native technologies.
- Understand the CloudOps for Kubernetes Support Lifecycle.
Customizing CloudOps for Kubernetes
Elastic Path does not intend or expect that CloudOps for Kubernetes will fulfill all requirements for every customer or meet the needs of all Elastic Path Commerce customers. Customers who choose to use Elastic Path CloudOps for Kubernetes as the basis for their infrastructure development often extend or customize it to meet their unique goals and requirements. Elastic Path Commerce customers are welcome to extend or customize the CloudOps for Kubernetes code. Doing so creates a fork of the Elastic Path CloudOps for Kubernetes code.
When you do fork the CloudOps for Kubernetes code, you take on the following responsibilities:
- Ensure the proper design, implementation and functionality of modifications and extensions.
- Troubleshoot and resolve any issues with Elastic Path Commerce or Elastic Path CloudOps for Kuberernetes resulting from the modifications and extensions.
- Maintain and update the fork of the CloudOps for Kubernetes code by implementing code fixes and merging CloudOps for Kubernetes updates provided by Elastic Path.
The infrastructure deployed by CloudOps for Kubernetes includes the following items:
- A managed Amazon Elastic Kubernetes Service (EKS) cluster in its own Amazon Virtual Private Cloud (VPC).
- Kubernetes services for ingress control, cluster autoscaling, and pod autoscaling.
- A Jenkins server and other build infrastructure, running in the Kubernetes cluster.
- Jenkins pipeline jobs for building, testing and publishing Elastic Path Commerce artifacts, including Elastic Path Commerce docker images.
- Jenkins pipeline jobs for deploying and managing Elastic Path Commerce services in the Kubernetes cluster, and the cloud resources required by the Elastic Path Commerce services.
- The option to deploy and Prometheus and Grafana for additional metrics and insight.
CloudOps for Kubernetes uses technology that is common in Kubernetes and cloud infrastrucutre development, such as Terraform and Helm. The VPC and EKS cluster are deployed with a command line tool called
eksctl and all Elastic Path Commerce services are deployed and managed by Terraform. The provided Jenkins jobs enable DevOps engineers to quickly build, configure and deploy Elastic Path Commerce services.
Given the broad adoption and standardization on Kubernetes for containerized workloads, CloudOps for Kubernetes provides an approach that many DevOps engineers are comfortable with and can customize to adapt to their needs.
Build, Test and Continuous Integration
Elastic Path Commerce is provided as source code. Elastic Path Commerce customers regularly extend and customize that source code to meet their unique and evolving business requirements. Elastic Path Commerce projects are software development projects requiring software build and integration tools. CloudOps for Kubernetes provides tooling and includes Jenkins pipelines for continuous integration (CI), promotion and deployment of Elastic Path Commerce code changes.
With the Jenkins server included in CloudOps for Kubernetes, you can:
- Run various types of software tests to validate your Elastic Path Commerce source code customizations.
- Perform development and integration builds.
- Build Docker images from Elastic Path Commerce source code and push the images into the Amazon ECR (Elastic Container Registry) docker-registry service.
- Promote Elastic Path Commerce Docker images from one account to the other.
In addition to allowing you to build and validate your Elastic Path Commerce code changes, CloudOps for Kubernetes includes Jenkins jobs to provision and manage the Elastic Path Commerce environments. Those Jenkins jobs use Terraform to:
- Provision and manage the cloud services required by Elastic Path Commerce environments.
- Provision and manage Elastic Path Commerce databases.
- For development, test, and production-like environments, you can deploy, update and manage Elastic Path Commerce Kubernetes services.
Review the Architecture section for an overview of the architecture of Elastic Path environments deployed and managed with CloudOps of Kubernetes.
Review the Build Infrastructure section for an overview of the build services deployed as part of CloudOps of Kubernetes.