We are concerned with the time it takes to compile and make builds on large scale Java EE projects. Sometimes it takes from 15 to 30 minutes and sometimes up to 60 minutes if you have to build just everything from scratch.
For sure you can optimize build process when you have enough time and a good budget. But when you deal with a short-term large-team project you may not have enough time for optimization. In such case you need ways to improve the speed of compiling quickly and out-of-the-box.
In Artezio we have been looking for ways to create a solution to help ourselves and finally we can say we have success. We have started a project Flamenco – a solution to create distributed, parallel compiling with help of Hadoop and other cloud computing technologies.
With Flamenco you can setup computing nodes on all PCs and servers in your office, include public cloud provider like Amazon and utilize all your resources together to improve compiling. Nodes on PCs and servers may be configured in a way that does not interfere with other tasks – Flamenco always check if a resource is not used currently and stop immediately if the resource is requested by other user/app with a higher priority.
We have already completed a prototyping phase of the product and can say we had achieved very good results! Compile time has easily decreased by 30-50% and this is just with several in office capacities! Adding a number of powerful servers can decrease compile time by 200-300% or higher.