Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Game of Codes: the Battle for CI

13,508 views

Published on

Atlassian faces the same issues as any other software company in the world. The battle for continuous integration glory is fought every day, and at stake is nothing less than our development and delivery speed. Join us to find out how we do it at Atlassian, powered by Bamboo. Because in the Game of Codes, you win... or you die.

Published in: Software
  • Be the first to comment

Game of Codes: the Battle for CI

  1. 1. Games of Codes, the CI battle A view behind the Atlassian curtains ESTHER ASENJO • BAMBOO DEV TEAM LEAD • ATLASSIAN • @STHREO
  2. 2. Who am I?
  3. 3. Agenda CI ANATOMY THE CI BATTLE, AT ATLASSIAN CI CULTURE CI INTRODUCTION THE CD BATTLE, AT ATLASSIAN CONCLUSION
  4. 4. Agenda CI ANATOMY THE CI BATTLE, AT ATLASSIAN CI CULTURE CI INTRODUCTION THE CD BATTLE, AT ATLASSIAN CONCLUSION
  5. 5. Continuous Integration is a software development practice where members of a team integrate their work frequently. Each integration is verified by an automated build to detect integration errors as quickly as possible. This leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. ” “ - MARTIN FOWLER, THOUGHTWORKS
  6. 6. do it FASTER. make us STRONGER. make it BETTER. work it HARDER.
  7. 7. FASTER delivery. STRONGER teams. BETTER quality. HARDER processes.
  8. 8. Agenda CI ANATOMY THE CI BATTLE, AT ATLASSIAN CI CULTURE CI INTRODUCTION CONCLUSION THE CD BATTLE, AT ATLASSIAN
  9. 9. Atlassian, a software company Products Services Ecosystem Questions for Confluence Team Calendars for Confluence Share Point Connector for Confluence www.atlassian.com my.atlassian.com Atlassian Account JIRA Service Desk JIRA Core JIRA Software Portfolio for JIRA Capture for JIRA
  10. 10. Continuous Integration is a battle.
  11. 11. The Continuous Integration battle, IT DOES NOT COUNT UNTIL IT’S SHIPPED
  12. 12. When you play the Game of Codes, you ship or you fail.
  13. 13. Agenda CI ANATOMY THE CI BATTLE, AT ATLASSIAN CI CULTURE CI INTRODUCTION CONCLUSION THE CD BATTLE, AT ATLASSIAN
  14. 14. Infrastructure
  15. 15. Tools
  16. 16. Processes
  17. 17. People
  18. 18. Infrastructure
  19. 19. Build Infrastructure Engineering Collaboration JIRA family Dev Tools Internal Ecosystem
  20. 20. Collaboration JIRA family Dev Tools Internal EcosystemEngineering Build Infrastructure Build Engineering Build infrastructure Maven repositoriesRemote agents Elastic agents 12 Bamboo instances 1200elastic agents 20 AMIs 4 remote agents 3,5k build plans 15Nexus instances 14k branch build plans
  21. 21. Tools Processes
  22. 22. Processes Tools : The CI anatomy Developer Test DeliverBuildCommit 
  23. 23. Developer Test DeliverBuildCommit  Processes Tools : The CI anatomy
  24. 24. - CONTINUOUS DELIVERY (ADDISON-WESLEY), JEZ HUMBLE AND DAVID FARLEY Continuously is more often than you think. ”“
  25. 25. Confluence pipeline                               
  26. 26. 100 developers 320 commits/day 20,000 tests 435 build plans Confluence pipeline 1,5 days
  27. 27. I’m not slacking off, my build plans are still running. “ ” - ME
  28. 28. I’m not slacking off, my build plans are queued. “ ” - DANIEL KJELLIN, BAMBOO DEVELOPMENT TEAM LEADER I’m not slacking off, my build plans are
  29. 29. CI challenges our processes Master branch production-ready Feature branch development Long running branches Big&slow test suite Quick feedback Feature flags Build grid Build strategy
  30. 30. Confluence pipeline strategy 30 min Core Test Suite 90 min Cloud Test Suite Ecosystem testing 1,5 days Full Test Suite Performance testing Cross-Platform testing Acceptance testing Confluence team dog fooding 1 per day 1 per week* Atlassian dog fooding Monthly bug fixing Server release Quarterly release Cloud release Every 2 weeks* + +++ =
  31. 31. The continuous integration pipeline stages Commit Automated testing technically functionally non-functionally usable provides value deliverable fully-operational Manual testing Release
  32. 32. The continuous integration pipeline stages Commit Automated testing ReleaseManual testing QA Dog fooding
  33. 33. 817quarantined tests out of > 200k test
  34. 34. 1,888 occurrences of flakiness in our Confluence wiki
  35. 35. But hey: I am code too, you know? I need attention! “ ”- MAURI EDO (@MAURI_EDO), OPEN LETTER FROM AN @IGNORED TEST, DEVELOPERS.ATLASSIAN.COM
  36. 36. People
  37. 37. CI is a practice, not a tool, and requires discipline from the development team. “ ”- CONTINUOUS DELIVERY (ADDISON-WESLEY), JEZ HUMBLE AND DAVID FARLEY
  38. 38. The Culture of Green powered by
  39. 39. Agenda CI ANATOMY THE CI BATTLE, AT ATLASSIAN CI CULTURE CI INTRODUCTION CONCLUSION THE CD BATTLE, AT ATLASSIAN
  40. 40. Culture is what happens when the founders are not around.
  41. 41. The Build Master
  42. 42. The Build Breaker
  43. 43. Red is the new green.
  44. 44. Give feedback to people, so it’s fed-back.
  45. 45. 0quarantined tests out of > 200k test
  46. 46. Agenda CI ANATOMY THE CI BATTLE, AT ATLASSIAN CI CULTURE CI INTRODUCTION THE CD BATTLE, AT ATLASSIAN CONCLUSION
  47. 47. CI is not enough. ” “ - CONTINUOUS DELIVERY (ADDISON-WESLEY), JEB HUMBLE AND DAVID FARLEY
  48. 48.  The non-CD syndrome
  49. 49. I cannot fix that bug… I’m busy writing a new one. “ ” - ME, OR YOU, OR ANY DEVELOPER AFFECTED BY THE LACK OF CD
  50. 50. A deployment pipeline   
  51. 51. A deployment pipeline, at Atlassian 09:0009:00  dev  
  52. 52. 09:00 DEV STAGING PROD A deployment pipeline, at Atlassian  dev  
  53. 53.  dev   09:00 10:00 A deployment pipeline, at Atlassian  dev  
  54. 54.  dev    dev  09:00 10:00 DEV STAGING PROD A deployment pipeline, at Atlassian
  55. 55. 09:00  dev    dev   stg 09:00 10:00 16:00 A deployment pipeline, at Atlassian
  56. 56. 09:00  dev   stg  dev   09:00 10:00 16:00 DEV STAGING PROD A deployment pipeline, at Atlassian
  57. 57. 09:00  dev    dev   09:00 10:00 16:00 16:15 stg A deployment pipeline, at Atlassian
  58. 58.  09:00  dev   10:00  dev   09:00 10:00 16:15 16:00 stg 16:30 A deployment pipeline, at Atlassian
  59. 59. 09:00  dev   10:00  dev   09:00 10:00 16:15 16:00 stg 16:30 10:00 prd A deployment pipeline, at Atlassian 
  60. 60.  09:00  dev   10:00  dev   09:00 10:00 16:15 16:00 stg 16:30 10:00  DEV STAGING PROD prd A deployment pipeline, at Atlassian
  61. 61. Free people to do the interesting stuff, and let Bamboo do the rest.
  62. 62. Wax in, wax off.
  63. 63. Agenda CI ANATOMY THE CI BATTLE, AT ATLASSIAN CI CULTURE CI INTRODUCTION THE CD BATTLE, AT ATLASSIAN CONCLUSION
  64. 64. 19 34 18 42
  65. 65. Do it, or do not. There is no try. ” “
  66. 66. Do it, or do not. There is no try. ” “
  67. 67. Do it, with . ” “
  68. 68. Thank you! ESTHER ASENJO • BAMBOO DEV TEAM LEAD • ATLASSIAN • @STHREO

×