Nowdays, the DevOps methodology is gaining popularity in the software development community.
In this article I will describe the basic DevOps approaches and talk about the DevOps tools from Microsoft which can help to implement these approaches in the .Net world.
What is DevOps?
DevOps is a set of methods for the implementation of a simple idea, which is reflected in the name itself. The title “DevOps” is actually a fusion of “Development” and “Operations”, and the main thing here is the interaction of the development team (Development) and the team responsible for the operation of the software (Operations). DevOps claims that close interaction between Development and Operations will produce new versions of the software faster and with fewer errors. See also: Modern Cycle Development Techniques, DevOps and Agile for Retailers
When and how DevOps is used?
DevOps is used in the development of complex projects with extended infrastructures. Using DevOps approaches are useful when:
Complex applications requiring complex installation processes are being developed
Supporting and ensuring the work of many computers is required
Frequent releases are required
Monitoring the application in production and a quick bug fixing plays an important role.
In such circumstances, what matters the most is time. It is important to reduce the time the application is installed in the production environment, and it is important to accelerate the delivery of feedback to the development team.
To accelerate the interaction between Development and Operations teams, automation tools are used. We can automate:
Monitoring of installed applications and the delivery of the feedback to the development team.
Next, we will describe automation tools offered by Microsoft.
Microsoft Release Management (Development to Operations)
For complex applications, complex deployments are required, and that can mean you need to perform a lot of steps on different computers. The process of deployment can involve people from different teams - Development, QA, Operations. Performing manual deployments can lead to errors and problems with communication.
In this situation, the solution is to use a single automated system for all involved in the deployment process. And Microsoft Release Management system fits this scheme.
Microsoft Release Management Features
The main function of Microsoft Release Management is the automation of application deployment through the test environment to production.
To start working with a release you need to do the following:
Identify the test environments that release will go through (for example, Dev-> QA-> Production)
Define the sequence of actions to deploy the release within each environment
Identify responsible members of the team for each step of the installation
Then we can automatically deploy the application. Microsoft Release Management is integrated with TFS, so that the deployment of the release can be ran immediately after the build is complete in TFS.
Monitoring and providing information about running applications (Operations to Development)
Now let's look at another kind of interaction between Development and Operations – passing information about the running application to the development team. This information may contain an error message or just user feedback on how the application works. Microsoft provides several tools to automate these processes.
Microsoft System Center 2012 Operations Manager
Microsoft Operations Manager is a tool that allows multiple applications to be monitored through a single console and easily send information about events that have occurred to the developers.
We can thus keep track of .Net based web applications and windows-services. Failures and application performance problems on both the client and the server sides can be tracked.
However, this is not the most interesting feature of Operations Manager. In addition to its capacity to monitor the application, it has great integration with TFS. Information that is gathered about failures and performance problems can be sent to developers with just a single click.
After we send the information about an event to the developers, a “Work Item” is created in TFS, and it contains all required information for debugging.
Using the information provided in the Work Item, developers can immediately start working on editing.
Microsoft Monitoring Agent
Microsoft Operations Manager is a comfortable, but ponderous decision. As a simple alternative you can use Microsoft Monitoring Agent. Using this tool, you can locally monitor the performance of .Net web applications.
Microsoft Monitoring Agent can only collect data from locally installed applications. The data is stored in a file that can be manually sent to developers.
Application Insights – is a new and promising way of monitoring apllications. Application Insights is now available in the preview version as a component of Visual Studio Online. Application Insights provides:
Monitor availability and response time of web applications. Simply specify the URL of the application and leave the web-testing to Visual Studio.
Error and performance monitoring. This case is similar to the previously described options. Microsoft Monitoring Agent is installed on the computer that the monitored application is running on and then it is connected to Application Insights. After this, the gathered information becomes available in Application Insights.
User actions analysis. Application Insights is able to track the frequency of all events that occur in the application (for example, loading of a screen). This option is available for the following types of applications:
Windows Phone 8
Automation of application feedback gathering with Microsoft Feedback Client
Using Microsoft Feedback Client developers can request and receive a review of the running application from its users. Request for review is created by developers through TFS and sent by email.
A user of the application receives a request, and with the help of the locally installed Microsoft Feedback Client creates a review of their interaction with the application. The review can contain video, screenshots, audio, and text comments.
The received feedback can be saved in TFS and linked to a previously created Work Item.