Continuous
Delivery
it's a software development practice where you make sure that your
application is ready to be deployed to production at any time. You’re
not only making sure that when a developer commits a change is, it is
correctly integrated by building and unit testing your application
(Continuous Integration). You’re also making sure that your
application is always ready to be deployed by running automated
and/or acceptance tests on it and testing the release process itself.
Practicing
Continuous Delivery gives you several advantages:
+The
time from idea to deployment to production (cycle time), is
shortened.
+By
shipping the product early you are encouraging early feedback. The
faster you get your software to your end-user, the faster you get
feedback.
+You’re
always ready to deploy to production. You do not have to spend time
making and testing a release.
+Because
you’ve already tested the release process itself, deploying to
production is simple and error-free.
+You
are getting
ahead of the competition and making
your release process a business advantage.
How to implement ?
- Ensure both your developers and system administrators are responsible for deployment. Traditionally, the system administrator is responsible for deploying to production. By making your developers responsible too for deployment you are encouraging a culture of collaboration (DevOps) and lowers the chance of errors due to miscommunication.
- Find out what your release process looks like, make it reliable and repeatable and automate as much as possible. Make every step of the process reliable and repeatable. When your steps are reliable and repeatable, then they can also be automated. As our goal is to automate each step.
- Setup one single way of deployment to an environment. Make sure that you define a single way to deploy a release to an environment, whether is it the test environment or to production. If you do this, then you’re also testing your deployment process itself.
- Test on a production-like environment. If you test on a different environment than your production environment, then there is a risk that your deployment to production doesn’t work or worse: your end-users experience runtime problems due to different software versions of third-party software and libraries.
- Quality first Keeping your application deployable should get higher priority than adding new features. If an error in your release process occurs, fix it as soon as possible.
Where
do I start ?
It
takes effort to fully practice Continuous Delivery. But you may start slowly by:
- Let your developers and system administrators work together on deploying your application.
- Visualize your release process.
- Make steps of your release process reliable and repeatable
No comments:
Post a Comment