Continuous deployment is deploying every change that passes
automated tests to production; simply it is the practice of releasing every
good build to user. It is all about putting the release schedule in the hands
of the business rather than in the hands of development team.
Introducing continuous delivery to a project means making
sure the software is always production ready throughout its entire lifecycle
and ability to interchange among release versions using a fully automated
process in a matter of seconds or minutes.
According to Martin Fowler, continuous delivery is when,
- Software is deployable throughout its lifecycle.
- Team prioritizes keeping the software deployable over working on features.
- Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them.
- Perform push-button deployments of any version of the software to any environment on demand.
Incorporation of automation, frequent code releases, testing
at every stage of the process, and a pull-based architecture that permits only successful
releases to move to the next stage reduces errors and make it easier to improve
the software delivery process.
Automation allows making successful processes repeatable. When
introducing a new feature, make a change to a service underlying system or
infrastructure, automation let us make the change quickly and safely without
introducing errors that would result from repeating the process manually.
Releasing code frequently rather than releasing big releases
once or twice means testing the product more often. There’s less change in each
release, so it’s easier to isolate and fix problems. It’s also easier to roll
back when needed.
Pull based architecture prevents passing code that fails
automated tests to the next stage of development. This prevents errors
propagating and making them harder to diagnose.
Software developers are
rewarded for delivering quality software that addresses business needs, on
schedule. Continuous delivery practices give software developers the ability to
provision themselves with production like environment and automated deployment
so they can run automated tests. Instead of standing in their way, the operations
team helps developers get their work done. Continuous delivery depends on
continuous integration, which means every change is merged into and tested
against the main code base, reducing the opportunity for long-standing feature
branches and large merge windows that can lead to serious
errors. Deployment becomes much less stressful when changes are small and
tested at every step.
Above video contains a speech given by Martin Fowler about Continuous Delivery.
Above video contains a speech given by Martin Fowler about Continuous Delivery.
No comments:
Post a Comment