Time to build and test results 3x faster - how we did it

  • 646 views
Uploaded on

After one year of regular work on our build mechanism and Continuous Integration infrastructure, we are able to provide RCP products, along with their complete test suite, more than 3 times faster …

After one year of regular work on our build mechanism and Continuous Integration infrastructure, we are able to provide RCP products, along with their complete test suite, more than 3 times faster than before.

And guess what, we are using less physical resources.



The path to this result was quite long and sometimes tedious, but we finally managed it. I will share our experience and provide tips so you can speed up your own build. I will also mention which improvements are coming.



I will explain the methods used to identify bottlenecks and which technical solutions we applied (and the ones we dropped). This talk will go through the usage and possibilities brought by Tycho, Target Platforms, Hudson/Jenkins with some of its plugins and a Maven Repository Manager.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
646
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Time to Build and Test Results 3x faster – How We Did It Aurélien Pupier R&D Engineer, Studio Development Leader @apupier ©2014 Bonitasoft
  • 2. Agenda • Initial context • Actual status • Methodology and Technology • What’s next? ©2013 Bonitasoft 2
  • 3. Initial context Once upon a time… ©2013 Bonitasoft 3
  • 4. What? ©2013 Bonitasoft 4
  • 5. What it means? ©2013 Bonitasoft 5
  • 6. Global Infrastructure ©2013 Bonitasoft 6 φ Linux SSD VM - Hudson slave - RCP builds φ Mac - Hudson slave φ Linux VM - Hudson Master - Other Bonita components
  • 7. Execution time ©2013 Bonitasoft 7
  • 8. Actual status What do we gain? ©2013 Bonitasoft 8
  • 9. 3x faster! ©2013 Bonitasoft 9
  • 10. Simplicity! ©2013 Bonitasoft 10 φ Linux SSD - Other Bonita components - RCP builds
  • 11. Methodology and Technology Through the path ©2013 Bonitasoft 11
  • 12. Workforce • Along the way • 1 year • Dedicated part-time “Build engineer” at the end ©2013 Bonitasoft 12
  • 13. Tycho • PDE build  Tycho • Easier Modularization • Help from non-Eclipse RCP developer – 2  20+ • Easier for Bonita Community ©2013 Bonitasoft 13
  • 14. Modularization • Easier to split • On-demand/nightly build: – Translations – Patched plugins – Generated code – Installers ©2013 Bonitasoft 14
  • 15. Mirrored Target Platform • Avoid network latency • Remove external dependencies – LTS – Stay the master ©2013 Bonitasoft 15
  • 16. Remove virtualization • I/O access • Virtualization killed SSD performance • Tried – mounted partition – Logical Unit ©2013 Bonitasoft 16
  • 17. Backup ©2013 Bonitasoft 17 • Environment and CI config stored on – Less down time – Easier to modify environment
  • 18. Jenkins Scriptler plugin • Allow “complex” build flow • Easier to test a subpart • Rejected: – build-pipeline-plugin – join-plugin – Downstream/Upstream ©2013 Bonitasoft 18
  • 19. Don’t sleep while testing! • bot.sleep()  bot.waitUntil() • Gain: – Stability – Speed ©2013 Bonitasoft 19
  • 20. Genisoimage • Generate .dmg ©2013 Bonitasoft 20 φ Mac - Hudson slave
  • 21. The key of success ©2013 Bonitasoft 21
  • 22. The key of success ©2013 Bonitasoft 22 • Fail Fast – Easy roundtrip – Subpart testing
  • 23. What’s next? Harder, Better, Faster ©2013 Bonitasoft 23
  • 24. Others • Tycho – TP resolution – Young project • Test split – Slow/fast – Enough confidence on a smaller set? • Translations – BND use – Avoid TP resolution • Workflow Integration in Hudson/Jenkins ©2013 Bonitasoft 24
  • 25. ©2013 Bonitasoft 25
  • 26. Evaluate This Session Sign-in: www.eclipsecon.org Select session from schedule Evaluate: 1 2 3