From Virtual Learning Environments to Pervasive Learning Environments
Virtual Environments for Software Development
description
Transcript of Virtual Environments for Software Development
![Page 1: Virtual Environments for Software Development](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/1.jpg)
Virtual Environments for Software Development
Architecture, Application and Hardware Architecture, Application and Hardware ConsiderationsConsiderations
![Page 2: Virtual Environments for Software Development](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/2.jpg)
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
• http://akutz.wordpress.com/
![Page 3: Virtual Environments for Software Development](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/3.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/4.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/5.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/6.jpg)
Agenda
• Application development cycle
• Application lifecycle management
• Continuous integration
• Secure networking
• Test lab
• Vendor selection suggestions
![Page 7: Virtual Environments for Software Development](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/7.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/8.jpg)
Application Development Cycle (Continued)
• An iterative ADC gaining popularity is the
Scrum methodology
![Page 9: Virtual Environments for Software Development](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/9.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/10.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/11.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/12.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/13.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/14.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/15.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/16.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/17.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/18.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/19.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/20.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/21.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/22.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/23.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/24.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/25.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/26.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/27.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020317/56813c6c550346895da5fc8c/html5/thumbnails/28.jpg)
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