Elastic Path Commerce is provided as source code. For many customers, an Elastic Path Commerce implementation project is essentially a software development project. Such customers implement Elastic Path Commerce custom code and have an implementation project team consisting of software developers, software testers, and DevOps engineers.
Elastic Path provides support if Elastic Path Commerce is deployed on supported platforms, such as certified and compatible platforms. For more information, see Supported Technologies.
Local Development Environments
Elastic Path Commerce developers on the implementation team use a local development environment for developing and testing Elastic Path Commerce code and tools. For more information, see the Developer Environment section of the Getting Started Guide.
The implementation team requires some or all of the following items during development:
- Build and continuous-integration (CI) tools for building and testing Elastic Path Commerce code changes.
- Elastic Path Commerce development and quality-assurance (QA) environments for functional validation and regression testing.
- An Elastic Path Commerce staging environment where business users can validate that both custom and out-of-the-box features function as desired. The staging environment may consist of an authoring and live pair.
- An Elastic Path Commerce performance environment where scalability, load and endurance testing and tuning can occur.
- Deployment tools and jobs to regularly push updated Elastic Path Commerce code to development and QA environments.
- Promotion pipelines to promote Elastic Path Commerce code changes from lower environments to higher environments.
The implementation team prepares and deploys highly scalable and highly available infrastructure suitable for production workloads. An Elastic Path Commerce production environment may consist of both an authoring environment and a live environment. The authoring environment is typically a smaller environment where data is prepared and validated before making it available to customers. The live environment is typically a highly-scalable and highly-available environment that serves production shopper traffic.
Available Infrastructure Solutions
The first step of an Elastic Path Commerce project is evaluating and choosing from various infrastructure options. Elastic Path does not define specific infrastructure requirements. You can select the following infrastructure options that meet your needs.
- Existing infrastructure you may have that is suitable for building and running an enterprise Java solution like Elastic Path Commerce.
- New infrastructure you might prefer to create for building and running an enterprise Java solution like Elastic Path Commerce.
- CloudOps for Kubernetes, which is a set of tools to provision and configure Kubernetes clusters using Amazon Elastic Kubernetes Service (EKS).
All infrastructure options require investing time and resources. There will be an initial effort required to select and implement your infrastructure, and there will be ongoing effort required to maintain, troubleshoot and support the infrastructure. This ongoing effort will last for the duration of your Elastic Path Commerce system.
For all infrastructure solutions it is the responsibility of the customer to own, operate, maintain and support the infrastructure.
Elastic Path Commerce supports manual installation and deployment on bare-metal or virtual servers. For more information, see the manual installation documentation.
Any infrastrucuture suitable for running containerized enterprise applications can be used to run Elastic Path Commerce containers. Elastic Path provides tooling for building Elastic Path Commerce Docker-style containers. For more information about the containerization tooling see Containerization.
CloudOps for Kubernetes
CloudOps for Kubernetes is a set of tools to provision and configure a Kubernetes cluster using Amazon Elastic Kubernetes Service (EKS). The resulting Kubernetes cluster contains tools to build and test Elastic Path Commerce code, tools to deploy Elastic Path Commerce applications, and tools to run those applications in a secure, scalable and resiliant manner. CloudOps for Kubernetes supports and requires Amazon Web Services (AWS) and uses a very specific architecture with a prescribed set of third-party tools and technologies.
There are advantages and disadvantages of using CloudOps for Kubernetes for your infrastructure. The main advantage is that it can allow you to have infrastructure up and running relatively quickly, provided you are willing to accept the architecture and technology choices inherent in the tooling. Disadvantages include:
- There is a steep learning curve.
- The technologies, solutions and architecture are prescribed for you.
- You must regularly upgrade as described in CloudOps for Kubernetes Support Lifecycle.
Some Elastic Path Commerce customers find that CloudOps for Kubernetes sufficiently aligns with their goals and requirements, and they are able to commit to the requirements of using it. Other customers find that it does not sufficiently align with their goals or technology strategies and they choose a different solution.
For more information, see the CloudOps for Kubernetes documentation.
CloudOps for Kubernetes includes continuous integration (CI) tooling for building and testing Elastic Path Commerce. Elastic Path Commerce container images built using the CloudOps for Kubernetes CI tooling can be run on any infrastructure that supports Docker-style containers. Even if you do not use CloudOps for Kubernetes for your production infrastructure, it may still be a suitable way to quickly provide CI tooling for your Elastic Path Commerce implementation team.
The following matrix provides a quick comparison between two infrastructure options.
|Characteristic||CloudOps for Kubernetes||Containerized|
|Deployment model||AWS Public Cloud (self-managed)||Selected by Customer’s Team|
|Technology choices||Prescribed by Elastic Path||Selected by Customer’s Team|
|Technical architecture||Prescribed by Elastic Path||Selected by Customer’s Team|
|Skill requirements||Prescribed by Elastic Path||Resulting from Customer’s Design|
|Upgrade cycle||Annually or sooner||Resulting from Customer’s Design|
|Container orchestrator||Amazon EKS||Selected by Customer’s Team|
|Infrastructure-as-Code Tooling||Terraform and other||Selected by Customer’s Team|
|Continuous Integration (CI) Tooling||Jenkins and Nexus 2||Selected by Customer’s Team|
|Application Deploy Tooling||Terraform||Selected by Customer’s Team|
|Production database||Amazon RDS or Aurora||Selected by Customer’s Team|
|Application Performance Monitoring (APM)||Selected by Customer’s Team||Selected by Customer’s Team|
|Logging integration||Selected by Customer’s Team||Selected by Customer’s Team|
|Alerting & monitoring||Selected by Customer’s Team||Selected by Customer’s Team|