Challenge Overview
Project Overview
For TopCoder Competition Engine, we will enter into a FAST development phase this year, but we see there are shortcomings for using Arena VM for development.
Due to port restrictions and network speeds, it is not possible or easy to debug through the desired part to get familar with the code and understand the specific logic.
So we'd like to seek ways to setup a local environment to develop, build and testing, which makes our competitiors more efficient.
The local environment can native OS or OS under VM environment locally like VirtualBox, etc.
The first target OS will be CentOS 6.4 x64, should be similar for all CentOS 6.x system.
Competition Task Overview
This contest is going to setup code bases and services in CentOS 6.4 X64 and write up clear steps, by integrating with the OpenLDAP and Databases in Arena VM, making sure the TopCoder Competition Engine can still work properly.
It covers the services under deployer, farm and apps accounts, the Marathon Match Web Interface is out of scope for this contest.
Documentation
The setup guide should be general to CentOS 6.4 x64 environment. For the purposes of this contest, two VMs will be assigned to you with root access, so you can check existing setups easily and install softwares properly.
- Arena VM - this VM contains existing setup of OpenLDAP, Informix database and MySQL database. where you can test with.
- CentOS 6.4 64bit VM - this VM will be used to setup codebase and services, please use the same user accounts and directory paths as in Arena VM.
Farm Deployer
The user deployer is used to run the Farm deployer application. The deployer application is deployed on a Tomcat running on that user.
The folders included in the deployer user are:
tomcat: The Apache Tomcat installation running the Farm deployer application. The farm-deployer.war can be found in the webapps folder of this Tomcat installation.
deployer: The deployer folder is the resource folder used by the Farm deployer application, it contains binary dependencies (jars) for all processors and controllers and it provides means to customize deployment folders and classpath for them..
deployer/jars: This folder contains all the jars used by processors and controllers. In addition, jars generated on the fly while building customized deployments are include into this directory. (All jars located in this folder must be signed)
deployer/deployment: Contains deployment customization for processors and controllers. A document located in that directory provides more information about how deployment is generated.
Farm Processor
This is deployed under farm account.
It is the main pieces for running and testing solutions.
processor/launcher: Contains the scripts to start, restart and stop the processor
Listeners, Farm Controller and JBoss Services
The user apps is used to run most of the Arena systems: Listeners, Application Server and Farm controller.
Listeners
Listeners are deployed under user apps in the folder app:
app/scripts: Contains the scripts to start and stop the different listeners.
- runMainListener.sh : Starts the Main (Arena) listener on port 5001/5008. Arena applets should connect to these ports.
- runAdminListener.sh Starts the Admin listener on port 5003. Admin applet should connect to this port.
- mpsqasListener.sh: Starts/Stops the MPSQAS listener in the given port. eg: ./mpsqasListener.sh start 5016
app/resources: Contains all configuration files required by the Listeners. This folder contains many files that are deprecated. Nevertheless, there is no documentation about it, so removing some of the them may be risky. (A lot of testing would be required).
jboss: Services exported by the Competition engine are deployed in this JBoss instance. The "default" configuration is used to deploy the services
controller/launcher: Contains the launcher to execute the Farm controller application.
dev: Contains a fresh checkout of the arena modules and the examination project.
TestingThe Setup in CentOS 64bit Environmnent, will reuse the LDAP and Databases in Arena VM for testing.
VMs
Before asking your own VM, you need to have a public key on your profile before asking for the VM.
You can find more details on how to generate a key http://apps.topcoder.com/wiki/display/projects/Generate+SSH+Key and how to connect using it http://apps.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.
To use the Arena VM, please follow http://apps.topcoder.com/wiki/display/docs/Competition+Engine+VM+Setup
Final Submission Guidelines
Submission Deliverables
Below is an overview of the deliverables:
- Clear Guide for Codebase and Services setup for local environment.
- Working VMs to testing purpose.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.