Prepare Infrastructure
Prepare Infrastructure
Dependent on | By | Notes |
---|---|---|
Definition of infrastructure requirements | Architecture team | Depends on current infrastructure and corporate standards. |
Overview
In order to start construction with Elastic Path you will need a Maven repository server, a continuous integration server and a dev team application server as shown in Architecture. This page contains the technical specifications for provisioning these servers.
This page also indicates the technologies that EP uses for internal projects. Additional tooling to automate setup is available if you use the same technologies as EP. However, you are free to use other technologies for your project if desired.
Assumed infrastructure
This guide assumes that the following team infrastructure is available.
Component | Provisioning requirements | EP Uses |
---|---|---|
Source control |
| GitHub Enterprise |
Email server |
|
New/updated infrastructure
The following infrastructure will need to be provisioned. You can use existing infrastructure as long as it meets the provisioning specifications below, or you may need to provision new servers.
Server | Function | Tooling provided for |
---|---|---|
Maven repository server |
| Linux / Nexus |
Continuous integration server |
| Linux / Jenkins |
Dev team application server |
| Linux / Tomcat / MySQL / ActiveMQ |
Provisioning specifications
These specifications assume that you're using the same tools that Elastic Path uses as stated in the "EP Uses" column in the table above. Other tools may require different specifications than what is listed below.
The server sizing is for infrastructure dedicated to a single construction team. Additional resources will be required to support multiple teams.
Maven repository server / Continuous integration master
These are normally run on the same VM for small teams.
Item | Requirement | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OS | CentOS 6.x 64bit | ||||||||||||
CPU | 4 cores | ||||||||||||
Memory | 4 GB | ||||||||||||
Disk | 150 GB | ||||||||||||
User Accounts | 1 user with sudo privilege | ||||||||||||
Security | SSH key to access source control (if required) | ||||||||||||
Software |
| ||||||||||||
Firewall | Open up the following ports:
|
Continuous integration slave
The continuous integration slave should be run in a separate VM because it executes long running batch jobs with heavy CPU and disk use.
Item | Requirement | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
OS | CentOS 6.x 64bit | ||||||||||
CPU | 4 cores | ||||||||||
Memory | 16 GB | ||||||||||
Disk | 75 GB | ||||||||||
User Accounts | 4 users with no sudo privilege | ||||||||||
Security | SSH key to access source control (if required) | ||||||||||
Software |
| ||||||||||
Firewall | Open up the following ports:
| ||||||||||
System Changes |
|
* The requirements are based on having 4 slave nodes on one server.
Dev team application server
The development application server should be run in a separate VM.
Item | Requirement | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OS | CentOS 6.x 64bit | |||||||||||||||||||||
CPU | 4 core | |||||||||||||||||||||
Memory | 4 GB | |||||||||||||||||||||
Disk | 30 GB | |||||||||||||||||||||
User Accounts | 1 user with sudo privilege | |||||||||||||||||||||
Security |
| |||||||||||||||||||||
Software |
| |||||||||||||||||||||
Firewall | Open up the following ports:
|