Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing Atlassian Bamboo 5.0's Continuous D...

Introducing Atlassian Bamboo 5.0's Continuous Delivery

A introduction to Atlassian Bamboo 5.0 Continuous Delivery

James Dumay

May 27, 2013
Tweet

More Decks by James Dumay

Other Decks in Technology

Transcript

  1. Continuous Deployment Code is continuously integrated then deployed automatically directly

    to users without human intervention The continuous building and testing of software Continuous Integration Monday, 27 May 13 A primer
  2. Continuous Deployment Code is continuously integrated then deployed automatically directly

    to users without human intervention The continuous building and testing of software Continuous Integration Continuous Delivery Code is continuously integrated then deployed automatically to a testing environment. There is some ‘business decision’ that is made by a human before it reaches users. Monday, 27 May 13 A primer
  3. Tools used to build, test and deliver software Monday, 27

    May 13 * Vital information is lost in the middle. * Developers need to see into the world of OPs to know when their changes have been deployed * OPs need to see if what they are deploying is going to work. That means
  4. Tools used to build, test and deliver software Code developed

    Production Monday, 27 May 13 * Vital information is lost in the middle. * Developers need to see into the world of OPs to know when their changes have been deployed * OPs need to see if what they are deploying is going to work. That means
  5. Tools used to build, test and deliver software Bamboo, Jenkins,

    TeamCity Developer Tools Code developed Production Monday, 27 May 13 * Vital information is lost in the middle. * Developers need to see into the world of OPs to know when their changes have been deployed * OPs need to see if what they are deploying is going to work. That means
  6. Tools used to build, test and deliver software Bamboo, Jenkins,

    TeamCity Puppet, Chef and Capistrano Developer Tools Ops Tools Code developed Production Monday, 27 May 13 * Vital information is lost in the middle. * Developers need to see into the world of OPs to know when their changes have been deployed * OPs need to see if what they are deploying is going to work. That means
  7. Tools used to build, test and deliver software Bamboo, Jenkins,

    TeamCity Puppet, Chef and Capistrano Developer Tools Ops Tools Code developed Production Deployment scripts and other glue Monday, 27 May 13 * Vital information is lost in the middle. * Developers need to see into the world of OPs to know when their changes have been deployed * OPs need to see if what they are deploying is going to work. That means
  8. How Continuous Integration reports on code changes Monday, 27 May

    13 * Reports code metrics on only the latest result. Developers want to know what state the code is in as soon as possible. * Older results are lost amongst the noise of the development process. * As time goes by, older results are de-emphasized and eventually deleted from the system * All CI servers do this, including Bamboo, Jenkins, Hudson and TeamCity
  9. #1 #2 #3 .... #21 #22 .... #56 #57 #58

    #23 How Continuous Integration reports on code changes Latest state Bad builds - tests are broken Good builds - all tests work Monday, 27 May 13 * Reports code metrics on only the latest result. Developers want to know what state the code is in as soon as possible. * Older results are lost amongst the noise of the development process. * As time goes by, older results are de-emphasized and eventually deleted from the system * All CI servers do this, including Bamboo, Jenkins, Hudson and TeamCity
  10. How Continuous Integration is used for Continuous Delivery Monday, 27

    May 13 * Deployments are hard to find, CI reports on the very latest result only * No concept of environments and what has been deployed where * No way to see if the code has been signed off by QA * You could use labeling, commenting and other metadata tagging but its difficult to get to as the latest result is emphasized. Its not a first class concept. * In reality, deployments in CI are done by a bunch of work arounds. There is no 1 good way to do it.
  11. #1 #2 #3 .... #21 #22 .... #56 #57 #58

    #23 How Continuous Integration is used for Continuous Delivery 1.2 1.1 1.0 Latest state Monday, 27 May 13 * Deployments are hard to find, CI reports on the very latest result only * No concept of environments and what has been deployed where * No way to see if the code has been signed off by QA * You could use labeling, commenting and other metadata tagging but its difficult to get to as the latest result is emphasized. Its not a first class concept. * In reality, deployments in CI are done by a bunch of work arounds. There is no 1 good way to do it.
  12. How deployments should work Monday, 27 May 13 * Mark

    a good build as a version * Version is the primary holder for the metadata, such as the code changes, issues, QA status, etc * The version is then tracked as it goes through the different environments. * This is better as it tracks only information related to the deployment and is separate from the development noise
  13. How deployments should work .... Good build from Continuous Integration

    server #57 #58 Monday, 27 May 13 * Mark a good build as a version * Version is the primary holder for the metadata, such as the code changes, issues, QA status, etc * The version is then tracked as it goes through the different environments. * This is better as it tracks only information related to the deployment and is separate from the development noise
  14. How deployments should work .... Good build from Continuous Integration

    server #57 #58 v1.2 Declare the tested software as a Version Monday, 27 May 13 * Mark a good build as a version * Version is the primary holder for the metadata, such as the code changes, issues, QA status, etc * The version is then tracked as it goes through the different environments. * This is better as it tracks only information related to the deployment and is separate from the development noise
  15. How deployments should work .... Good build from Continuous Integration

    server #57 #58 Staging QA Production v1.0 v1.1 v1.2 Track the Versions as it moves between Environments v1.2 Declare the tested software as a Version Monday, 27 May 13 * Mark a good build as a version * Version is the primary holder for the metadata, such as the code changes, issues, QA status, etc * The version is then tracked as it goes through the different environments. * This is better as it tracks only information related to the deployment and is separate from the development noise
  16. Deployments in Bamboo Monday, 27 May 13 * Projects contain

    what is going to be deployed. It gets that thing from the build plan. For example, your web app. * Permissions can be controlled at a Deployment project or Environment level. Choose who can view & edit deployment projects and their environments. * Complete control over who can deploy the version to an environment
  17. Deployments in Bamboo Build Project Build plan Continuous Integration Monday,

    27 May 13 * Projects contain what is going to be deployed. It gets that thing from the build plan. For example, your web app. * Permissions can be controlled at a Deployment project or Environment level. Choose who can view & edit deployment projects and their environments. * Complete control over who can deploy the version to an environment
  18. Deployments in Bamboo Build Project Build plan Continuous Integration Deployment

    Project Environment Version Continuous Delivery Monday, 27 May 13 * Projects contain what is going to be deployed. It gets that thing from the build plan. For example, your web app. * Permissions can be controlled at a Deployment project or Environment level. Choose who can view & edit deployment projects and their environments. * Complete control over who can deploy the version to an environment
  19. Deployments in Bamboo Build Project Build plan Continuous Integration Deployment

    Project Environment Version Continuous Delivery Monday, 27 May 13 * Projects contain what is going to be deployed. It gets that thing from the build plan. For example, your web app. * Permissions can be controlled at a Deployment project or Environment level. Choose who can view & edit deployment projects and their environments. * Complete control over who can deploy the version to an environment
  20. Where is the version is deployed now Previously deployed versions

    Whats currently deployed Monday, 27 May 13
  21. Where is the version is deployed now Previously deployed versions

    Changes made in the version Whats currently deployed Monday, 27 May 13
  22. Where is the version is deployed now Previously deployed versions

    Marked as Approved or Broken by QA Changes made in the version Whats currently deployed Monday, 27 May 13
  23. The builds of the commits that the Version was tested

    by Where the version is deployed Issues and commits in the version Monday, 27 May 13
  24. QA can mark versions as approved or broken The builds

    of the commits that the Version was tested by Where the version is deployed Issues and commits in the version Monday, 27 May 13
  25. QA can mark versions as approved or broken Who in

    QA marked as broken or approved The builds of the commits that the Version was tested by Where the version is deployed Issues and commits in the version Monday, 27 May 13
  26. QA can mark versions as approved or broken Build result

    used to created the Version Who in QA marked as broken or approved The builds of the commits that the Version was tested by Where the version is deployed Issues and commits in the version Monday, 27 May 13
  27. QA can mark versions as approved or broken Build result

    used to created the Version Who in QA marked as broken or approved The builds of the commits that the Version was tested by Where the version is deployed Deploy this version to an Environment Issues and commits in the version Monday, 27 May 13