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:
Components
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 NodesThe 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 NodeThe Commerce Manager node is for business users to administer Elastic Path Commerce and contains the Commerce Manager server and a search slave.
Integration NodeElastic 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 NodeThe Elastic Path Admin node is a singleton node that contains the search master server and the batch server.
ActiveMQ ClusterThe 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 DatabaseA 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.