Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)
-
Upload
michael-collier -
Category
Technology
-
view
109 -
download
2
description
Transcript of Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)
![Page 1: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/1.jpg)
Elevating Windows Azure Deployments
Michael S. CollierNational Architect, Cloud
Level: Intermediate
![Page 2: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/2.jpg)
About Me
Michael S. Collier
National Architect, Cloud
@MichaelCollier
www.MichaelSCollier.com
http://www.slideshare.net/buckeye01
![Page 3: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/3.jpg)
Today’s Agenda
• Authentication• Visual Studio• PowerShell• TFS• Command Line Options
![Page 4: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/4.jpg)
• Build & deployment process crucial to any project.– Easily overlooked initially.– Good tools and/or process
are worth the time.
Why?
![Page 5: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/5.jpg)
• Windows Azure – nearly everything is automated.
• Scale makes automation a necessity.
• Failure to automate puts projects at risk
• Several deployment options available with Windows Azure.
Automation is the Key
![Page 6: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/6.jpg)
Management PortalGreat for quick deployments or updates.
Need to have deployment package and config prepared.
Windows Azure Deployment Options
![Page 7: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/7.jpg)
Visual StudioVery low developer friction – wizards make it easy.
Automatically handles some of the necessary tasks
Windows Azure Deployment Options
![Page 8: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/8.jpg)
PowerShellVery powerful – can do pretty much anything from PowerShell.
Slight learning curve if not familiar with PowerShell.
Windows Azure Deployment Options
![Page 9: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/9.jpg)
Management APIThe native interface – everything else uses the management API.
More code to write – build your own tools or processes.
Windows Azure Deployment Options
![Page 10: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/10.jpg)
• Team Foundation Server– Tap into existing build workflows.– Need to understand how to edit
build tasks and workflows.– Use PowerShell script or MSBuild
target to deploy.
• Team Foundation Service– Already includes workflow to build
and deploy.
• Everything requires some form of authentication.
Windows Azure Deployment Options
![Page 11: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/11.jpg)
Microsoft Account
• Used only with Windows Azure Management Portal.• Can delegate co-admin access to other Microsoft Accounts.
https://manage.windowsazure.com
![Page 12: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/12.jpg)
Management Certificate
• Identifies you with Windows Azure– X509 certificate.– Can create yourself or have Windows Azure create one for you.– Anything that uses the management API (Visual Studio, PowerShell, TFS, etc.)
• Key Management– Upload the .cer file to the Windows Azure management portal.– You keep the private key in your certificate store.
![Page 13: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/13.jpg)
Create a Cert using IIS
• Quick and easy, but limited control– IIS Management Console
Server CertificateLink to ‘Create Self-Signed Certificate’Provide a name – file in Local Computer\Personal store
– Export the PFX to a CER without the private keyAdd Certificate snap-in for MMCFind certificate and Export
![Page 14: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/14.jpg)
Create a Cert using IIS
• Quick and easy, but limited control– IIS Management Console
Server CertificateLink to ‘Create Self-Signed Certificate’Provide a name – file in Local Computer\Personal store
– Export the PFX to a CER without the private keyAdd Certificate snap-in for MMCFind certificate and Export
![Page 15: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/15.jpg)
Create a Cert using IIS
• Quick and easy, but limited control– IIS Management Console
Server CertificateLink to ‘Create Self-Signed Certificate’Provide a name – file in Local Computer\Personal store
– Export the PFX to a CER without the private keyAdd Certificate snap-in for MMCFind certificate and Export
![Page 16: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/16.jpg)
• Import a Certificate via a .publishsettings file– Created automatically by visiting
https://windows.azure.com/download/publishprofile.aspx
– Contains a base64 encoded certificate (w/ the private key).
• Advantages– Fast and easy – minimal developer
friction.
• Disadvantages– Certificate created in every subscription
associated with your Microsoft Account.– Can’t control the certificate name
(<subscription_name>-<date_created>-credentials)
– Easy to hit 25 certificate limit within a subscription or Microsoft Account.
Import a Cert from Windows Azure
![Page 17: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/17.jpg)
• Protect Your Secrets– Delete the .publishsettings file after
import (or at least keep someplace safe).– Visual Studio places local file at
%UserProfile%\My Documents\Visual Studio 2012\Settings\Windows Azure Connections.xml.
Import a Cert from Windows Azure
![Page 18: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/18.jpg)
Create a Cert using MAKECERT
• Offers a great deal of control.• Create a .cmd file for easy reuse & share with team.
One line
![Page 19: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/19.jpg)
CREATING A CERT ANDMANUAL CONFIGURATION
demo
![Page 20: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/20.jpg)
Visual Studio Deployment• Create a Project
– New Windows Azure Cloud Service project.– Add Windows Azure deployment to existing
project.
• Authenticate– Import certificate from a .publishsettings file.– Use an existing certificate.
Load certificate to the management portal.Associate certificate with Visual Studio.
• Publish– Visual Studio verifies deployment package.– Creates new Cloud Service (if necessary).– Uploads package (.cspkg and .cscfg) to blob
storage and deploys.
More details at http://msdn.microsoft.com/en-us/library/ee460772.aspx
![Page 21: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/21.jpg)
Where are the Files?
• Visual Studio publish location– Temporarily stored at <storage_account>\vsdeploy\<guid>
![Page 22: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/22.jpg)
• Keep deployment files in blob storage for easy & fast deployments in the future.
• No need to re-upload – deploy from blob storage.
![Page 23: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/23.jpg)
PowerShell Deployment
• Automate as much as possible.– Figure out the process first.– Automate the tedious and error prone – like deployments.– Save time and frustrations.
• One script for all.– One script for local and source control builds (TFS).– Share across a team – everybody follows the same process.
![Page 24: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/24.jpg)
PowerShell Deployment
![Page 25: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/25.jpg)
Getting Started• Download from
https://www.windowsazure.com/en-us/manage/downloads/ – Officially supported cmdlets – not the previous version on CodePlex.– Not everything from previous version has made it over yet (e.g. storage)
• Import module– Import-Module "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\
PowerShell\Azure\Azure.psd1“
• Authenticate– Import certificate from a .publishsettings file or use an existing certificate.
• Subscription– Select a subscription and a storage account for deployments– Default location - %userprofile%\AppData\Roaming\Windows Azure Powershell
![Page 26: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/26.jpg)
BUILD & DEPLOY WITH POWERSHELL
demo
![Page 27: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/27.jpg)
Leverage Team Foundation Service
• Includes pre-built deployment workflow.– Use default settings– Override settings to customize
deployment (name, storage account, slot, label, etc.)
– See full tutorial at https://www.windowsazure.com/en-us/develop/net/common-tasks/publishing-with-tfs/
• Currently in Preview
![Page 28: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/28.jpg)
Leverage Team Foundation Service
• Includes pre-built deployment workflow.– Use default settings– Override settings to customize
deployment (name, storage account, slot, label, etc.)
– See full tutorial at https://www.windowsazure.com/en-us/develop/net/common-tasks/publishing-with-tfs/
• Currently in Preview
![Page 29: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/29.jpg)
BUILD & DEPLOY WITHTEAM FOUNDATION SERVICE
demo
![Page 30: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/30.jpg)
PowerShell and TFS
• Execute PowerShell script from TFS build workflow– Call to the same PowerShell script created previously.– Edit build definition to accept input parameters for the PowerShell script.
![Page 31: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/31.jpg)
Enabling Continuous Deployment
• Check-in the source code.• Package and deploy to Windows Azure.
• NOT cost efficient!– Deployed services cost money regardless of use.– Each time a service is deleted and deployed == 1 hour cost charge.
![Page 32: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/32.jpg)
Build Server Configuration
• Not “hard”, but somewhat time consuming.– Turn on logging in the build – very helpful in understanding why something doesn’t work.
• Several misc. components to install manually.– Developer workstations – Web PI often handles these things for you as part of Visual Studio
setup.
• Give build service account at least Read access to mgmt. certificate.• What You May Need
– .NET Framework version(s)– Windows Azure Authoring Tools– Windows Azure Tools for Visual Studio– Windows Azure PowerShell Cmdlets– Microsoft.WebApplications.targets file (copy from computer w/ Visual Studio installed)– Management Certificate
![Page 33: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/33.jpg)
POWERSHELL AND TFSdemo
![Page 34: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/34.jpg)
• Service Bus– Create & manage namespaces
• Cloud Services– List & delete services– Manage service certificates
• Storage Account– Create & manage
• Websites– Create & manage– Download logs– Manage deployments– Github integration
• Virtual Machines– Create & manage– Endpoints & images
• Mobile Services– Create & manage– Tables, scripts, & configuration– Logs
Cross Platform Tools (command line)
• Command reference at http://www.windowsazure.com/en-us/manage/linux/other-resources/command-line-tools/
• Check out https://github.com/windowsazure/azure-sdk-tools-xplat for bug list and updates. Look at the dev branch to see the future!
![Page 35: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/35.jpg)
Get the Tools
• Get node.js– http://nodejs.org– npm install –g azure-cli– V0.8.x
• Get node.js– Windows installer– http://go.microsoft.com/fwlink/
?LinkID=275464&clcid=0x409
![Page 36: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/36.jpg)
Easy Git integration
Windows Azure xPlat CLI
> azure site create -–location “East US” –-git MySiteName> notepad default.htm> git add .> git commit –m “initial commit”> git push azure master
![Page 37: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/37.jpg)
CONTINUOUS DEPLOYMENT WITH WEB SITES
demo
![Page 38: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/38.jpg)
Support for Logical Environments• Different Windows Azure projects for different logical
environments– Handle differences in .csdef (i.e. machine size).
• Different build definitions - different environments.– Different configuration settings (instance count, connection strings, etc.)– Adjust input parameters to match the environment.
Storage account nameService nameDeployment slot. . .
Development
Staging
Production
CS CS
CS DB
CS CS
CS DB
QA
Staging
Production
CS
DB
CS
DB
Production
Staging
Production
CS
CS
DB
![Page 39: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/39.jpg)
Command Line
Visual Studio TFSPowerShell
Multiple paths availablePick an authentication approach that works for you – understand the pros and cons.Automate as much as possible – invest early and save yourself time and money later.
Windows Azure Deployments
![Page 40: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/40.jpg)
• Windows Azure Guidance– https://www.windowsazure.com/en-us/develop/net/Guidance/
• Windows Azure Training Kit– https://www.windowsazure.com/en-us/develop/net/other-resources/training-kit/
• Windows Azure Continuous Delivery– https://www.windowsazure.com/en-us/develop/net/common-tasks/continuous-d
elivery/
• Deploy Cloud Services with Visual Studio– http://msdn.microsoft.com/en-us/library/ee460772.aspx
• Windows Azure Web Sites Cheat Sheet– http://windowsazurewebsitescheatsheet.info
Resources
![Page 41: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/41.jpg)
Q &
A
Ask your questions
![Page 42: Elevating Windows Azure Deployments (Visual Studio Live - Las Vegas 2013)](https://reader036.fdocuments.net/reader036/viewer/2022062511/54c675c94a79593d1c8b45b2/html5/thumbnails/42.jpg)
Thank You!!Michael S. Collier
National Architect, Cloud
@MichaelCollier
www.MichaelSCollier.com
http://www.slideshare.net/buckeye01
Please fill out your session evals!