dev and test environments with vsts and microsoft azure - mihai tataran

29
@ITCAMPRO #ITCAMP16 Community Conference for IT Professionals Dev and Test Environments with Visual Studio Team Services and Microsoft Azure Mihai Tătăran General Manager @Avaelgo Microsoft Most Valuable Professional | Azure [email protected]

Upload: itcamp

Post on 16-Apr-2017

973 views

Category:

Technology


2 download

TRANSCRIPT

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Dev and Test Environments with Visual Studio

Team Services and Microsoft Azure

Mihai Tătăran

General Manager @Avaelgo

Microsoft Most Valuable Professional | Azure

[email protected]

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Many thanks to our sponsors & partners!

GOLD

SILVER

PARTNERS

PLATINUM

POWERED BY

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Mihai Tătăran

Microsoft Azure Most Valuable Profassional

General Manager @ AvaelgoTraining and consulting

Software development

Infrastructure

Microsoft Cloud SME of the Month in Europe

Case study about a solution on Azure - Microsoft .com website

Co-organizer: www.itcamp.ro

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Agenda

Dev/Test challenges

How Azure can help

Continuous Delivery on Azure with VSTS (former VSO)

Infrastructure as Code (IaC)

Azure Dev Test Labs

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

DEV/TEST CHALLENGES

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Dev/Test challenges: Disconnection Dev / Infrastructure

Major disconnection between Development and Infrastructure teams

Who is in charge of the temporary infrastructure?

Sounds familiar?Dev team asks for a few VMs for their Dev / Staging environment, for proper functional and

integration testing

Infrastructure team gets the ticket / request, sends it through the proper channels to relevant

person in charge

VMs are created and Dev team is notified

VMs are not exactly how the dev team has requested. Redo previous steps

Tests are done

Dev team forgets to notify infrastructure team to release the VMs

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Dev/Test challenges: cost

Having tens or hundreds of VMs in an on premises infrastructure is a

major cost issue

Especially if they are not needed all the time:

Day and night?

The whole development lifecycle? E.g.: is it good enough to have them every 2

weeks on Wednesday to Friday?

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Dev/Test challenges: skills

Development process

Developer tools: TFS, VSTS, Release Management, etc.

Infrastructure team process

Infrastructure tools: PowerShell, etc.

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Dev/Test challenges: business constraints

Software as a Service

Deliver faster / shorter time to market

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Dev/Test challenges: hard to configure

Staging infrastructure needs to be identical with the

Production infrastructure

How do you guarantee that, repeatedly, with minimum work?

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Dev & test today

Provision VMs

Use VMs

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

HOW AZURE CAN HELP

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Dev & test in the cloud

Manage environment

Use VMs

Provision VMs

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

How Azure can help

Self service: Dev team can create temporary environments

Infrastructure team can define / contribute to rules, workflows, etc.

Elasticity: shut down the VMs over nights, weekends; be able to scale

Fast: provisioning takes minutes to complete

Less waste using: quotas, access policies, automatic shutdowns

Create once, use as a template

Integrates with existing toolchain: Visual Studio, git, Puppet, Chef,

Eclipse

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Microsoft Continuous Integration tools

TFS

Team Foundation Server

THE CI / CD tool from MS

Our services are based on a real life experience and delivered as a practical step-by-step process.

AZURE INTEGRATION

TFS with Release Management

VSTS with Build, Release tabs

VSTS

Visual Studio Team Services, former

VSO

Lightweight, SaaS version of TFS

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Dev/Test simplified process

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

DEMO

Visual Studio Team Services

Azure Dev/Test (simple) environments and process

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

More realistic process

Source Code editing in Visual

Studio

Visual Studio Team Services BUILD

Visual Studio Team Services RELEASE

Environment Creation as

specified by ARM template

Email confirmation.

Testing can begin

Solution deploymentWith VMs

prerequisites

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Azure Resource Groups

Tightly coupled containers of multiple resources

of similar or different types

Which have common lifecycle and management

Every resource must exist in one and only one

resource group

Resource groups can span regions

Can be created using templates

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Configuring VMs with Desired State Configuration

configuration IISInstall{

node (“localhost”){

WindowsFeature IIS{

Ensure = “Present”Name = “Web-Server”

}}

}

$vm = Set-AzureVMDSCExtension -VM $vm -ConfigurationArchive “IISInstall.ps1.zip” -ConfigurationName “IISInstall”

New-AzureVM -VM $vm -Location “West US” -ServiceName “example-1-svc” -WaitForBoot

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Infrastructure as Code

Techniques and practices helping IT pros remove the burden

of the day to day build and management of infrastructure

Examples:Azure Resource Manager, JSON files for templating

Desired State Configuration (PowerShell DSC)

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Creating environments in Azure Azure Resource Group<Application>_<version>_DEV

Web Middleware Database

Azure Resource Group<Application>_<version>_QA

Web Middleware Database

Local network

Tester / QA Team

VPN

Release Manager

Visual Studio Team Services

ARM Template

DSC scripts for VMs prerequisites and solution

deployment

BUILD and RELEASE definitions

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Sample email confirmation

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

DEVTEST LABS

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

DevTest Labs (preview)

A service in Azure

Quickly create environments

Using templates (ARM)

Artifacts:

Agents, tools, programs (such as Visual Studio, Fiddler, etc.) you need on your VMs

Actions

Applications to test

Minimize waste using Caps. E.g.: number of VMs / user

Control costs with Policies. E.g.: shut down VMs on a schedule

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

DEMO

DevTest labs

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Agenda

Dev/Test challenges

How Azure can help

Continuous Delivery on Azure with VSTS (former VSO)

Infrastructure as Code (IaC)

Azure Dev Test Labs

@ITCAMPRO #ITCAMP16Community Conference for IT Professionals

Q & A