Elastic Path Commerce Deployment Solutions
Overview
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.
Typically the development and deployment of an Elastic Path Commerce solution requires the following:
- Local Development Environments. The developers on the implementation team will require workstations suitable for developing and testing Elastic Path Commerce code changes.
- Development Process and Tooling. You will require infrastructure to run Elastic Path Commerce builds and tests, and supporting services such as Git services, artifact repositories, and container respositories. You will also require tooling to deploy and update Elastic Path Commerce environments, including production and non-production environments.
- Non-Production Infrastructure You will require compute clusters to run Elastic Path Commerce services for non-production environments. Those services will also require relational databases and Java Message Service (JMS) services.
- Production Infrastructure You will require compute clusters to run Elastic Path Commerce services for production environments. Those services will also require relational databases and Java Message Service (JMS) services. This infrastructure is almost always separate from the non-production infrastrcture, and needs to be suitably scalabale and highly-available.
The following diagram illustrates an example of typical infrastructure and components that make up an Elastic Path Commerce continuous integration and deployment solution.
Additional Detail
More information about the purpose and use of the various deployment components is provided below.
Local Development Environments
The 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.
Development Process and Tooling
Your project will require tooling to integrate, build, test, and deploy the Elastic Path Commerce code changes that the implementation team will develop over time. We recommend to use container images for deploying Elastic Path Commerce. Assuming that your project will use container images, the required infrastructure will include the following:
- A Git source control system where you will host your copy of the
ep-commerce
source repository. - A Maven artifact repository that your Elastic Path Commerce developers and build system will use to obtain software artifacts.
- A continuous integration (CI) build system to run the Maven-based build and test jobs. This will output a set of container images.
- A private container image repository where the set of container images can be stored and managed.
- Tooling to deploy and configure Elastic Path Commerce container images.
- Infrastructure to run Elastic Path Commerce test environments.
For more information, see Development Process and Tooling.
Non-Production Infrastructure
The implementation team requires non-production environments to validate that the Elastic Path Commerce applications behave and perform as required. Infrastructure for Elastic Path Commerce non-production environments typically consists of the following:
- A relational database solution. A containerized-database may be suitable for some test environments.
- A supported Java Messaging Service (JMS) mesaging solution.
- A cluster or clusters where you can deploy Elastic Path Commerce service stacks for:
- Integration and quality assurance (QA) testing.
- Performance and scalability testing.
- User-acceptance testing.
- Tooling to collect, view and monitor application and system data. Such tools might include logging aggregators, application performance monitors, and monitoring solutions.
For more information, see Infrastructure Options.
Production Infrastructure
The implementation team prepares and deploys highly scalable and highly available infrastructure suitable for production workloads. Infrastructure for Elastic Path Commerce production environments consists of the following:
- A highly available and performant supported relational database solution.
- A supported Java Messaging Service (JMS) mesaging solution.
- A suitably performant and scalable cluster where you can deploy Elastic Path Commerce service stacks for:
- Creating and validating production product data. This is tyically referred to the authoring environment. (Optional)
- Serving production traffic. This is tyically referred to the live environment.
- Tooling to collect, view and monitor application and system data. Such tools might include logging aggregators, application performance monitors, and monitoring solutions.
For more information see Infrastructure Options.