Elastic Path CloudOps for AWS

Author-Live Architecture

Author-Live Architecture

A complete Elastic Path Commerce stack includes Authoring and Live environments, with the Live environment configured for performance, reliability, and scalability. In addition to production use, you can use these environments for pre-production, performance, and robustness testing.

The architecture of an Author and Live environment is illustrated in the following diagram:


Authoring Environment

The Elastic Path Authoring environment provides business users the ability to manage and preview products, promotions, and pricing, and to publish changes to the Live environment using the Data Sync Tool. The Authoring environment is an internally focused environment, so the load and reliability requirements are low. All Elastic Path applications are deployed onto a single EC2 instance. Other services used by this single instance, such as the database and the ActiveMQ server, are deployed separately.

Live Environment

The Elastic Path Live environment delivers shopping services through the Cortex API, customer support and order management capabilities through the Commerce Manager, and the application and support for back-end integrations with the Integration server.

Elastic Path Application Nodes

The Elastic Path Commerce application nodes are comprised of the Cortex, Commerce Manager, and the Integration servers, along with their dependencies, which includes a slave search instance and the necessary file assets. The application nodes provide commerce services to front-end services and are scaled horizontally to meet transactional demand and to maintain reliability.

Most applications run on Docker containers on EC2 instances managed by ECS, with the exception of ActiveMQ, which runs directly on EC2 instances. The Docker containers are uniquely attributed to maximize the performance and functionality for a particular server.

Cortex Nodes

The Cortex nodes provide the Cortex API service along with Cortex Studio, a web application for interaction with the Cortex API. The node also contains a search server. The Cortex nodes are the only Elastic Path application nodes that automatically scale beyond one node to adjust for load in the default Elastic Path CloudOps for AWS.

Commerce Manager Node

The Commerce Manager node is for business users to administer Elastic Path Commerce and contains the Commerce Manager server and a search slave.

Integration Node

Elastic Path Integration node provides a central point for back-end integrations and contains the integration server and a search slave.

Other Nodes and Services

Admin Node

The Elastic Path Admin node is a singleton node that contains the search master server and the batch server.

ActiveMQ Cluster

The ActiveMQ cluster provides a redundant JMS service to the Elastic Path applications through two ActiveMQ nodes, one active node and one fall-back node. The two nodes share storage through an AWS Elastic File System (EFS).

MySQL Database

A MySQL database is used for all Elastic Path Commerce data needs. Both the Author and the Live environment use AWS RDS to provision the databases. Amazon RDS handles routine database tasks, such as provisioning, patching, backup, recovery, failure detection, and repair. You can also replicate the database into other availability zones for failover scenarios.

AWS Services

EC2 (Virtual Machines)

Application nodes run on AWS Elastic Compute Cloud (EC2) instances within an Amazon Virtual Private Cloud (VPC). You can alter EC2 instance sizes to fit any implementation. However, Elastic Path recommends using c5.xlarge instances for the production environment and a single c5.2xlarge instance for the test environment. The number of instances depend on the implementation's throughput requirements, which can be scaled with the EC2 auto-scaling.

ECS (Containers)

Each node hosts components of Elastic Path Commerce that run in individual Docker containers. The containers are uniquely attributed to maximize the performance and functionality within the particular node. App Nodes are auto-scaled and balanced using AWS ECS and ELB.

RDS (Database)

Elastic Path uses Amazon's Aurora Relational Database Service (RDS) to provision the production environment's database. Amazon RDS handles routine database tasks, such as provisioning, patching, backup, recovery, failure detection and repair. The database can be replicated into other availability zones for failover scenarios.