Virtual Environments

Download Report

Transcript Virtual Environments

Virtual Environments for Software Development

Architecture, Application and Hardware Considerations

Virtual Environments For Software Development Architecture, Application and Hardware Considerations •

Presented by Schley Andrew Kutz

Lead Application Architect

The McCombs School of Business at the University of Texas at Austin

[email protected]

http://akutz.wordpress.com/

Abstract

This session provides practical advice on development issues that are relevant to any IT professional in charge of or involved with application deployment and management in virtualized environments and handling topics such as hardware and vendor selection and the rapid deployment of build agents.

Check And Mate •

Software development is a lot like a chess match

The environment is constrained; the number of possible situations, seemingly endless

All possible situations must be accounted for ahead of time

Unexpected scenarios must be handled gracefully

How Virtualization Can Help •

Virtualization may ease the software development process by assisting with…

• • • • •

Application development cycle Application lifecycle management Continuous integration (hub/spoke model) Secure networking Test lab

Agenda •

Application development cycle

Application lifecycle management

Continuous integration

Secure networking

Test lab

Vendor selection suggestions

Application Development Cycle •

The application development cycle (ADC) process handles…

• • • •

Turning ideas into code Testing code Putting code into production Processing bug reports

Application Development Cycle (Continued) •

An iterative ADC gaining popularity is the Scrum methodology

Application Development Cycle (Continued) •

In Scrum, the Sprint is where the development team implements new ideas or bug fixes

The sprint typically lasts only a couple of weeks

Entire development environments must be created and torn down to cope with the requirements for each sprint

Application Development Cycle (Continued) •

The need to quickly provision development environments (DevEnvs) can be satisfied by virtual machine (VM) templates

In addition, DevEnvs can be taken offline when not needed, freeing up resources and decreasing any security risk they might pose

Application Lifecycle Management •

Application lifecycle management (ALM) is perhaps the most important component of software development and a service oriented architecture (SOA)

Application Lifecycle Management (Continued) • • • •

ALM in the context of software development and a SOA encompasses the ADC as well as facilitating multi-tier synchronization.

Development (Dev) -- Active development Qualification (Qual) -- Quality control Production (Prod) -- Production environment

These tiers are an integral part of ALM

Application Lifecycle Management (Continued) •

Each ALM tier should be built identically, and this can require several servers to accomplish.

Two servers, for the application and data tiers, for each development environment equals at least six servers.

Virtualization provides a cost-effective platform on which to host these servers.

Continuous Integration •

Continuous integration (CI) is the process by which code is built, tested, and any number of other automated tasks (example: Document generation).

Popular CI platforms, such as Microsoft Team Foundation Server 2008 and JetBrains TeamCity 4.0 operate in a hub/spoke model.

Continuous Integration (Continued) Build Agent (.NET) Build Agent (Proj2) Build Agent (Java) Controller Build Agent (Proj1) •

The hub is the controller -- it schedules builds and provides a user interface

The spokes are build agents -- servers configured specifically for languages, project requirements or other reasons (examples: Security concerns, departmental ownership)

Continuous Integration (Continued) •

Server virtualization platforms such as ESX and Hyper-V can host as many build agents as necessary.

The ability to easily host build agents facilitates a cleaner CI architecture by enabling silos; the separation of build agents for any number of reasons.

Secure Networking •

One aspect of software development not discussed with enough frequency is secure networks.

Active development environments should not be trusted. Even the qualification environment should be considered to be a medium-risk target.

Secure Networking (Continued) •

Server virtualization platforms can facilitate the painless creation of segregated development networks.

To enable secured networking, a virtualization platform should have built-in network address translation (NAT, dynamic host control protocol (DHCP) and routing capabilities.

Test Lab •

Software developers often like to test out new technologies; technologies which may have not yet endured rigorous security tests

A physical, dedicated, network secure, test lab is an expensive proposition

A virtual, network secure, test lab, however, is extremely achievable

The Requirements •

Based on software development practices, a virtualization platform must support

• • •

A VM templating solution NAT, DHCP and routing VM snapshots

Virtualization Software • • • • •

There are several virtualization software packages that may satisfy the aforementioned requirements: VMware Server 2 VMware VI (Free to Premium) Citrix XenServer (Free to Premium) Microsoft Hyper-V

Virtualization Software (Continued)

Software Family Software Package VMware Server 2 VMware VI Free Foundation Standard Enterprise VM Snapshots VM Templates NAT, Routing Yes/No Yes/No Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No

Virtualization Software (Continued)

Software Family Citrix XenServer Software Package Express Standard Enterprise Platinum Microsoft Hyper-V VM Snapshots VM Templates NAT, Routing Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No

Hardware Selection •

Virtual developments do not have the same uptime or load requirements as production environments

Take advantage of more cost-effective hardware solutions

• •

iSCSI or NAS Lower-cost servers

Hardware Selection (Continued) •

Servers

A server for a virtual development environment will range from $5,000-$10,000

Dell

PowerEdge R805 -- AMD Quad-Core

• •

PowerEdge 2950III -- Intel Xeon Quad-Core Dell and VMware - http://tinyurl.com/52wx9l

• •

Dell and Citrix - http://tinyurl.com/4hvyzu Dell and Hyper-V - http://tinyurl.com/4rt9wx

Hardware Selection (Continued) •

HP

• • • •

ProLiant DL Series HP and VMware - http://tinyurl.com/36mtg6 HP and Citrix - http://tinyurl.com/4n76p4 HP and Hyper-V - http://tinyurl.com/55xhnz

IBM

• •

System X Series IBM and VMware - http://tinyurl.com/3gn2z7

Hardware Selection (Continued) •

Storage

Sun StorageTek NAS Appliances - http://tinyurl.com/3ejtfl

EMC CLARiiON AX4 - http://tinyurl.com/3fe85o

• •

NetApp S-Family - http://tinyurl.com/4ur28u Dell EqualLogic iSCSI Arrays -- PS5000E Series http://tinyurl.com/4tz44a

Recommendations •

If you are comfortable with manual templating, VMware Server 2 may be the best virtualization solution for development shops

Server hardware vendor selection is becoming agnostic, however VMware is aligning itself with Intel (VMworld 2008)

Take advantage of iSCSI

Questions?

[email protected]