This document discusses continuous delivery using Azure and Visual Studio Online. It defines continuous delivery as allowing software to be released to production at any time. It presents the continuous delivery process of building, testing, and deploying code. It describes how Visual Studio Online and Azure provide an environment for modern development practices like Agile through features for building, releasing, testing code, and gaining insights. It provides an example deployment pipeline for a web application that moves code through development, QA, staging and production environments with automated and manual approval stages.
3. “Continuous Delivery is a software development
discipline where you build software in such a way
that the software can be released to production at
any time”
Martin Fowler, ThoughtWorks
20. • Simple Web based authoring
• Same architecture as new Build system
• Shared task catalog
• Cross Platform
• Available in Public Preview later this year
21. DEV
Azure Web App
Azure VM
Back End
SQL
Front End
Back Office
QA
Azure Web App
Azure VM
Back End
SQL
Front End
Back Office
PROD
Azure Web App
Azure VM
Back End
SQL
Front End -Staging
Back Office
Front End - Prod
22. Commit Deploy
QA
Deploy
DEV
Compile
Run unit tests
Create
packages
Publish
artifacts
Deploy
to DEV
Download
artifacts
Deploy
to QA
Download
artifacts
Automated
Acceptance
Tests
UI Tests
Download
test artifacts
Deploy
PROD A/B
Deploy
to Staging
slot
Download
artifacts
Load Tests
Manual
Acceptance
Tests
Analyze Code
Auto
Approve
Auto
Approve
Auto
Approve
Manual
Approve
Manual
Approve
Production
Swap
Swap
Production
Slot
Manual
Approve
QuizBox Deployment Pipeline
Manual
Approve
Auto
Approve
Auto
Approve
29. Glöm inte att utvärdera sessionen direkt i
Microsoft TechDays-appen!
Editor's Notes
Kort om CD
I denna sesison kommer vi gå igenom hur en ändring går från kod till produktion.
Många termer, vad är egentligen vad?
http://blog.assembla.com/AssemblaBlog/tabid/12618/bid/92411/Continuous-Delivery-vs-Continuous-Deployment-vs-Continuous-Integration-Wait-huh.aspx
ALM + Plattform + Kunskap
A major goal is the ability to take a single build package and push it out to each environment in the same way.
[Build]
This drastically reduces the amount of manual effort required to update the environments and can make the entire process much smoother.
Another important aspect to each release environment is what we’ll refer to as the “stage stack”. This is a simple layout of the steps typically required to get a packaged app from a build location out to a prepared environment, through the necessary install and configuration, through the required tests, and finally approved for migration to the next stage. Microsoft has provided many of the tools to support this stack, although sometimes a little extra work is required to help it all work together.
[Build]
Lab Manager is available to help provision environments.
[Build]
PowerShell is ideal for configuring environments.
[Build]
There are some useful built-in tools for deploying and installing the application itself.
[Build]
And lots of companies invest in their own custom tools to configure applications.
[Build]
Running automated tests during the release process is becoming the standard for applications of every type.
[Build]
Microsoft Test Manager handles the testing aspects.
[Build]
And now with Release Management for Team Foundation Server 2013, this entire process is only going to get better.