Friday, 25 September 2015

Application Deployment Best Practises

Its 11:45pm on a Saturday evening and I’m waiting for the release of my application to the production environment. It was scheduled for 2:30pm but there was some delay with some other application. The production support team are almost ready to do my release but they have been saying that for 3 hours. It doesn’t have to be like this…

Having spent many years streamlining, standardising and simplifying complex deployment processes we have compiled a top 10 of best practises you need from a deployment process:
  1. Automation. Get rid of all those manual tasks.
  2. Consistency. Standardise as much as possible.
  3. Audit trail. You need to be able to look back at who did what and when.
  4. Visibility. You need to see what is happening now - to know the current status.
  5. Promotional lifecycle. Only allow applications through the gate to the next level if they pass the tests.
  6. Segregation of duties (SoD). Developers should not be gatekeepers to production. An access control mechanism should divide duties between different people or teams.
  7. Reduce release notes to a minimum. The more steps in the release notes the more scope for human error. 
  8. Deploy with consistency across all environments. The first time you fully deploy your  application should not in production.
  9. Rollback strategy. Incase it all goes wrong you need to rollback to the previous working version as fast as possible. In reality, what is usually employed is a partial rollback or an emergency release if the fault can be fixed quickly.
  10. Keep it simple and keep it clean!  Complexity is the enemy.

The good news is that Vamos Deploy ticks the box for all the above.

If you are lucky then you will have the time and personnel to redesign your entire release process end to end. In most cases the release process only gets attention when it gets really bad. Maybe the wrong application is deployed or it doesn’t work as expected in production and the delays cross into the unacceptable. So the little resources that does get allocated to improvements needs to be well spent. A deployment tool that can be integrated in phases is essential. 

No comments:

Post a Comment