dev and test environments with vsts and microsoft azure - mihai tataran
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
@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: 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 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
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
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
Agenda
Dev/Test challenges
How Azure can help
Continuous Delivery on Azure with VSTS (former VSO)
Infrastructure as Code (IaC)
Azure Dev Test Labs