BlueMetal Presentation Template 2014

Download Report

Transcript BlueMetal Presentation Template 2014

Azure DevOps
Chris Condo
[email protected]
March 29, 2014
Introduction
• Architect here at BlueMetal, January 2013
• Last job was 13+ years at Microsoft in the Online Services Division.
• Lead software engineer
• bCentral, OfficeLive, Office365
• When I started at Microsoft (1999), Satya Nadella was my GM.
• Began working with Azure, back when it was known as RedDog (2007).
Why Azure, Why DevOps?
• How many times have you had systems in the same datacenter
configured different from each other?
• Different OS or software versions
• Different patch history
• Different disk or memory sizes
• Not properly added to the load balancer.
• Who really knows how to configure your server and what happens
when s/he goes on vacation?
• Does anyone know where that system configuration document is? Does
one even exist?
• How much money does it cost to host and maintain a server?
Cloud computing is more than hosted services
• Standardized server configurations
• Windows, Linux, Oracle…
• IaaS – Infrastructure as a Service
• Azure allows you to create a Virtual Machine from a number of different standard
images and Operating Systems (not just Windows!)
• You can customize and capture that image to create your own standard VM.
• Complex system operations which are exposed via APIs.
• Every operation that can be performed via a console can also be scripted!!
Standardized Configurations
• Azure provides standard OS Images that can be consistently and
repeatedly deployed.
Customize and Capture
• Start with a standard image and create a custom image.
DevOps -> Developer Operations
• The Goal of DevOps is to eliminate (at least reduce) all manual touches
to your server.
• Configuring and deploying of the service infrastructure.
• Configuring and deploying the application bits.
• Benefits to automating server configuration:
•
•
•
•
Consistency – Each server is configured the same way.
Repeatability – Deploy 10, 100, 1000 identical servers.
Scale up or down, as needed and save money.
Shorten time to market with a conveyor belt approach to software releases.
• Completely integrate your build and deployment processes.
• Say NO to manual touches
Windows Azure DevOps Flavors
• Cross Platform Command Line Interface - xplat-cli
• Runs on Windows, OS X, and Linux
• REST
• A rich set of requests for managing most aspects of your azure service
• Any platform
• .Net Automation Library
• Runs on Windows, installs with NuGet into Visual Studio
• Powershell
• Scripting language for Windows Plaforms.
• Node.js
• Azure management integrated with Node.js
Windows Azure Cross-Platform CLI
• Windows, OS X, Linux installers
• xplat-cli – the azure cross platform
command line interface.
• Xplat-cli Provides a scriptable
interface to your Azure
subscription.
• Easy to install on your Mac 
• Get the code from Github
CLI Features
• Manage account operations
• Import subscriptions, manage environment, create groups, export certs
• Storage
• Create and manage Storage Accounts, containers, blob, ACLs
• Websites
•
•
•
•
•
•
Create and manage Windows Azure websites
Download site log files and get real time log streaming
Manage Deployments
Configure GitHub integration
Create, manage and swap slots
Create and manage WebJobs
CLI Features cont.
• Virtual machines
• Create and manage Windows and Linux Virtual machines
• Create and manage VM endpoints, VM Images, Certificates.
• CloudInit for Ubuntu VM
• Network
• Import and export network configuration, Create and manage virtual network
• Create and manage DNS server
• Service Bus
• Create and manage Service Bus namespaces
• Azure SQL Server
• Create and manage SQL Servers, Firewall rules and Databases
Xplat-cli
Xplat-cli allows you to manually issue commands
from the command line.
>azure site start mywebsite
You can chain commands together for complex
automation workflows.
>azure site list | grep ‘Running’ | awk
‘{system(“azure site stop “$2)}’
Using bash, you can take this further to script
complete workflow scripts that can perform many
complex operations in a consistent manner time
and time again.
REST
• Azure exposes a REST API for managing your Azure cloud services.
• Its REST, so it pretty much universally supported.
• Example: List Storage Accounts
• https://management.core.windows.net/<subscription-id>/services/storageservices
• Most service management operations are supported via the REST API.
•
•
•
•
Manage Accounts
Virtual Machines
Storage
And more: http://msdn.microsoft.com/en-us/library/windowsazure/ee460799.aspx
Windows Azure Management Libraries
•
•
•
•
•
•
A Natural .NET Framework that maps cleanly to the underlying REST API
Introduced late 2013
Supports the Portable Class Library (PCL).
Ships as a NuGet Package you install from VS
Supports Async/await tasks asynchronously
Easy to code with C#
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.Management.Compute;
using Microsoft.WindowsAzure.Management.Storage;
Use NuGet to add the .Net Packages
Execute complex operations
• Deploy cloud services from your .Net applications
• Eg: Create a VM
internal async Task CreateVM()
{ await _computeManagementClient.VirtualMachines.CreateAsync(
“MyAzureService",
“MyAzureDeployment",
new VirtualMachineCreateParameters
{ RoleName = “MyName",
RoleSize = VirtualMachineRoleSize.ExtraSmall
},
new System.Threading.CancellationToken());
}
Powershell
• Powershell is a powerful scripting language introduced by Microsoft to
address the needs of the system operations professional.
• CMD Line was not a rich enough language to support all the needs of administrators.
• Powershell is a full blown scripting language that can load “SnapIns” to manage every aspect of a
Windows Server.
• Initially targeted at system administrators and encompasses Windows
Server, Windows Azure, SQL, HPC, and all other configuration needs.
• IMO - Powershell has the most in-depth support for Windows system
configuration of all of the available choices.
• If you’re new to PowerShell, use Powershell ISE
Integrated management commands
• New-AzureQuickVM -Windows -ServiceName "<azureservice>" -Name "<vmname>"
-ImageName "b83b3509582419d99629ce476bcb5c8__Microsoft-SQL-Server-2012E" –Password <password> -Location "North Europe"
–InstanceSize “ExtraLarge”
• Entire PowerShell programs can be written to automate every aspect of your Azure
account.
http://www.windowsazure.com/en-us/downloads/
Azure download page
has all the links
Final points / questions
• Microsoft has accelerated the pace of innovation within Azure
• Most of the DevOps options I discussed today were not available a year
ago.
• Websites to follow for newest Azure technology:
• http://www.bradygaster.com/
• http://weblogs.asp.net/scottgu/