Desktop virtualization powers offshore software development

Enterprise Management Quarterly, June 2009 By Charlie Morris, CTO, Princeton Financial Systems (http://www.emqus.com/index.php?/emq/article /desktop_virtualization_powers_offshore_software_development_679)

Given the increased use of offshore developers, IT managers must be cognizant of information security, especially when software is developed in nations with immature intellectual property law and remedies. Allowing offshore developers to house code locally introduces elements of risk to the software company. As an example, our shop uses over 100 offshore software developers split between India and China to augment our US-based development staff. It would be a tragedy if, through lax information security, we ended up competing with a pirated version of our own product in foreign markets.

To address this concern, we began using our in-house SaaS infrastructure to deploy Citrix-based workstations remotely to offshore developers. All the code remained safely within our datacenter, minimizing the risk of theft via the hacking of a physical machine. We soon realized that it is all too easy for a developer to bring down a shared Citrix server. 1U servers were then deployed as workstations and developers remotely access them. With the rapid growth of our offshore staff, we quickly realized that physical machines were too expensive and time consuming to deploy. We finally experimented with virtual desktops and decided to replace our physical developer workstations with virtual equivalents. This was not accomplished without experiencing bumps in the road.

Developers, more so than most users, require fast machines. Workstation performance in our early rollout was problematic until we learned how best to provision the host servers, how to balance virtual workstation density on each host, and how best to match virtual workstation resources with host resources. For example, we initially thought that two virtual processors per desktop would provide improved performance. Empirically, we found that a single virtual processor configuration best optimized desktop performance. Storage performance was a key factor in ensuring workstation speed. While DAS storage provided the best performance, the lack of shared storage sacrificed high availability features available through our hypervisor. We deployed SAN disk and got the benefits of speed and high availability but found that solution prohibitively expensive given growing developer demand for disk. We then deployed storage from our SATA disk array but found that programmers balked somewhat at the speed degradation. As of this writing we are considering an iSCSI SAN solution which better balances speed with cost.

The benefits of virtualizing workstations for offshore development are many. Information security is maintained because the code remains resident on shore. New workstations are quickly deployed in as little as 15 minutes. The high availability features of virtualization maximize workstation availability. We are now considering deploying the solution for onshore developers as well.