There has traditionally been a division between the worlds of development and operations. All too often, code is thrown over the wall to production, and performance is considered only when people start complaining. The DevOps movement is gaining traction to address this issue, and performance is an essential part of its mission.
There is no better performance test than real-life usage. As a performance warrior, you need to accept that pushing your code live is when you will really be able to start optimizing performance. No tests will ever accurately simulate the behavior of live systems.
By proactively monitoring, instrumenting, and analyzing what’s happening in production, you can catch performance issues before they affect users and feed them back through to development. This will avoid end-user complaints being the point of discovery for performance problems.
Unlike functional correctness, which is typically static (if you don’t change it, it shouldn’t break), performance tends toward failure if it is not maintained.
Increased data, increased usage, increased complexity, and aging hardware can all degrade performance. The majority of systems will face one or more of these issues, so performance issues are likely if left unchecked.
To win this battle, you need to ensure that you are capturing enough data from your production system to alert you to performance issues while they ...