In a Continuous Delivery set up, the biggest discrepancies usually exist between the two furthest endpoints of the delivery pipeline: Development environment and Production environment, with each components in the pipeline then approaching “production-like” as you move closer to production endpoint.
An ideal set up would be to have the development environment 'exactly' like the production environment, but we do not live in an ideal world, and for various reasons, there exists valid constraints that prevents this; from licensing constraints to privacy constraints (where production data is concerned).
It is then not an unusual occurrence to encounter bugs in production environment that cannot be successfully reproduced in the development environment.
Trying to pinpoint the cause of these kind of “issues” might quickly end up being a practice at taking shots in the dark: a very time-consuming and inefficient process.
It was this kind of situation I recently found myself, where, I had to rectify certain issues that were occurring in the production environment but could not be reproduced on the development machine.
Read the rest of this entry »