Project Overview
Implementing your Self Managed Commerce infrastructure requires thoughtful consideration and planning. However, your Self Managed Commerce development team may want to begin development quickly. This document describes a recommended approach to planning and implementing your Self Managed Commerce infrastructure.
Create Initial Development Infrastructure
Your Self Managed Commerce development team may be ready to begin development and require continuous integration (CI) infrastructure very quickly. We recommend setting up an AWS account for Self Managed Commerce development using the out-of-the-box CloudOps for Kubernetes infrastructure code, using the default options, early in the project.
- This will allow you to quickly provide your Self Managed Commerce development team with Self Managed Commerce build and continuous integration (CI) tools.
- This will also give you an opportunity to explore the technology and architecture included with CloudOps for Kubernetes.
Once deployed, the development team can make use of the available Self Managed Commerce CI Pipelines to build and test their code. If preferred, the AWS account and the Self Managed Commerce environments deployed in this account can remain isolated from your other systems and infrastructure until you have completed an evaluation of the CloudOps for Kubernetes technology and architecture.
For more information on getting started, see the Initial Setup Guide.
Evaluate Infrastructure Requirements
Begin an effort to understand your long-term Self Managed Commerce infrastructure requirements and evaluate the options to meet those requirements. CloudOps for Kubernetes is an Infrastructure-as-Code asset that can accelerate your Self Managed Commerce infrastructure development, but is not expected to meet all requirements.
To evaluate CloudOps for Kubernetes:
- Review the information at Evaluating CloudOps for Kubernetes.
- Inspect and explore an AWS account configured using the out-of-the-box CloudOps for Kubernetes infrastructure code, using the default options.
- Review the CloudOps for Kubernetes source code.
- Review this documentation.
It is important to understand that even if CloudOps for Kubernetes does align well with your requirements, it does not provide a turn-key production environment. A number of additional factors and steps must be considered before going live with a Self Managed Commerce production environment.
The remaining documentation is for customers who have chosen to use the CloudOps for Kubernetes asset as the basis of the long-term Self Managed Commerce infrastructure development.
Determine Required Self Managed Commerce Environments
Determine what Self Managed Commerce environments you will need. Things to consider include:
- What environments do developers require and how will they be used?
- What environments do testers require and how will those be used?
- Where will performance, load and endurance testing be performed?
- Where will user-acceptance testing occur?
The following table lists typical Self Managed Commerce environments.
Name | Example Usage | Notes |
---|---|---|
Continuous Integration (CI) | Development Continuous Integration | Consider using the commerce-branch-validation job to deploy ephemeral CI environments. |
Nightly | QA testing | Consider using the commerce-test-and-deploy job stand up and deploy nightly to the QA environment. |
Performance | Load, scalability and endurance testing | The performance environment is usually configured to mimic the live production environment. |
Staging Authoring | Used for user-acceptance testing | An authoring environment is typically where user-facing data is prepared and validated before making it live. Having a staging authoring environment allows you to practice the process of syncing data from authoring to live, and to validate that the process works as expected. |
Staging Live | Used for user-acceptance testing | A live environment is typically the environment that serves API requests to the API clients for users. |
Production Authoring | Used to prepare production data | An authoring environment is typically where user-facing data is prepared and validated before making it live. |
Production Live | Used to serve production API requests | The production live environment is the environment that serves API requests for your production API clients for users, production stores, and their shoppers. |
Consider Infrastructure Topology
CloudOps for Kubernetes infrastructure and Self Managed Commerce environments have many configuration options. Most configuration options can be updated easily over time, but basic topology should be planned in advance. Questions to consider include:
- Will some environments be separated from others to meet isolation requirements?
- Will some environments be separated from others for access control considerations?
- Will some environments be separated from others to track costs more-easily?
- Will some environments be separated from others for performance considerations?
The recommended mechanism to separate environments is to deploy them in separate AWS accounts. Typically the Self Managed Commerce production components are deployed in a separate AWS account. Reasons to consider separate accounts include:
- To fully isolate the environments.
- To improve access control and provide.
- To provide separation of concerns.
- To separate AWS costs and billing.
Deploy the Infrastructure and Services
The Overall Workflow shows an overview of all steps to be completed to deploy Self Managed Commerce services using CloudOps for Kubernetes. The Initial Setup Guide describes the procedure to setup the infrastructure and leads you to the steps to build and deploy Self Managed Commerce code and services.
After you complete the setup, you will have deployed the Elastic Path build infrastructure and one or more Elastic Path environments, all within your CloudOps for Kubernetes cloud account. Important post-setup tasks will remain.
Post Setup Tasks
After you have successfully created Elastic Path environments using CloudOps for Kubernetes, you also must implement some other functionality. The following list of tasks is included in a typical implementation, which is not implemented as a part of CloudOps for Kubernetes. You must complete these tasks before your Elastic Path environment is ready for testing and development cycles:
- Tagging and update strategy for container images to fill out the continuous integration pipeline
- Optionally, update or implement custom Jenkins pipeline jobs to support any custom pipeline requirements
- Configure an SMTP or email solution so that automated emails can be sent from Elastic Path environments
- Configure the Data Import Export tool to synchronize data from external systems
- Set up and configure the Data Sync tool to sync data from Author to Live environments
- Configure monitoring and alerts for Production environments
Production Readiness
To prepare for a production cut over of CloudOps for Kubernetes, see Production Readiness Overview.
Upgrades
You must regularly upgrade your CloudOps for Kubernetes environment to maintain compatibility with your cloud service provider and third-party components. It is also required to ensure your Self Managed Commerce environment remains supported and supportable.
For information about the CloudOps for Kubernetes end of support dates, see Support Lifecycle.
For information about upgrading CloudOps for Kubernetes, see Upgrading CloudOps for Kubernetes.