agile development and test environments

24
Agile Development and Test Environments August 30, 2006

Upload: cameroon45

Post on 08-Jun-2015

752 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Agile Development and Test Environments

Agile Development and Test Environments

August 30, 2006

Page 2: Agile Development and Test Environments

Today’s Topics

• Goals of the Test Environment

• Reality Check

• Technologies Available

• Applying These technologies to Testing Environments

Page 3: Agile Development and Test Environments

The Goals of the Test Environment

• We test to ensure ourselves that it will work as desired in production

• Testing infrastructure needs to provide a mirror of the production infrastructure

• Testing infrastructure also needs to facilitate our testing methods– Regression Testing, Performance Testing– Stress Testing, Unit Testing, Compatibility Testing– Load Testing, Developer’s testing

Page 4: Agile Development and Test Environments

The Real World

• It can be very costly to mirror production environments

• It can be very time consuming to prepare test environments

• Controlling and refreshing “Test” environments is difficult

• The Devil is often in all of the details

Page 5: Agile Development and Test Environments

Infrastructure Technologies That Can Help

• Computer Virtualization– Server / Workstation

• Storage Virtualization– Software or Hardware based

• Pointer based

• Detailed Documentation – Configuration Management

Page 6: Agile Development and Test Environments

Computer Virtualization – Server/ Workstation

• Virtualization is a software layer that decouples the physical hardware from the operating system

• Virtual machines are encapsulated into files

• Virtualization was first introduced in the 1960s

Page 7: Agile Development and Test Environments

Computer Virtualization

Page 8: Agile Development and Test Environments

Computer Virtualization – Advantages

• Partitioning– Multiple application and operating systems

can reside on one machine

• Isolation– Complete isolation from the host computer

• Encapsulation– The virtual machine is a file in the file

system

Page 9: Agile Development and Test Environments

Storage Virtualization

• Pointer Based technologies– Present a view of the production database

– They just keep track of writes

– Can be done with either hardware or software

Page 10: Agile Development and Test Environments

Storage Virtualization

Persistent pointer map

Track C

Production view

Track B

Track A

Production volume

Production volume

Save Area Test view

Application I/O

Access to snapshot

Only the writes to the database are saved

Page 11: Agile Development and Test Environments

Storage Virtualization – Advantages

• Save on disk space

• Quick refresh

• Ease of use

Page 12: Agile Development and Test Environments

Detailed Configuration Documentation Software

• Creates a blueprint of the configuration of hardware, operating systems and applications

• Creates a “fingerprint” or hash of each entity

• Change Isolation drill down– Allows for a detail compare between collection

points– Isolates any differences

• Entity• Or inside of the Entity

Page 13: Agile Development and Test Environments

Detailed Configuration

Page 14: Agile Development and Test Environments

Detailed Configuration

Page 15: Agile Development and Test Environments

Applying These Technologies to Our Test Environments

• Compatibility testing– Develop a library of different virtual

machines, control sets– Use your software control library to check in

and check out the virtual machines– Run the testing against the Virtual database– All of this could be done on one machine– If you run into real world compatibility

issues compare your control machines to it

Page 16: Agile Development and Test Environments

Applying These Technologies to Our Test Environments

• Developer’s testing– Use a virtual machine to continuously compile your code

– Use a message agent like “cruise control” to notify you of problems

Page 17: Agile Development and Test Environments

Applying These Technologies to Our Test Environments

• Performance testing– Correlate the virtual environment’s

performance to production environment’s performance

– Run your testing using virtual machines as drones

– Translate your results to production

Page 18: Agile Development and Test Environments

Applying These Technologies to Our Test Environments

• Stress testing– Change the configuration of the virtual machine’s resources

Page 19: Agile Development and Test Environments

Supporting Production - Bugs in the Real World

• It happens what should work is not working

• You can not duplicate the bug internally, it has to be the local environment

• Suggestions– Use your detailed documentation tool and gather the

details about the local environment

– Isolate the differences by comparing the local environment to your controlled environment

– For future testing, convert the the local environment into your controlled virtual environment

Page 20: Agile Development and Test Environments

Systems Compare – High Level

Page 21: Agile Development and Test Environments

Systems Compare – File Level

Page 22: Agile Development and Test Environments

Systems Compare – Detail Level

Page 23: Agile Development and Test Environments

Fun Facts

• 90 % of the top 100 software companies use Virtual Machines for testing

• Reduction in deployment time to days VS weeks

• Increased test environments CPU utilization from 6-8% to 50-70%

• Capital expenditures for test environments can be reduced by 80%

• Space, cooling and power demands are also reduced

Page 24: Agile Development and Test Environments

Contact Information

Nick CellentaniCranel, [email protected] work

Bill WarrenAdexis [email protected]