7 easy steps to Continuous Deployment

Releasing new parts of your software daily has so many advantages, that you can’t afford to refrain from it:

  • making releases a breeze
  • faster development
  • immediate user feedback
  • happy developers

In one of our last blog posts we discussed how we autoscale our Amazon EC2 infrastructure covered why it is important to deliver value to your customers with continuous deployment. That’s why we gathered 7 steps for you to get started with continuous deployment. Leave a comment if you have any additional tips on how to speed up development.

Test, Test, Test – but be smart about it

If you do not test your software automatedly, you are doing it wrong. There is no way around automated testing.

You don’t have to write a test for every small piece of code. But if you can’t test your main features automatedly, you are already screwed.

Without tests you release buggy software. You break features that worked in the past and you slow down your innovation. In a well tested application you can introduce changes everywhere without the fear of breaking anything. This gives you the power to change EVERYTHING at all times.

In our next post we will get you started with tools like Selenium or PhantomJS. There are various integrations in every programming language, so stay tuned!

Build small services

Split your system into small parts that solve one specific problem and interact with other parts through clearly defined interfaces.

You will innovate faster, build more stable systems and improve your team workflow thanks to the clear boundaries between single parts of your application.

Automate deployment

If you run more than one command to deploy your application, you are doing it wrong. Have all of your deployment steps accessible through one command. The command shouldn’t require additional configuration.

As soon as it is even a little more complicated you won’t do it frequently and this slows down your development.

Automate rollback

Reverting your application to an old version should be as easy as releasing a new version. This is especially important for your database. You probably won’t risk a rollback if it is hard to do and involves several steps.

Deploy to staging

If you are not continuously deploying to your production system, at least do so for a staging environment, so you can evaluate it anytime. The latest version of your application should always be running somewhere, so your team can access and test it.

Use your staging environment

If you build a product that you use yourself, always work on the staging environment. As soon as you break something you will be the first to notice and you will fix it quickly, because you rely on it.

Automatically deploy to production

With all these steps done you are ready to deploy continuously to your production system. You have built all necessary guards to ensure that only working code is released. And if a bug slips through, you can go back to a stable version fast.

Codeship – A hosted Continuous Deployment platform for web applications

Conclusion

By following these steps you will get your project on track for continuous deployment and boost your development speed. If you have any questions, just drop us a line here or email us.

Subscribe via Email

Be sure to join 13,643 subscribers of our newsletter to receive updates on software development best practices, Continuous Delivery and tips and tricks to start shipping your product faster.

Join the Discussion

Leave us some comments on what you think about this topic or if you like to add something.