The Visual Studio and TFS 2012 DevOps Story
Cloud, mobile and distributed software services have made “simulating production” impossible while production and release cycles are becoming more frequent. At the same time, communication and collaboration between development and operations has become a focal point for process improvement, spawning a trend in software development expressed by the term Development Operations (DevOps).
Companies recognize that they need to provide continuous quality and eliminate waste in their software development process. This is especially important as the focus shifts from long QA/user acceptance testing cycles to rapid identification and resolution of issues in production, and deployment of the fixed application back into production. This rapid identify-fix-deploy loop requires adoption of new tools and processes to be successful.
There are complimentary “devops” tools shipping in Visual Studio and TFS 2012 that help reduce cycle times and continuously improve quality. Let’s look at them:
SCOM Application Performance Monitoring
Use SCOM Application Performance Monitoring if you own Microsoft’s System Center Operations Manager 2012 and you have internal applications you wish to monitor such as Internet Information Services (IIS)-hosted .NET applications. The .NET Application Performance Monitoring (APM) template in System Center Operations Manager 2012 allows you to get details about application performance and reliability that can help you pinpoint root causes of incidents. You specify settings, the types of events to collect, the performance goals to measure, and servers to monitor and .NET Application Performance Monitoring reveals how applications are running. You can see how frequently a problem is occurring, how a server was performing when a problem occurred, and the chain of events related to the slow request or method that is raising exceptions.
Use PreEmptive Analytics for Team Foundation Server (PA/TFS) if you have a broader set of applications you wish to monitor that are:
- Enterprise, B2B, or B2C: In and across enterprise, partner, & client domains.
- Distributed: Client/Server, Mobile, Azure, hosted inside and across firewalls and domains.
PreEmptive Analytics allows you to see, as they happen, the errors your users are experiencing. By aggregating and analyzing exceptions reported by your production applications and automatically creating TFS work items, PA/TFS gives you access to incident data right where you need it – in Visual Studio, TFS Web, and Reporting Services. The work items include the exception type, message, full stack trace, the contents of any inner exceptions, and the list of all assemblies loaded at the time of the exception, as well as the number of such exceptions received. With a small amount of additional configuration, you will also be able to see unique instance identifiers (such as the serial number of each application instance that experienced the exception) as well as comments about the error and contact information, if provided by the end user. PreEmptive Analytics is always on (like Radar) and supports a broad set of “real world” scenarios efficiently, securely and reliably.
Intellitrace is more like a CAT scan. It is able to provide “deep dives” into complex systems and is well suited when a problem is already known but not fully understood. As an example, if you are alerted to an issue in production with PreEmptive Analytics and you don’t have enough information yet to fully solve the problem, you could use Intellitrace to further dig in. To do this, start IntelliTrace data collection, reproduce the problem, and then stop collection. You can take the resulting log that IntelliTrace creates, open it in Visual Studio 2012 Ultimate, and analyze it. Intellitrace is great for debugging errors that are hard to reproduce or that happen outside Visual Studio, for example, in production or other environments.
DevOps tools and services improve software quality and reduce time to resolution by generating actionable bugs from deployed software. Visual Studio and TFS 2012 include three complimentary tools that help you dramatically reduce time for solving production errors. Take advantage of these and start building better software, faster.