Transcript Document

Developer Operations with
Visual Studio ALM 2013
Matteo Emili –
http://mattvsts.blogspot.com
Who am I?
•
•
•
•
Visual Studio ALM MVP since 2010
MCTS:TFS
Professional Scrum Master 1
Enthusiast 
• Email: [email protected]
• Twitter: @MattVSTS
Monitor
Operate
Working software
in production
Value realization
Usual scenarios…
• IT Ops team is waiting for an approval
• Cannot deploy because of reasons
– Stuck or not cleaned environment
– Not realistic incremental environment
snapshot
• Repave, reinstall, …
– Somebody is using the environment!
But despite that…
• …releases are almost still the same
experience
• …thanks to DevOpsReactions.com 
Developer Operations
• The link between Development teams and
IT Operations teams, involving QA in the
mix
• “Helping finish what Agile development
started” (DevOps.com)
Why DevOps?
• Having Agile development teams who are
blocked by waterfall operations teams is
not useful
• Better overall velocity in execution
(delivering sprint artifacts, reacting to
production issues)
• It is very tied to the business. If a critical
app fails, the business is down.
The Ultimate Target: a zero downtime
upgrade
Communication is the key
• Both sides of the SDLC are always up-todate
• Very low friction
• Inclusive of the developers’ needs in IT
discussions
Advantages of this approach
• Including a broad communication among
all the organization’s team members
enables proactive scenarios
• Information sharing removes silos, so a
solid and reliable knowledge base is built
and the teams are not linked by just one
tiny red line.
• It doesn’t mean removing governance and
auditing, instead it is empowered by such
approach
The Visual Studio ALM family
System Center Operations Manager
• Microsoft’s solution for Infrastructure
Monitoring
• Specifically talking about SCOM 2012
• We are interested in the Application
Performance Monitoring module
Application Performance Monitoring
• Nothing custom in the application
• Almost no impact on application
performance
• It supports several application types and
OSes
– ASP.NET
– WCF
– Windows Services
– Java
• On Tomcat
APM – involved technologies
• Based on the former AVICode
technologies
• Advanced monitoring technology
• It creates a consistent snapshot for errors
reporting and reproduction (“no more norepro”)
What can you do?
• Monitor the application
– Status
– Health
• Set your own Performance Counters
– Very useful in case of heterogeneous
environments
• Catch production IntelliTrace files
Production issues
monitoring – the
Operations side of the story
DEMO
What’s on the Developers’ side?
• A dedicated Work Item Type in Team
Foundation Server
– Operational Issues
• A continuous communication workflow
between development teams and
operations teams
IntelliTrace
• Captures state information while executing
the application
• It is a recorder for our code in execution
– We can play it, rewind, inspect variables, …
• It is the definitive solution for the no repro
bug
• SCOM can record IntelliTrace files while
monitoring
Using captured
IntelliTrace files – the
Developers part of the story
DEMO
Microsoft Monitoring Agent
• Microsoft just released MMA – compatible
with VSALM 2013
• It can be standalone or integrated with
SCOM
• Free, and very powerful diagnostic tool
• It produces IntelliTrace files from
production applications
DevOps is not just monitoring
• We should react to issues
• Quick releases
– Continuous Delivery as a target
• Development teams are heavily involved
– The Dev in DevOps…
InRelease: the latest addition to VSALM
• Microsoft acquired the InRelease business
unit of InCycle some months ago
• InRelease is a Release Management
solution
• It is going to be integrated in Visual Studio
ALM 2013 and beyond
InRelease Architecture
InRelease Tools
• An InRelease Tool is whatever performs an operation against a
target server in the environment
• It can be even a simple script or the custom procedure you
already own
• There are several out-of-the-box, but you can create your own
InRelease Components
• An InRelease Component is an indexed
component of your deployment inside the
pipeline
• For example, a build of your application
could be a component, together with the
destination server or Environment
InRelease Environments
• An InRelease Environment is the specific
environment – or part of it – where you are
deploying your application or your
component
• You can define on-premise or cloud
environments
Releasing and approvals
• It is very easy to deploy with InRelease,
but you should use it for much more
• The pipeline integrates an approval
engine, so you can get the required level
of auditing for your organization
Lap around InRelease
DEMO
This was just a very simple
example…
• We saw it has a huge out-of-the-box
inventory
• You can customize it by adding existing
items
• One tool for every environment
– Parameterization
• An example: you could use InRelease for
automating a Continuous Deployment
Pipeline of a SharePoint application
How?
• SharePoint?
– Content database
– Apps? New client model with HTML5, JS, and
the store model = easier deploy
– Existing PowerShell scripts? Reuse them with
a proper parameterization so you can target
your environments
Why InRelease?
• It is an all-in-one solution for Release
Management
• You can use it on-premise or toward the
cloud (Windows Azure OOB, or whatever
else via a custom tool)
• Powerful workflow editor
• Analytics and Reporting
• Very integrated with Team Foundation
Server
Recap
• Communication as a cornerstone
• Removing silos and barriers is the main
way of achieving Continuous Delivery
• Development technology must be
supported by monitoring technology
Links
• InRelease - http://www.microsoft.com/visualstudio/inrelease/
• MMA - http://www.microsoft.com/enus/download/details.aspx?id=40316
• APM - http://technet.microsoft.com/en-us/library/hh457578.aspx
• Fun pictures – http://devopsreactions.tumblr.com
Thank you!
@MattVSTS
mattvsts.blogspot.com
uk.linkedin.com/in/matteoemili