Cory Fowler blog.syntaxc4.net @SyntaxC4 SyntaxC4-MSFT

Preview:

Citation preview

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