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

Continuous Integration, Deployment and Delivery

Continuous Integration, Deployment and Delivery

CI/CD talk given at i-Hub Nairobi, 30/07/16

James Mwai

July 31, 2016
Tweet

More Decks by James Mwai

Other Decks in Technology

Transcript

  1. Continuous Integration • A software Development practice where members of

    a team integrate their work frequently • Integration is done by each member at least once in a day leading to multiple integrations in a day. • Each integration is verified by an automated build to detect any integration errors before the integration is done.
  2. Principles • Keep all files in Version control • Integrate

    at least once a day • Every integration should trigger an automatic build • Run tests after every integration.
  3. Key Concepts of CI • Tests • Automated Builds •

    Source Control • Automated Deployments
  4. Tests For good CI we need good tests setup. Tests

    ensure we do not break existing code when we introduce new features • Unit Tests - A unit test determines the correctness of an individual component in a large codebase. A unit test should work in isolation from other tests. Unit tests are atomic. • Integration Tests - Integration tests determine the correctness of the codebase as a whole when all the individual components are brought together.
  5. Version Control Git Mercurial Please use the above. Actually just

    use git!!! Outdated stuff - CVS, Subversion, Visual Source Safe Bitbucket supports both git and mercurial.
  6. Continuous Delivery • Builds on top of Continous Integration and

    Continuous Deployment. • Approach where teams release software in short cycles. • Makes it possible to continuously adapt software to users needs. • Enables organisations to release frequently and get quick feedback
  7. Atlassian Tools of the Trade Bitbucket - Fully featured version

    control. Will integrate with any CI tool. Bamboo - Build, test and deploy your code. Ties automated builds, tests and releases into a single workflow. Jira - Fully featured bug tracking tool.
  8. Bitbucket • Fully featured Scalable version control system • Easy

    collaboration with other team members • Massively scales • Unlimited private Git repositories • Easy integration with other CI tools
  9. Bamboo • Continuous delivery tool. Pipeline from code to deployment

    • Easy to setup triggers for builds when members commit to say bitbucket • Run automated parallel tests as your team delivers features • Configure bamboo to run your deployments to handle the delivery part of your CI pipeline • Great integration with Jira, Bitbucket, HipChat
  10. Jira • Plan your tasks, sprints, user stories across your

    teams. • Track and discuss the progress of your tasks as you work on them • Automatically updates issues when code is committed • Monitor the build statuses of your CI pipelines right inside Jira. • Overall ensures you release great software
  11. Benefits of CI/CD • Faster reaction times • Reduced risks

    • Reduced deployment times • Automation saves time and money