Stress testing your DevOps environment
The digital transformation process driving growth in today’s cutting-edge enterprises, owes much of its success to applications, and DevOps continuous delivery practices play a key role in the delivery of that new software. Yet, according to new research by Enterprise Management Associates, 70% of companies still rely on primarily siloed, manual troubleshooting practices when addressing application performance issues.
Why is this a problem? Well, those same organisations report that such troubleshooting practices are the primary factor slowing the continuous delivery pipeline, which is contrary to the DevOps credos of accelerated development, increased automation, and frequent, high-quality releases.
One of the main philosophies underpinning DevOps is fail fast, fail often, and as a result, not every release can be expected to be perfect. However, introducing performance monitoring tools into the equation allows developers to still apply the fast portion of that mantra while also experiencing a higher likelihood of success.
A common stumbling block during the application development process is the unknown factor that a real-world scenario represents. An application may work perfectly well in isolation or for demonstration purposes, but then fail or dramatically slow down when implemented in a real-world environment.
This is where Application Performance Management can help. Instead of simply assuming that software will behave as intended upon deployment, Application Performance Management provides developers with the functionality to find out, offering realistic feedback loops that better simulate the real-world conditions in which the application is intended to operate.
However, in order to maximise the benefits of Application Performance Management in the context of DevOps, a shift in mentality is required. DevOps-oriented teams should focus on quality earlier in the lifecycle. After all, quickly getting new features into users’ hands means very little if they ultimately become frustrated with the new release, or otherwise fail or refuse to use it. Application Performance Management offers more assurances that end-users will operate applications as intended.
Speeding up development and release cycles to get the newest features into the hands of users means very little if those features are buggy. Moreover, underperforming features not only frustrate users, but they are costly to fix. According to IBM, resolving bugs in production is 15x more expensive than fixing them during testing.
Detailed performance diagnostics can help identify and resolve bugs early in the development lifecycle and keep developers focused on coding, rather than constantly recreating flawed test scenarios. Using Application Performance Management in the staging environment, where engineers try to simulate load and understand performance before it goes live, will ensure an application passes load tests and does not buckle under pressure.
With the right APIs, the process of collecting, sharing, and analysing performance data during testing and into production can virtually be automated as well, helping expedite processes and ensure releases perform optimally.
The increasingly complex nature of today’s application environments means that even with thorough testing, performance issues will still occur during production. Apps can span on-premise and cloud-based resources, consisting of short-lived components like containers, and often need to scale up and down quickly. This is compounded by increased rates of code changes, which, if not properly managed, only increase the likelihood of service interruptions.
Unfortunately, traditional approaches to performance monitoring are comprised of disjointed tools that do not talk to one another, and this can make it very difficult to pinpoint the root cause of an issue. As a result, problems persist much longer than they otherwise should.
However, a fully integrated toolset comprised of continuous, full-stack monitoring, unified dashboards and integrations with popular collaboration tools, should offer DevOps teams a holistic view of users’ experiences, resulting in much shorter mean-time to resolution.
Finally, it is important to remember that unless your application is useful to and popular with its users, then performance is almost an irrelevance. Any new development must be aligned with market needs and provide value to end-users and the business.
The good news is that Application Performance Management tools can also help understand user-behaviour patterns with software across releases. More specifically, they help determine what features are most popular, how they are performing, and how they impact productivity or revenue. So, from inception to reception, Application Performance Management can speed up the development process, increasing the efficiency of both DevOps teams and the wider business.
With user experience now a critical success factor, developers can no longer ignore testing their applications before go-live, elaborates Charbel Khneisser at Riverbed.