Download as pdf or txt
Download as pdf or txt
You are on page 1of 64

DevOps on the

Microsoft Stack

Randy Pagels
Sr. Developer Technology Specialist
US DX Team – rpagels@microsoft.com
Windows Linux iOS Android

.NET C# C++ JavaScript PHP

Python Node.js R Cordova Unity


Java Perl
Application lifecycle management

Modern app
development
Continuous value
delivery and rapid
response to change
Our own journey
How we used to work
We did ask for feedback after each milestone – but we could not really react to it.
For the most part, we would tell everybody “sorry” - and push things to the next release.
We did find and fix bugs – without really knowing if we built the right thing in the first place.
We had closed silos of information across different organizations, hurting collaboration.

Planning Code Test & Stabilize Code Test & Stabilize

? Beta
? RTM

2.5 years!
Where we are today
How we work now
We ship frequently with minimum friction
Build>Deploy>Test reliably, hundreds of times a day
We continue to meet a rigorous on-premises quality bar
We build confidence through staging, exposure control & rich telemetry

Sprint Planning Chat Season Vision

3 week Every 3 6 month 18 month


sprints sprints season vision

Visit http://stories.visualstudio.com to get the full story!


Microsoft
Ecosystem
Plan + Develop

IDE

Build + Test
Build/CI
Release

Deploy
Monitor

Monitor + Learn
Team Collaboration
Test

DEV TEST QA

ON-PREMISES | HYBRID | PUBLIC CLOUD


OSS
Ecosystem
Plan + Develop

IDE

Build + Test
Build/CI
Configuration

Deploy
Monitor

Monitor + Learn
Release
Team Collaboration

Test

This graphic shows OSS and partner products


integrated with the Microsoft DevOps solution
DevOps
1 Plan 4 Monitor + Learn

Developmen Production
t

2 Develop + Test 3 Release


Plan
It starts with an idea – and a plan
how to turn this idea into reality …
Project starts

Manage work

Develop + Test 1

Track progress Plan


Agile Tools
Work Item Visualization

Available in the Visual Studio Marketplace


Develop + Test
Once the iteration starts, developers
turn great ideas into features …
2

Write Code

Unit Testing

Version Control

Build

Build Verification

Release
Unit Testing
Microsoft Fakes
Isolate the code you are testing by replacing other parts
of the application with stubs or shims.

Small pieces of code that are under the control of your


tests.
Deployed component depends on external parts that are
incomplete or exhibit variable behavior.
Stubs
A stub replaces a class with a small substitute
that implements the same interface

Shimes
A shim modifies the compiled code of your
application at run time so that instead of
making a specified method call, it runs the
shim code that your test provides
Component isolated testing. The stubs and shims work
under the control of the tests.
Code Maps
• Filter link types on Code maps and
dependency graphs
• Drag and drop from object browser or class
view
• Create new diagrams from selected nodes
• Create new blank Code Map from the
simplified Architecture menu
• Faster display and better responsiveness
• Less clutter with implicit .NET type
dependencies hidden
• Filters for code elements as well as
dependency links
Diagnostic Tools window
Debugger Events (with IntelliTrace)
See memory Usage, CPU Usage, and more
Next generation build

Continuous integration to find build issues earlier


Create your own build definition templates
or use community templates from your Git provider
Build Summary Report
Technical Debt Bottleneck
 Makes forward progress on customer value inefficient

 Technical debt zaps productivity

 Technical makes code hard to understand, fragile, difficult to


validate
… but technical
 Technical creates unplanned work that blocks progress debt slows it down
 50% of capacity is zapped by technical debt

… but technical
debt slows it down
… but technical
debt slows it down
SonarQube Integration

Examples
 code analysis issues  not enough tests
 duplicate code  redundant & flaky tests
 code complexity  architectural spaghetti
Release
When all tests pass, the build is deployed to testing
environments for each stage in the release process

Cloud
Load Testing

Integration testing Staging


environment environment

3 Monitor + Learn

Automated functional Pre-production


testing environment environment
Release management
Release
Pipeline
UI Automation
Coded UI tests provide a way to
create fully automated tests to
validate the functionality and
behavior of your application’s
user interface

Selenium automates browsers.


Primarily, it is for automating
web applications for testing
purposes, but is not limited to
just that
Test Run Hub
Azure Dev/Test Labs 

Worry free self-service
Fast Provisioning, “ready to test”
Fast, easy, and lean dev-test environments in Azure.  Create once, use everywhere
Specifically for your team. On demand.  Integrate with your toolchain
Cloud Based Load Tests
Monitor + Learn
Learn and understand how users use your app, how it reacts
and quickly fix issues and bugs
Plan the next iteration

Feedback

Monitor

4
Visual Studio Application Insights
Detect issues, diagnose crashes and track usage in your web and mobile apps

Announcing Public Preview on Azure Preview Portal


Monitor ASP.NET, Java and other web apps and services
Support for Android, iOS and Windows mobile apps
Pricing details available now including free tier

Check it out!
http://azure.microsoft.com/en-us/services/application-insights
Application insights
Application insights
Gain understanding and
Power BI Integration insights into projects in VSTS

“How many pull requests per day? Per week?”


Automate Everything
Azure App Service

WEB APPS MOBILE APPS


.NET, Java, Node.js, PHP, Python Web apps that scale with your Build Mobile apps for any
business device
Auto OS patching
Auto scale/built in load balancing
Integration with existing apps
Continuous deployment

LOGIC APPS API APPS


Automate business process Easily build and consume
across SaaS and on-premises APIs in the cloud
Azure Web Apps
Cloud Deployment
Slots
Azure Web Apps: Web Jobs

run.cmd, run.bat run.exe run.ps1 run.sh run.php run.py run.js

Job Type: On-Demand, Scheduled, Continuous


Scale: Singleton, Multi-instance
WebJobs SDK Feature: BlobTrigger, TableTrigger, QueueTrigger,
ServicebusTrigger
Deployment: Portal, Visual Studio, CLI, Git
Web App: DevOps Workflow

Azure
DEMO
www.teamsystemcafe.net/resources
Next Steps Create a Visual Studio Online account
Try the Release Management Service & Application Insights

visualstudio.com
Download Visual Studio 2015
Use your Visual Studio Online & Azure benefits

msdn.microsoft.com
Try App Service: Web Apps today
tryappservice.azure.com

DevOps and Application Lifecycle Management


msdn.microsoft.com/en-us/library/fda2bad5.aspx

Microsoft’s DevOps Journey


stories.visualstudio.com/devops
Miscellaneous
What can you do with $100 in Azure?

Access to Azure
All MSDN subscribers have 3 VMs for 16 hours a day
access to $50 to $150 monthly
Azure credit

Use all your MSDN software


benefits in Azure for Dev/Test 80 VMs for 20 hour load test

Spin up Virtual Machines,


Websites, Databases, etc.

Up to 500 web sites plus SQL DB


Azure Automation
Automation as a Service
Think Orchestrator or Azure Pack Service Automation, but in Azure
Automate repetitive or long-running processes
Script Authoring Environment
Uses PowerShell Workflows
Combination of PowerShell 4.0 and WF
Uses Integration Modules, very similar to PowerShell Modules
Scheduling and Monitoring
Execute scripts on a schedule
Review execution status on a dashboard
.Net Walkthrough
Java Walkthrough

You might also like