dev/test scenarios in devops world

Post on 08-Jan-2017

309 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Davide BenvegnùMicrosoft MVP Visual Studio ALM

Dev/Test Scenarios in the DevOps World

Organised by:

Davide Benvegnù• Director & CTO – DBTek Ltd• Former International Development Manager – Aruba.it

• Microsoft MVP in Visual Studio ALM• Speaker - Trainer • Community Contributor ( 2 in Italy, 1 in HK soon)

• 13+ years experience in IT, 10+ years experience in ALM / DevOps

@davidebenvegnu – www.dbtek.com.hk – davide@dbtek.com.hk

@bout Me

• DevOps, Agile and so• About Dev/Test• Unit test, Functional test and

Load Test• Continuous deployment• Demo

Agenda

DevOps, Agile and so…

DevOps: the three stage conversation

3 Tools2 Processes1 People

DevOps Framework

Client Workstations

EnvironmentsDev/Test

Integration

Pre-Production

Production

Processes

Source and Version control Build

Test

Deploy Monitor and Learn

DEV

BIZ

OPS

Waterfall vs AgileRequirements

PM

DevelopmentDev

Testing QA

Operations

Ops

Dev

Test

Ops

PM

Not 100% Agile?• Try to build a DevOps culture• Set your goals– Improved deployment frequency– Faster time-to-market– Lower failure rate

• Transform simple processes to make them increasingly programmable and dynamic

• Go Agile!

About Dev/Test

Dev/Test Benefits

Increase agility Improve quality Integrated and familiar

Take advantage of the cloud as well as your existing on-prem systems and practices.

Deliver higher quality releases by testing your applications in a “production-like” environment to understand how they will handle real world usage scenarios.

Provision the exact compute, storage, and network resources that you need to develop and test your applications, on your timeline and on your terms.

Dev/Test: Cloud Environments

Improve team agility and resource efficiency with the Cloud!

• Self-provisioning of the environments • Perform realistic scale testing in environments that mirror production.• Developers perform unit and integration testing in isolated individual

environments.• Production issues or incompatible code are discovered earlier.• Connect cloud and on-premises resources for hybrid applications.

Virtual Machines

Web Apps

Cloud Services

Databases

Hybrid

A different mindset• Release smaller and faster• Embracing errors• Design for availability, reliability, scalability• Performance• Continuous test• Continuous requirements tuning

Unit test, Functional Test, Load test

What does failsafe mean for my applications?It depends… but some general practices apply.

• Avoid single point of failure• Failure mode analysis• Manage transient errors• Graceful degradation• Eliminate human factors (Automate!)

Unit test• First layer of test• Written by Developers• Executed directly against the codebase

• You need them!• The way you can be sure your changes don’t break

anything• Should be automatically executed with the build

Functional test• User acceptance test• Based on requirements• Can be manual or automatic• Pre-defined or created with Exploratory testing

• Should be executed• Should be automatically executed post deployment

Load test• Test you application performances • Thousands, millions of users• Learn how you it behaves under load

• Can be automatically executed after deployment• Cloud Load Testing: better!

– Dynamic test agents– No fixed costs– Scalable to (virtually) infinite– Test you application from different geographical places

Continuous Deployment

Manual Builds and Deploy

Client Workstations

Source Build

Test

Deploy Monitor and Learn

TFVC GITcspkg

Environments

OPS

DEV

OPS

cspkg

EnvironmentsDev/Test

Integration

Pre-Production

Production

Continuous Integration and Deployment

Client Workstations

Source Build

Test

Deploy Monitor and Learn

TFVC GITcspkg

OPS

DEV

cspkg

cspkg

cspkg

cspkg

• Structuring different environments (dev, qa, uat, prod)

• Using slots for deployment• Spin-up new environments on demand

• Deploy multi-tier applications and dependencies• Apply database changes

Real world deployments

Demo: Visual Studio Team Services

Complete suiteSource Control, Agile planning, Test management,Build, Release Management

Integrated EnvironmentLink code, work items, tests, build and releases

Enterprise readinessSecurity, SLA, ISO, pools and queue management

Why VSTS / TFS

Hosted build agents *No installation required

Multi-platformBuild natively on Windows, Mac, and LinuxBuild .Net, Java, Objective-C, Javascript..

Release ManagementDeploy to a multi-environment release pipelineUse existing release and approval flows

* Available only on VSTS

CI and CD in VSTS / TFS

Automatic test execution after build / deployment

Manual and automated Functional/UI TestingPlan, execute, trackUser acceptance testing based on the requirementsExploratory testing

Load TestingOn-premises agentsIn the cloud, from multiple regions*

* Available only on VSTS

Tests in VSTS / TFS

DEMO

Thanks!

Dev/Test scenarios in the DevOps world

Davide BenvegnùMicrosoft MVP Visual Studio ALM

top related