Skip to main content
Version: 8.0.x

Team Infrastructure Requirements

Overview​

This section provides the technical specifications for the following servers that Self-Managed 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 Self-Managed 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

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 configured

  • MySQL: 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 and DROP commands for databases and tables
    • Use the CREATE command to add users and GRANT command to add user privileges