Presented by Atlassian
"Traditional" Software Development
DevOps & Continuous Integration
DevOps: The consolidation of "development" and "operations"
DevOps is a set of practices, tools, and a cultural philosophy that automate and integrate the processes between software development and IT teams. It emphasizes team empowerment, cross-team communication and collaboration, and technology automation.
Continuous Integration
Strong automated testing
Continuous Delivery and/or Deployment
Platform Engineering
Agile practices
Continuous integration (CI) is the practice of automating the integration of code changes from multiple contributors into a single software project. It’s a primary DevOps best practice, allowing developers to frequently merge code changes into a central repository where builds and tests then run. Automated tools are used to assert the new code’s correctness before integration.
A software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including tests) to detect integration errors as quickly as possible.
Martin Fowler, 2006
Continuous delivery is an approach where teams release quality products frequently and predictably from source code repository to production in an automated fashion.
A software development discipline where you build software in such a way that the software can be released to production at any time.
Martin Fowler, 2013
Continuous deployment (CD) is a software release process that uses automated testing to validate if changes to a codebase are correct and stable for immediate autonomous deployment to a production environment.
A continuation of the Continuous Delivery process, where the software application is automatically deployed to the customer.
Aims to automate the release of every working version of software to production environment.