Upload
davide-benvegnu
View
309
Download
1
Embed Size (px)
Citation preview
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 – [email protected]
@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