Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
At 10:15 AM they
managed to shut down
the entire system.
In 45 minutes Knight Capital
Group lost
dollars.
What would be the impact in
your organization?
Going DevOps on the Microsoft stack
Using Release Management with VSO and TFS
Wouter de Kort
• ALM Ranger
• Author
• Developer
• Elise
• Groningen
• Lezen
Lead DevOps Consultant
Agenda
• Basic recap
• Advanced features
• PowerShell DSC
• Future
Release Management
History
InRelease
Release Management
Visual Studio 2013 Update 3
vNext
DEV QA INT PROD TFS
Full Traceability
How does it work?
TFS Drop Location
RM Desktop RM Web
QA
DEV
RM Server
Components
DEMO A simple automated release
Choices and features
• Agent based fully supported through 2015
• Each have their Pros and Cons
Agent Based vs v.Next
Any action that can be performed from PowerShell or a CLI
can be done during your release
PowerShell/CLI
Tokenization
Multiple Copies
Transform Files
Tokens
• Shadow Accounts
• Two-way Trusts
• Co-located Agents
Cross-Domain / Workgroup Mode
• Release Management is highly secure
• Remove the Everyone group
• Supports
– Active Directory
– Team Foundation Server Groups
– Release Management Groups
• Supports Encryption
Security
• Some actions require human intervention
• Still recorded in deployment log
• Can trigger a rollback
Manual Intervention
• SSDT
• Care must be taken with Deployment Slots
• Have rollback strategy
Database Changes
• RM Client
• Command Line
• REST API
Triggering Releases
• Restore system after failed deployment
• Similar to Try, Catch, Finally
Rollbacks
PowerShell DSC
The Stage Stack
Manage the full stack
Without DSC
Assumed State
Start with an Assumption of target Environment
Run a series of actions
Desired State
End with desired state (hopefully)
With DSC
Desired State
Send a description of the desired state
DSC capability reaches the desired state
Get.Test.Set
“Make it so”
DSC Resources TFS
Config as Code Shared Gallery
Desired State Configuration
Configuration InstallWebSite {
Node $AllNodes.NodeName {
WindowsFeature InstallIIS {
Ensure = "Present"
Name = "Web-Server"
}
}
}
InstallWebSite –ConfigurationData .\config.ps1
config.ps1
$ConfigData = @{
AllNodes = @(
@{
NodeName = “localhost“
})
}
The future
Current issues
• Separate installation
• Desktop client
• Not cross platform
• Not fully integrated
• ‘Issues’
Release Management vNext
• Web based
• Cross platform
• Easily extensible
DEMO Release Management vNext
And there is more!
• Azure Resource Manager
• Docker
• Chef
• Release validation
• Functional testing
• Load Test
• Test analysis
Thank you!
Your feedback is important!
Scan the QR Code and let us know via the TechDays App.
Laat ons weten wat u van de sessie vindt via de TechDays App!
Scan de QR Code.
Bent u al lid van de Microsoft Virtual Academy?! Op MVA kunt u altijd
iets nieuws leren over de laatste technologie van Microsoft. Meld u
vandaag aan op de MVA Stand. MVA biedt 7/24 gratis online training
on-demand voor IT-Professionals en Ontwikkelaars.