29
Virtual Environments for Software Development Architecture, Application and Hardware Architecture, Application and Hardware Considerations Considerations

Virtual Environments for Software Development

  • Upload
    sherri

  • View
    37

  • Download
    1

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Virtual Environments for Software Development

Virtual Environments for Software Development

Architecture, Application and Hardware Architecture, Application and Hardware ConsiderationsConsiderations

Page 2: Virtual Environments for Software Development

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/

Page 3: Virtual Environments for Software Development

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.

Page 4: Virtual Environments for Software Development

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

Page 5: Virtual Environments for Software Development

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

Page 6: Virtual Environments for Software Development

Agenda

• Application development cycle

• Application lifecycle management

• Continuous integration

• Secure networking

• Test lab

• Vendor selection suggestions

Page 7: Virtual Environments for Software Development

Application Development Cycle

• The application development cycle (ADC)

process handles…

• Turning ideas into code

• Testing code

• Putting code into production

• Processing bug reports

Page 8: Virtual Environments for Software Development

Application Development Cycle (Continued)

• An iterative ADC gaining popularity is the

Scrum methodology

Page 9: Virtual Environments for Software Development

• 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)

Page 10: Virtual Environments for Software Development

• 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 Development Cycle (Continued)

Page 11: Virtual Environments for Software Development

Application Lifecycle Management

• Application lifecycle

management (ALM) is

perhaps the most

important component

of software

development and a

service oriented

architecture (SOA)

Page 12: Virtual Environments for Software Development

• 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)

Page 13: Virtual Environments for Software Development

• 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.

Application Lifecycle Management (Continued)

Page 14: Virtual Environments for Software Development

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.

Page 15: Virtual Environments for Software Development

• 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)

ControllerBuild Agent(Java)

Build Agent(Proj1)

Build Agent(.NET)

Build Agent(Proj2)

Continuous Integration (Continued)

Page 16: Virtual Environments for Software Development

• 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.

Continuous Integration (Continued)

Page 17: Virtual Environments for Software Development

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.

Page 18: Virtual Environments for Software Development

• 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.

Secure Networking (Continued)

Page 19: Virtual Environments for Software Development

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

Page 20: Virtual Environments for Software Development

The Requirements

• Based on software development practices,

a virtualization platform must support

• A VM templating solution

• NAT, DHCP and routing

• VM snapshots

Page 21: Virtual Environments for Software Development

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

Page 22: Virtual Environments for Software Development

SoftwareFamily

SoftwarePackage

VM Snapshots

VM Templates

NAT, Routing

VMware Server 2

Yes/No Yes/No Yes

VMware VI

Free Yes Yes No

Foundation Yes Yes No

Standard Yes Yes No

Enterprise Yes Yes No

Virtualization Software (Continued)

Page 23: Virtual Environments for Software Development

SoftwareFamily

SoftwarePackage

VM Snapshots

VM Templates

NAT, Routing

Citrix XenServer

Express Yes Yes No

Standard Yes Yes No

Enterprise Yes Yes No

Platinum Yes Yes No

Microsoft Hyper-V

Yes Yes No

Virtualization Software (Continued)

Page 24: Virtual Environments for Software Development

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

Page 25: Virtual Environments for Software Development

• 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)

Page 26: Virtual Environments for Software Development

• 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)

Page 27: Virtual Environments for Software Development

• 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

Hardware Selection (Continued)

Page 28: Virtual Environments for Software Development

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

Page 29: Virtual Environments for Software Development

Questions?

[email protected]