How Performance Monitoring Fits into the Application Build, Testing, and Release Phases
You may associate Riverbed’s SteelCentral application performance monitoring solutions with keeping a real-time eye on an application’s user experience so you know exactly where any problems are occurring, and what caused them. You’re able to troubleshoot root causes down to the line of code, infrastructure or network configuration, and examine through the most granular application performance data to troubleshoot application issues. But performance monitoring can also play a critical role in keeping new features flowing to users through what is commonly referred to as the Continuous Delivery Pipeline.
Continuous Delivery (CD) is a strategy that enables developers to build, test and roll out new features to users as quickly as possible. It’s a response to the ever-present pressure the lines of business place on IT teams’ shoulders to deliver software and keep up with market needs, while ensuring stability and consistent service at the best price possible.
There are three basic phases of the CD process, starting with the build. Teams of developers making code changes, or writing new pieces of code that are all built on a continuous basis into one deliverable release.
Next comes the testing phase to ensure that the new version of the application will perform as expected once it’s in the hands of hundreds of users. Quality is paramount. Bugs can easily find their way in the code base as its feature set grows, and relying on testing processes within lab environments to spot them is time-consuming and not completely representative. Speed is of the essence, and anytime you speed up the development process to meet looming deadlines, you increase the risk of bugs slipping past unnoticed.
That’s why it’s a good idea to leverage technologies that automate artifact creation, especially when you have multiple developers working on the same branch of code. Each time they make a change, they would need to make sure that their changes reconcile with changes that their team members are making. Doing this by hand is painfully tedious and quite often you end up with an erroneous build.
With automatic artifact creation, developers can make their code changes while a Continuous Integration (CI) server integrates them into the feature branch, and converts them into testable and deployable deliverables. If the integration fails, the CI server returns appropriate feedback to the developer with reasons so that they can fix it. You can use a wide range of CI servers such as Bamboo, Jenkins, Hudson, TeamCity, CruiseControl or Travis CI.
If all the tests pass, the app is ready for release into a production environment for use by customers, employees, etc.
Performance monitoring can add significant value to the CI process during the testing phase to ensure deployment goes smoothly and users are happy.
On the DevOps side, testing performance while they’re still making code changes will help identify where any bottlenecks may be and address them to ensure optimal performance. Developers are not just building apps that work in the testing environment, but in the real world where the app is being simultaneously accessed by 500 users. Running diagnostics will alert them to what needs to be fixed.
Performance monitoring in the staging environment, where engineers try to simulate load and ensure performance before it goes live, will ensure the app passes load tests and do not buckle under pressure.
The key benefit of performance monitoring during the build and testing phases of the CI process is the facilitation of team-wide collaboration. Everyone grasps the big picture, and that unifies the release process. When successful, it can help deliver software to users quicker and more frequently without compromising on quality.
Everybody wins. Users get well-tested features as soon as they’re available, developers build software that works in real world conditions, QA teams focus on test coverage and diagnostics, operations teams focus on improving infrastructure and processes rather than running manual application updates. Your job gets easier, and your customers get better products from you.