Virtual Environments

advertisement
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
• sakutz@gmail.com
• 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
(Java)
Controller
Build
Agent
(Proj2)
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
VM
Snapshots
VM
Templates
NAT,
Routing
Yes/No
Yes/No
Yes
Free
Yes
Yes
No
Foundation
Yes
Yes
No
Standard
Yes
Yes
No
Enterprise
Yes
Yes
No
VMware VI
Virtualization Software (Continued)
Software
Family
Software
Package
VM
Snapshots
VM
Templates
NAT,
Routing
Citrix
XenServer
Microsoft
Hyper-V
Express
Yes
Yes
No
Standard
Yes
Yes
No
Enterprise
Yes
Yes
No
Platinum
Yes
Yes
No
Yes
Yes
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?
sakutz@gmail.com
Download