Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Best Practices For Using Virtualization In Development Environments


Published on

.net User Group presentation from Liz Hatch & Chris McNulty on best practices for using virtualization in development environments

Published in: Technology, Business
  • Be the first to comment

Best Practices For Using Virtualization In Development Environments

  1. 1. Best Practices for Using Virtualization in Development Environments<br />Liz Hatch and Chris McNulty<br />
  2. 2. Our Focus<br />We are presenting:<br />Practical use and issues<br />Business experiences <br />Development scenarios<br />Sample configurations<br />Available resources<br /> <br />We’re not presenting:<br />In-depth vendor comparisons<br />Production environment virtualization<br />Future roadmap<br />Licensing<br />2<br />
  3. 3. What’s happening in your development environment now?<br /><ul><li>Is virtualizing the development environment old news to you?</li></ul>How many currently working in virtualized environment?<br />Server-centric or decentralized on clients?<br />Are you using it for:<br />Software Development (Test scenarios) <br />Quality Assurance <br />Software support where it’s important to be able to quickly and easily reproduce a relatively large number of environments. <br />Demo centers / demo scenarios<br />3<br />
  4. 4. Development Scenarios<br /><ul><li>Best case scenario</li></ul>Flexible development and testing configurations<br />Development staffs can create and test a wide variety of scenarios in a safe, self-contained environment that accurately approximates the operation of physical servers and clients. <br />Development team can test the latest version of an application on multiple platforms with a variety of virtual hardware capabilities<br />Customer data is data protected<br />Explicit separation of development and production environments<br /><ul><li>Current scenario on developer machines</li></ul>Multiple versions of development tools<br />Multiple versions of enterprise applications such as SQL Server<br />Customer data on developer machines<br />Intermingling of development and production environments<br />4<br />
  5. 5. What Is Virtualization?<br />“…A technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users interact with those resources.<br />This includes making a single physical resource (such as a server, an operating system, an application, or storage device) appear to function as multiple logical resources; or it can include making multiple physical resources (such as storage devices or servers) appear as a single logical resource.&quot; ( <br />Types of virtualization<br />Platform (often called “Server”)<br />Resource<br />5<br />
  6. 6. History of Virtualization<br />The first hypervisor providing full virtualization was IBM&apos;s CP-40, a one-off research system that began production use in January 1967, and which became the first version of IBM&apos;s CP/CMS operating system. With CP-40, the hardware&apos;s supervisor state was virtualized as well, allowing multiple operating systems to run simultaneously.<br />CP/CMS was part of IBM&apos;s attempt to build robust time-sharing systems for its mainframe computers. By running multiple operating systems simultaneously, the hypervisor increased system robustness and stability.<br />IBM&apos;s System/370 series was announced in 1970 without any virtualization features, but these were added to the series in 1972, and have appeared in all successor systems.<br />The major UNIX vendors, including Sun Microsystems, HP, IBM, and SGI, have been selling virtualized hardware since before 2000.<br />Multiple host operating systems have been modified to run as guest OSes on Sun&apos;s Logical Domains Hypervisor. As of late 2006, Solaris, Linux (Ubuntu and Gentoo), and FreeBSD have been ported to run on top of Hypervisor (and can all run simultaneously on the same processor, as fully-virtualized independent guest OSes).<br />One of the early PC hypervisors was the commercial VMware, introduced in 1998. Parallels, Inc. introduced Parallels Workstation, which is primarily used on PCs, in 2005 and Parallels Desktop for Mac, which runs on Mac OS X, in 2006.<br />In June 2008, Microsoft delivered a new Type 1 hypervisor called Hyper-V (codenamed &quot;Viridian&quot; and previously referred to as Windows Server virtualization); the design features OS integration at the lowest level.[3] New versions of the Windows operating system beginning with Windows Vista include extensions to boost performance when running on top of the Viridian hypervisor.<br />6<br />
  7. 7. Virtualization Approaches<br />A hosted approach provides partitioning services on top of a standard operating system and supports the broadest range of hardware configurations. <br />Installs and runs as an application<br />Relies on host OS for device support and physical resource management<br />A hypervisor architecture is the first layer of software installed on a clean x86-based system. Since it has direct access to the hardware resources, a hypervisor is more efficient than hosted architectures, enabling greater scalability, robustness and performance.<br />Lean virtualization-centric kernel<br />Service Console for agents and helper applications<br />Para-virtualization<br />An enhancement where a guest operating system or application is ‘aware’ that it is running within a virtualized environment, and has been modified to exploit this. <br />7<br />
  8. 8. Benefits<br />Managing data centers / server rooms<br />Space<br />Savings in hardware and energy costs<br />Security and Continuity<br />Backups of entire image<br />Quick re-deployment <br />Easier to limit access to resources outside scope of project<br />Managing hardware resources more efficient<br />Quick movement of virtual clients and servers among physical hosts<br />Faster deployment<br />More flexible infrastructure<br />8<br />
  9. 9. Cons / Risks<br />Internal resistance of staff<br />Time to reorganize and consolidate developments clients and servers<br />Mistaken deletion of VPCs images in development environment as well as libraries and archives<br />Performance: bottle-necks, resource allocation, memory, disk I/O, network<br />Support: increased impact of server failures, maintenance affects all virtualized systems at same time<br />New skill set needed to deploy, maintain and support<br />9<br />
  10. 10. KMA Case Study<br />
  11. 11. Our Company<br />Microsoft Gold Partner founded in 1995<br />Clients range from local mid-market firms to New England Fortune 1000 companies<br />Our business<br />Product – Mekko Graphics<br />PowerPoint plug-in for financial charting<br />Customization of product<br />Consulting<br />SharePoint<br />.NET Custom development<br />Systems integration<br />11<br />
  12. 12. Virtualization of Development at KMA<br />Led by infrastructure team<br />Driven by interest of staff<br />Team came up with solution<br />Architecture / Hardware / Solution<br />Continued commitment: reason, focus, risks, scope<br />Supported by ownership and management<br />Incremental growth acknowledged<br />12<br />
  13. 13. Deployment at KMA in 2006<br />13<br />
  14. 14. Deployment at KMA in 2009<br />14<br />
  15. 15. Architecture of Environment<br />Development Domain<br />Added development domain untrusted by production<br />One domain controller on physical box for development domain which includes development Exchange server<br />Multiple physical host servers <br />Virtual Server with 3<br />Virtual Server with 5<br />Virtual Server with 3, Hyper-V with 3<br />Two NAS devices for storage of archived staff and project VPCs with RAID 5<br />SQL Server 2000, 2005, 2008 on physical boxes – reused old boxes<br />Originally planned to swap host servers for re-use in organization but have realized not practical<br />Production Domain<br />Connect to machines using remote desktop with reference to machine name<br />All projects stored in production VSS which is backed up<br />All other project materials stored in production environment<br />15<br />
  16. 16. Results<br />Virtualized:<br />All development on the consulting side of<br />Builds for product side of business<br />No need for high-powered developer machines since development is on VPCs<br />All development servers in locked server room, need to have domain access to get to machines<br />Needed to have commitment by internal staff to support and business to invest – we had both<br />16<br />
  17. 17. Day-to-Day Usage and Issues<br />
  18. 18.  Day to Day Concerns<br />Typical problems and approaches:<br />Security<br />Compliance<br />Management<br />Reliability and stability are essential: for development, the “dev region” IS production<br />18<br />
  19. 19. Remember 2003?<br />19<br />
  20. 20. Remember 2003?<br />Big developer PCs<br />All server, development and client software consolidated<br />Incompatible configurations led to multiple PCs<br />Servers outside datacenter not maintained<br />Extra servers kept for legacy development/troubleshooting/version management<br />20<br />
  21. 21. The Developer Desktop(source:<br />21<br />
  22. 22. Design considerations<br />Project vs. staff VPCs<br />Multi-instance apps like MOSS can reduce number of servers<br />Client vs. server placement - consistency<br />All virtual machines joined to the development domain so share resources<br />What should be virtualized<br />Naming conventions<br />E.g. CFMMOSSDEV04-V<br />Indicate project/owner<br />Standard server naming (purpose, location, region)<br />Portability make virtual host references obsolete<br />May Distinguish V from P<br />Snapshots in Hyper-V, Undo disks in Virtual Server<br />Developers competing for resources – have to set standards<br />RAM consumption<br />Always on vs. on demand<br />Hypervisors vs. full OS – ease of administration<br />22<br />
  23. 23. Usage Considerations<br />Microsoft has made it easier to update product keys for Windows and other applications to ensure license compliance<br />Use for demos (VPN remote access preferred)<br />KMA “gold” images for development – we call our “base” images [preconfigured]<br />23<br />
  24. 24. Issues<br />How much memory required by host<br />Anti-virus licenses<br />TrendMicro & XML files: registry key<br />24<br />
  25. 25. Tips and Tricks <br />Host Server<br />Turn on hardware-assisted virtualization in BIOS<br />Virtual Servers<br />Turn on PING for ICMP on all virtual machines<br />Install Integration Services on each VPC<br />Migrations must remove old virtual server extensions from guest before installing Hyper-V support<br />25<br />
  26. 26. Enterprise application concerns<br />Exchange 2007<br />SQL Server 2008<br />Virtualizable with “best practices”<br />Hardware assisted virtualization<br />Spindle isolation<br />26<br />
  27. 27. Supported Guest OS’s with Windows Server 2008 R2 Hyper-V RC:<br />Windows Server 2000 Server and Advanced Server with SP4 (uniprocessor)<br />Windows XP SP3 32 bit (uniprocessor)<br />Windows Vista SP1 32 & 64 bit (uniprocessor) <br />Windows 7 client 32 & 64 bit (uniprocessor)<br />Windows 7 client 32 & 64 bit (multiprocessor, two virtual processors)<br />Windows Server 2003 SP2 32 & 64 bit (uniprocessor)<br />Windows Server 2003 SP2 32 & 64 bit (multiprocessor, two virtual processors)<br />Windows Server 2003 R2 SP2 32 & 64 bit (uniprocessor)<br />Windows Server 2003 R2 SP2 32 & 64 bit (multiprocessor, two virtual processors)<br />Windows Server 2008 32 & 64 bit (uniprocessor)<br />Windows Server 2008 32 & 64 bit (multiprocessor, four virtual processors)<br />Windows Server 2008 R2 32 & 64 bit (uniprocessor)<br />Windows Server 2008 R2 32 & 64 bit (multiprocessor, four virtual processors)<br />SUSE Linux Enterprise Server 10 (x86/x64) (uniprocessor, no integration components)<br />27<br />
  28. 28. Development Scenario Demos<br />
  29. 29. Virtual Network and Domain<br />Project<br />1 Server<br />Domain controller<br />Exchange server 2003<br />COM+ event sinks using exoledb<br />Windows service for remoting to singleton object for caching<br />2 Clients<br />Outlook 2003 and VS 2005<br />Outlook 2007<br />29<br />
  30. 30. Virtual Server with MOSS<br />Win 2003 x32 / x64 or Win 2008 x64<br />Joined to development domain and can be accessed from any other machines at KMA<br />SQL on same box or different box<br />VS 2005 or 2008<br />Integration with Development Domain<br />Group, user and service accounts configured in AD<br />Exchange server<br />30<br />
  31. 31. Microsoft Trial VHDs<br />Microsoft Office SharePoint Server 2007 VHD (10/17/2008)<br />Microsoft® Windows Server® 2003 R2 Enterprise Edition<br />Active Directory<br />Microsoft SQL Server 2005 Enterprise Edition with SP1<br />Microsoft Office Professional 2007<br />Microsoft Office SharePoint Designer 2007<br />Microsoft Windows SharePoint Services 3.0<br />Microsoft Office SharePoint Server 2007<br />Microsoft .NET Framework 2.0<br />Microsoft .NET Framework 3.0<br /> <br />Parameters<br />30-day expiration, downloaded size 4G, will require about 10G hard drive space and 1024MB memory, runs on Virtual Server 2005 R2 which is available as free download<br />Login Credentials:<br />Username:         Administrator<br />Password:           pass@word1<br />31<br />
  32. 32. Technical Information<br />
  33. 33. Virtual Disk Formats<br />Two predominant formats<br />Microsoft – VHD (also used by XenSource)<br />VMware – VMDK<br />New management utilities can work with both VMWare and Microsoft VPCs <br />33<br />
  34. 34. Hardware Concerns<br />Hardware concerns (CPU, RAM, hard drive specs, requirement supports hardware virtualization)<br />RAM<br />Lab server overhead = 6% to 20 %<br />Competing VPC use<br /> Hard Drive – Redundancy, Speed<br />Use RAID 1/0 <br />Avoid Raid 5 due to parity<br />SATA (Serial ATA)<br />CPU – At least dual<br />Preferably dual power (most likely to fail) and dual NICs<br />Do NOT use old hardware<br />34<br />
  35. 35. Vendors<br />EMC: ESX Server or VMWare server (hosted on Windows)<br />Microsoft: Hyper-V Server or hosted with Windows 2008 / Windows 7<br />Citrix’s XenServer, partnering with Microsoft on management solutions<br />35<br />
  36. 36. Virtualization Options with Microsoft<br />Servers<br />Hyper-V Server 2008<br />Windows Server 2008<br />Windows Server 2008 R2<br />Terminal Server<br />Windows 7<br />Virtual PC (RC)<br />Windows XP Mode (RC)<br />Windows Server 2008 and Windows 7<br />Native VHD Support – Virtual and Physical<br />36<br />
  37. 37. Native VHD Support<br />Servers and Clients<br />Windows Server 2008<br />Windows 7<br />Functionality<br />Create<br />Manage<br />Provides for development and testing on physical or virtual machine<br />Can be used to configure clients and servers with multiple boot options<br />37<br />
  38. 38. Microsoft Hyper-V Options<br />38<br />
  39. 39. Microsoft System Center Virtual Machine Manager 2008 R2<br />39<br />Screenshots from eWeek<br />
  40. 40. Remote Server Hyper-V Administration Tool<br />Runs on:<br />Windows 2008<br />Windows 7<br />40<br />
  41. 41. Windows 7<br />Utilities include:<br />Remote Hyper-V Administration Tool<br />Virtual PC (RC)<br />VHD Management using DISKPART and Disk Management Utility<br />41<br />
  42. 42. Resources <br />Microsoft Virtualization – Training Portal -<br />Virtualization &quot;How Do I?&quot; Videos -<br />Virtualization Resources – White papers, solution accelerators, learning<br /><br />Virtualization Licensing for OS and enterprise apps<br /><br />Microsoft Trial VHDs<br /><br />42<br />
  43. 43. Thank you!<br />