Team Infrastructure Requirements
Overview
This section provides the technical specifications for the following servers that Elastic Path Commerce setup requires:
- Maven repository server
- Continuous integration server
- Development team application server
Infrastructure Prerequisites
Source Control
- Create projects and repositories
- Commit or push changes
- Create an account for the continuous integration server with read and commit permissions
Elastic Path recommends GitHub Enterprise for source control.
Email server
- Send email with the Maven repository server, the continuous integration server, and the development team application server
- Configure the email distribution list for the continuous integration server to send build results to the team
New and Updated Infrastructure
This section provides provisioning specifications for the infrastructure. You can use existing infrastructure with the following provisioning specifications, or provision a new infrastructure.
note
Maven credentials are required to access the Elastic Path Maven repositories. To request Maven credentials, open a support ticket.
Maven repository server
This server:
- Retrieves external Maven dependencies
- Hosts artifacts built by your projects
The tools used are:
- Linux
- Nexus
Continuous integration server
This server:
- Builds projects
- Deploys build artifacts to the Maven repository
- Runs automated tests
- Deploys Elastic Path runtime environment to external servers
The tools used are:
- Linux
- Jenkins
Development team application server
This server is the Elastic Path runtime environment for use by the development team.
The tools used are:
- Linux
- Tomcat
- MySQL
- ActiveMQ
Provision Specifications
This section provides the specifications for the tools that Elastic Path uses. Other tools might require different specifications than what is listed below.
The server size is based on an infrastructure for smaller development teams. Additional resources are required to support multiple teams.
note
Refer to Elastic Path Commerce Supported Technologies for additional information on supported platform technologies.
Maven Repository Server and Continuous Integration Server
For a small team, run these items on the same virtual machine. For larger teams, you might require additional resources to support multiple teams.
Continuous integration slave can be run in a separate virtual machine. The continuous integration slave executes long running batch jobs with heavy CPU and disk use.
System Specification
- OS: Amazon Linux 2
- CPU: 4 cores
- Memory
- CI Server Master: 4 GB
- CI Server Slave: 16 GB
- Disk
- CI Server Master: 150 GB
- CI Server Slave: 75 GB
- User Accounts: One user with
sudo
privilege - Security: SSH key to access source control, if required
- System Changes
- CI Server Slave: Increase the maximum number of open file descriptors allowed to
132000
- CI Server Slave: Increase the maximum number of open file descriptors allowed to
Software Specification
- JDK(Java Developer Kit): Zulu Java JDK
8u202
- Maven:
3.6.2
- Git: Latest
- Wget: Latest
Firewall Specification
The following ports are accessible:
Jenkins
Port:
8080
Accessible by:
- Development team
- Quality Assurance team
- DevOps team
Nexus
Port:
8081
Accessible by:
- Continuous integration master
- Continuous integration slave
- Development team
- Quality Assurance team
- DevOps team
SSH
Port: 22
Accessible by:
- Continuous integration master
- DevOps team
note
The requirements are for four slave nodes on one server.
Development Team Application Server
Run the development team application server in a separate virtual machine.
System Specification
- OS: Amazon Linux 2
- CPU: 4 cores
- Memory: 10 GB
- Disk: 40 GB
- User Accounts: One user with
sudo
privilege - Security: Java keystore file for Tomcat HTTPS connector, SSH key for user to SCP (Secure Copy Protocol) from server back into the server
Software Specification
Java JDK: Zulu Java JDK
8u202
Ensure that
JAVA_HOME
environment variable is configuredMySQL:
5.7
Firewall Specification
The following ports are accessible:
Elastic Path
Port:
8080
Accessible by:
- Continuous integration slave
- Development team
- Quality Assurance team
- DevOps team
Port:
8043
Accessible by:
- Continuous integration slave
- Development team
- Quality Assurance team
- DevOps team
Port:
8061
Accessible By:
- Development team
- Quality Assurance team
- DevOps team
Port:
61616
Accessible by:
- Development team
- Quality Assurance team
- DevOps team
MySQL
Port:
3306
Accessible by:
- Development team
- Quality Assurance team
- DevOps team
SSH
Port:
8081
Accessible by:
- Development team
- Quality Assurance team
- DevOps team
MySQL Specifications
- Character set:
UTF-8
- Case sensitivity: Case insensitive, including schema and table names
- Port:
3306
- Admin user:
- Use the
CREATE
andDROP
commands for databases and tables - Use the
CREATE
command to add users andGRANT
command to add user privileges
- Use the