Skip to main content
Version: 8.7.x

Self-Managed Commerce Deployment Solutions

Overview​

Self-Managed Commerce is provided as source code. For many customers, a Self-Managed Commerce implementation project is essentially a software development project. Such customers implement Self-Managed Commerce custom code and have an implementation project team consisting of software developers, software testers, and DevOps engineers.

Typically the development and deployment of a Self-Managed Commerce solution requires the following:

  • Local Development Environments. The developers on the implementation team will require workstations suitable for developing and testing Self-Managed Commerce code changes.
  • Development Process and Tooling. You will require infrastructure to run Self-Managed Commerce builds and tests, and supporting services such as Git services, artifact repositories, and container repositories. You will also require tooling to deploy and update Self-Managed Commerce environments, including production and non-production environments.
  • Non-Production Infrastructure You will require compute clusters to run Self-Managed 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 Self-Managed 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 infrastructure, and needs to be suitably scalable and highly-available.

The following diagram illustrates an example of typical infrastructure and components that make up a Self-Managed Commerce continuous integration and deployment solution.

Self-Managed Commerce Deployment Overview

Additional Detail​

More information about the purpose and use of the various deployment components is provided below.

Local Development Environments​

The Self-Managed Commerce developers on the implementation team use a local development environment for developing and testing Self-Managed 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 Self-Managed Commerce code changes that the implementation team will develop over time. We recommend to use container images for deploying Self-Managed 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 Self-Managed 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 Self-Managed Commerce container images.
  • Infrastructure to run Self-Managed 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 Self-Managed Commerce applications behave and perform as required. Infrastructure for Self-Managed 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) messaging solution.
  • A cluster or clusters where you can deploy Self-Managed 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 Self-Managed Commerce production environments consists of the following:

  • A highly available and performant supported relational database solution.
  • A supported Java Messaging Service (JMS) messaging solution.
  • A suitably performant and scalable cluster where you can deploy Self-Managed Commerce service stacks for:
    • Creating and validating production product data. This is typically referred to as the authoring environment. (Optional)
    • Serving production traffic. This is typically referred to as 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.