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