Continuous Integration from server to cloud

574 views

Published on

Continuous Integration (CI) is a practice every team should adopt in order to solve integration problems easily and detect defects and errors early. Using CI we can growth solid software by giving greater confidence to the developers and better products to the final customers. In this slides we will briefly introduce what CI is and we will discuss some of the many different solutions we can employ when it comes to setting up a CI pipeline for our projects.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
574
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Continuous Integration from server to cloud

  1. 1. Continuous Integration from server to cloud
  2. 2. Agile Software Developer at XPeppers Erlang addicted since 2009 Twitter: @pdincau Paolo D’Incau Who am I?
  3. 3. Contents Intro In House CI aaS Drone Conclusions Contents Our road to CI...but what is CI? Your dear old blade server Travis and friends The new kid in town Questions & maybe mild criticism
  4. 4. Once upon a time... A team composed by several developers with strong passions, different cultures and skills Multiple projects ranging from mobile applications to complex backend applications
  5. 5. How can we further improve the quality of our work to get a better product? Continuous Integration to the rescue! Retrospective question
  6. 6. CI: Pragmatic definition Codebase is owned by several developers that continuously integrate their changes to a common version control system. For each integration the system runs a predefined set of tasks automatically; these tasks may vary from running all the tests to building all the components
  7. 7. confidence + automation = better product* * with attitude and agreement CI for me is...
  8. 8. Confidence Fast feedback for my work Easy merge of changes I can always download a working copy of codebase
  9. 9. Automation Using IDE is not automating Not only unit tests but also infrastructure Reduce human error
  10. 10. Better product Less time spent in fixing Integrate now and not later “Pay me now or pay more later”
  11. 11. confidence + automation = better product* * with attitude and agreement CI for me is...
  12. 12. Now you know what CI is, but...
  13. 13. CI is obviously not... “WELL, IT BUILDS ON MY MACHINE” “PROBABLYYOU DON’T HAVEVERSION ABC OF XYZ” “I SWEAR,TEST PASSED ON ECLIPSE” “IT IS NOT AN ERROR, IT’S JUST A FAILURE” “I PUSHED WITHOUT RUNNING THE TESTS” “WHEN WAS THIS FEATURE INTRODUCED?” “MY MACHINE IS NOT CONFIGURED” “THE BUILD HAS BEEN BROKEN FOR 3 DAYS” “MY TEST DB IS NOT CLEAN” “DOYOU HAVE DEFAULT MAVEN PROFILE?” “INTEGRATION IS LAST PART”
  14. 14. Starting a new project?
  15. 15. True story I: “Full Metal Blade”
  16. 16. In-House CI Freedom to install anything we need Full control over the build pipeline Good if you have security constraints
  17. 17. In-House CI Maintenance is up to you! time + knowledge + patience But well... Murphy’s law is behind the corner!
  18. 18. In-House to the cloud Our blade server doesn’t scale very much... ...why don’t we go to the cloud? Scalable system obtained with little effort
  19. 19. Jenkins CI Formerly knows as Hudson Battle tested over the years Many plugins available...
  20. 20. A kid’s dream...
  21. 21. True story II: “In my other life I am a developer”
  22. 22. CI aaS
  23. 23. Travis CI First CI aaS in town Easy integration with GitHub repos Configuration takes minutes On push builds starts
  24. 24. Travis CI Configuration obtained by adding .travis.yml file to your repository
  25. 25. Travis CI - Pros Free for ∞ public repos and collaborators Great variety of languages Supports datastores and services
  26. 26. Travis CI - Cons Free plan means no private repos... ... and no priority on build pipeline
  27. 27. Shippable CI Startup founded in 2013 Supports both GitHub and Bitbucket Configuration similar to Travis’ one
  28. 28. Shippable CI
  29. 29. Shippable CI - Pros Up to 5 private repos for free New stuff continuously added They want your feedback
  30. 30. Shippable CI - Cons Probably still not mature as Travis is Sometimes behaves in unexpected ways
  31. 31. Very small story: “Can we Go-lang to Docker?”
  32. 32. Drone CI Open source project Prevents configuration headaches Based on Docker
  33. 33. Linux containers are really great! Sometimes slower than other CIs Collapsed mails made my crazy! Drone CI
  34. 34. Conclusions Much more than a bunch of tools Automation is essential Experiment and see what fits your needs best
  35. 35. Thank you! Questions???

×