cory fowler blog.syntaxc4.net @syntaxc4 syntaxc4-msft
TRANSCRIPT
Continuous Integration &Automation withWindows Azure Web SitesCory FowlerWindows Azure Technical Evangelist3-551
Agenda
Cory Fowler
blog.syntaxc4.net
@SyntaxC4
SyntaxC4-MSFT
• Familiarization of configuration settings and deployment pipeline
• Explore environment acquisition options
• Delve into continuous integration and continuous delivery
• How to deploy to multiple environments
Continuous Integration
A software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day.
-- Martin Fowler
Windows Azure Web Sites
Fast, Simple, High Density Hosting.
Windows Azure Web Sites
ASP ASP.NET
PHP Node.js
HTTP Handler
Language Support
TFS Online
Git
CodePlex
GitHub
Bit BucketDrop Box
Deployment
SNI or IP Based SSL
X86 | x64
Auto Scaling
Scalability[ Free | Shared | Standard ]
Endpoint Monitorin
g
Custom Domains
MetricFTP
Features
Web Site > Quick Create
Demo
Windows AzureLoad
Balancer
IIS ARR
API Frontend
Deployment Server(s)
Runtime DB
Web Server Pool
Web Site
Web Site
Web Site
Web Site
Web Site
Web Sites Databases
Web Site
Storage
Storage Controlle
r
Windows Azure Web Sites Architecture
FTP Deployment
Windows AzureLoad
Balancer
IIS ARR
API Frontend
Deployment Server(s)
Runtime DB
Web Server Pool
Web Site
Web Site
Web Site
Web Site
Web Site
Web Sites Databases
Storage Controlle
r
Web Site
Storage
Source Control Deployment
Windows AzureLoad
Balancer
IIS ARR
API Frontend
Deployment Server(s)
Runtime DB
Web Server Pool
Web Site
Web Site
Web Site
Web Site
Web Site
Web Sites Databases
Storage Controlle
r
Web Site
Storage
nerddinner
Our Scenario
Deploy from TFS Online
Demo
Deployment Pipeline
Receive Deployment Notification
Run Deployment
Script
Deployment Success/Failu
re
Update Source Code
http://github.com/projectkudu/kudu
Multi-Environment Deployment with TFS Online
Demo
Web Sites Environments by Branching
Development Staging Production
Let’s change gears…
Windows Azure Environment Automation
Create a Web Site
New-AzureWebSite –Name contoso-com-dev –Location “West US” -GitHub -GitHubRepository “Contoso/contoso-com”
azure site create nerddinner-com-dev --location “West US” --GitHub --GitHubUsername “NerdDinner” --GitHubRepository “NerdDinner/nerddinner-com”
Automating Resources & App Settings
Windows AzureLoad
Balancer
IIS ARR
API Frontend
Deployment Server(s)
Runtime DB
Web Server Pool
Web Site
Web Site
Web Site
Web Site
Web Site
Web Sites Databases
Storage Controlle
r
Web Site
Storage
nerddinner
Our Scenario
Pull Request
NerdDinner Production Organization
NerdDinner QA Organization
NerdDinner-com
Production Branch
Staging Branch
Forked from NerdDinner-PROD/NerdDinner-com
NerdDinner-com
NerdDinner Individual Developer
Organization
NerdDinner-com
Production Branch
Staging Branch
Forked from NerdDinner-QA/NerdDinner-com
Production Branch
Staging Branch
Fork
Scripted GitHub Deployment Environments
Demo
Isn’t that only Continuous Deployment?
Deployment Pipeline
Receive Deployment Notification
Run Deployment
Script
Deployment Success/Failu
re
Update Source Code
I’m Customizable
Customized Deployment
Demo
That all sounds great, but my code lives on-premises
Deploying with TFS & TC
Demo
Review
• How to configure deployment from Source Control systems via the Portal
• How to script an environment to automate resource acquisition
• How to configure Continuous Delivery to multiple environments via TFS Online & GitHub
• How to use WebDeploy from an on-premises build server.
Cory Fowler
blog.syntaxc4.net
@SyntaxC4
SyntaxC4-MSFT
Q&A
Evaluate this session
Scan this QR code to evaluate this session and be automatically entered in a drawing to win a prize!
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Web Site File StructureLogFiles
Application DetailedError Git http
Site wwwroot repository deployment .ssh
Kuduservice
Create a Virtual MachineNew-AzureVMConfig –Name “contoso-build”
–InstanceSize Small-ImageName (Get-AzureVMImge)[4].ImageName `
| Add-AzureProvisioningConfig –Windows –Password “myPassword” –AdminUserName PsTestAdmin `
| New-AzureVM –ServiceName “MySvc2” –AffinityGroup “Contoso” -WaitForBoot
azure vm create contoso-buildwindows-server-2012-06-21-2013.vhdcontoso-user--location “West US”--rdp