Introduction to CloudOps for Kubernetes
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 CloudOps for Kubernetes asset is complex and deploys a wide variety of AWS cloud and Kubernetes infrastructure in a prescriptive way. Evaluate the following before deciding to use CloudOps for Kubernetes:
- The technology choices, design decisions and capabilities of CloudOps for Kubernetes.
- The technical architecture of the infrastructure that is provisioned by 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.
important
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:
- Maintaining the skills required to operate and support Cloudps for Kubernetes for the life of the Elastic Path Commerce system. For information, see Knowledge Requirements.
- Understand the CloudOps for Kubernetes Support Lifecycle and regularly upgrade CloudOps for Kubernetes.
- 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 technologies used in CloudOps for Kubernetes, such as Terraform, Docker, Helm and eksctl.
- Understand the technical architecture of the infrastructure that is provisioned by CloudOps for Kubernetes.
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. For more information about customizing CloudOps for Kubernetes, see Customization Overview.
Infrastructure
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 container 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.
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 container 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 container images from one account to the other.
Deployment Features
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.