From Over an Hour to Under 3 Minutes. Yes, Really!
In our current rush for digital transformation, doing things faster – like builds – is generally a good thing. But what if it was possible to predict or even control the amount of time a build could actually take? You could make sure your development team confidently does builds in a few minutes – no matter the build size – to keep your transformation on schedule. Your team’s ping pong skills may suffer, but your customers and investors will appreciate the time savings. Previously, we wrote about how CloudBees Accelerator can eliminate build bottlenecks and how Shared JobCache speeds builds and eliminates errors through intelligent component reuse. In this post, we will use the Insight feature of CloudBees Accelerator to take a build time from over an hour down to under 3 minutes – and to ensure that sub-3 minute time is maintained even as the build grows. One of our customers provided the data for this example.
A Day in the Life of a Build
Here’s where we’re supposed to insert the proviso that “your mileage may vary,” but this example is typical of what our customers report when they use CloudBees Accelerator.
1 hour, 10 minutes
The customer was running the build serially with GNU make and it was taking an hour and 10 minutes on average to complete – when it did complete. Many times it wouldn’t complete at all or the resulting code wouldn’t execute.
43 minutes, 49 seconds
We ran that build the first time in parallel across 10 cores with CloudBees Accelerator. We made no other modifications and the build completed in just under 44 minutes – an improvement of nearly 40 on its own. That’s an impressive improvement in its own right but that is still too much time at the ping pong table. During this first pass through, CloudBees Accelerator was ‘learning’ the build and creating an extensive amount of meta data: understanding dependencies, dealing with conflicts, and automatically reverting those conflicts to ensure the build completed successfully. This screen shot from the CloudBees Accelerator Insight feature shows lots of gaps in the process, the parallelism didn’t line up, and conflicts abound. At least the build succeeded. It built – but inefficiencies and conflicts abound! As you can see, there were nearly 800 unspecified dependencies in the build that caused extensive rework.
Under 45 minutes – but nearly 800 unspecified dependencies!
Some Basic Magic
But we can do better without doing anything other than running the build again.
4 minutes, 57 seconds
This is where the magic of CloudBees Accelerator and its patented technology starts to happen. We ran the build a second time. CloudBees Accelerator used that meta data to automatically optimize dependencies, the schedule and resources, and eliminate unspecified dependencies to cut that build time to less than 5 minutes! Running a build the second time with CloudBees Accelerator eliminates inefficiencies and conflicts Notice how there are now no gaps in the process and the parallelism across cores aligns almost perfectly. CloudBees Accelerator automatically made sure that there was no idle time, no conflicts, and no reverts necessary. Under 5 minutes - and no conflicts.
Now For the REAL Magic
Could we do better? If going from over an hour to under 5 minutes wasn’t magic enough, we can get that build time down further – and to a time of our choosing – by using Insight to simulate the build across any number of additional cores and choose our own build time. Predicting and controlling build times across multiple cores
2 minutes, 38 seconds
The example build was run locally on 10 cores but Insight shows what will happen if you increase the number of cores for the build. If 3 minutes is long enough for your developers to take a bio break and grab a snack, then distributing the build across 20 cores will mean the build will complete in just about 2 ½ minutes. Those cores can be anywhere on your network: other computers in the group, in your server farm, or even in the cloud. CloudBees Accelerator will distribute your build to those cores to guarantee the quality of service for your development team.
Insight Doesn’t Stop There
Not only does Insight give you the great visualization and feedback tools as the above screen shots illustrate, you can click on any element in the display to drill down for details on dependencies, input, output, files, duration and more. Drilling into the details of a build
Know Where You’re Going
Yogi Berra once said, "If you don’t know where you’re going, you’ll end up someplace else ." CloudBees Accelerator with Insight lets you know exactly where you’re going with your builds and what time you’ll get there. So much for ping pong.
Accelerate your Android Builds for free
Learn More about CloudBees Accelerator and Download CloudBees Accelerator Huddle Now!
Stay up to date
We'll never share your email address and you can opt out at any time, we promise.