SixFaceCloud is a platform for solving financial analytics and quantitative analysis tasks using distributed computing. It enables you to implement distributed applications using JVM-based programming languages (Java, Clojure, Scala, Groovy, etc...) and run them locally or on a grid/cloud infrastructure.
SixFaceCloud allows users to develop and test locally, and then execute the code immediately on the Cloud infrastructure. The user just needs to change a few lines in a configuration file to offload the execution of a function to local network or cloud based servers. SixFaceCloud will deploy all the code to the execution environment and run it for you.
SixFaceCloud solution consists of two main parts:
- Development tools: Java framework and SFC Domain Specific Language(DSL).
Tools are designed for rapid development of quantitative models (based on Monte Carlo methods for example) and for communicating with Execution Engine.
- Execution Engine which can be installed in the local network or in a data center (for example Jelastic-featured data centers).
What makes SixFaceCloud better?
- Ease of use - eliminate technical issues of building distributed system leaving to you only implementation of algorithms.
- Simple setup, no code change when switching execution context (whether running on local PC, in a cloudenvironment or GPU). Isolate the framework from cloud - you do not need anything from grid vendor on your PC.
- Allows to accelerate, simplify and unify development process so that financial analysts can develop financial models and compute them without the help of professional programmers. It significantly decrease development time especially when frequent model updates are required.
Deploying to Jelastic
Installation of the SixFaceCloud environment on Jelastic is really easy. This how-to takes you from start to finish and even someone with no SixFaceCloud or Jelastic experience can have it up and running in no time.
Register an account with Jelastic (you can choose anyone of the hosting partners) to start working with the system.
1. Download the SixFaceCloud war
SixFaceCloud Jelastic web archive contains the SixFaceCloud Execution Engine and servlets required to launch it in Jelastic environment.
2. Create Jelastic environment
You will need to create 2 Jelastic environments. The first environment will have a public IP and will serve as a main gateway for incoming computation requests. The second environment will contain multiple worker nodes and does not need a public IP. Please note that environments with public IP are beyond Jelastic's free offering but the price tag for it is really small.
Enter the Jelastic control panel and click on the Create environment button in top left corner of the panel. Create a public environment without Balancing (NGINX), but with Tomcat container, Java 6 and public IPv4 option turned on.
3. Upload SFC war to Jelastic
Proceed to the Deployment manager tab and click on Upload link. Find the SFC file that you downloaded from earlier and upload it to Jelastic.
4. Find public IP provided by Jelastic platform.
5. Update variables.conf configuration file.
Jelastic provides a way to set environment variables via variables.conf configuration files. Click on Tomcat configuration button and find variables.conf file in server folder. Open it and enter following lines:
Enter the public IP provided by Jelastic hosting under sfc_cloud_host environment variable. Press Save to save your changes.
6. Deploy SFC war
Go to the Deployment Manager, click on the war file and deploy it to your environment.
This will launch the application. You can check the log file to see if SFC application was successfully launched.
7. Create workers environment
In order to create the workers environment you need to clone the existing public environment and change the topology. Select public environment in Jelastic administration panel and click Clone environment button.
Enter the environment name, for example 'test-sfc-workers' and press Clone.
8. Set workers environment topology
After completion of cloning, select the workers environment and change its topology. Deselect 'Public IPv4' and add as many Tomcat nodes as you need. Also choose how many cloudlets you allocate per one node.
9. Final verification
To check that everything started okay - open the JMX console in your browser again and check that the grid size has been increased. If something went wrong try restarting both environments: first - public and then workers.
10. That's it!
Use the public IP address from public environment as 'cloud_host' in your Java and SFC DSL programs. Your computations will be performed on a scalable Jalastic platform and will pay only for actually consumed server resources.