Perhaps it is VMware's Workstation (Workstation) products that enable virtualization technology onto the road of rapid fame. The product allows individual users to run multiple operating systems, operating system version or instance (similar to the multiple application windows), not only the operating system each time you run a multi-boot environment. But in many companies, virtualization technologies are emerging that: First of all, developers use this technology to quietly testing and development, and then introduced to the IT virtualization tools charge.
Although virtualization is now in the promotion of many production environments, such as server and desktop infrastructure, and to act as a resource to provide tools, virtualization has also been more and more software developers are using. First, they use virtualization tools to provide for the development and testing to facilitate a series of target environment (such as different operating systems, operating system version and browser), and easy to quickly and easily offer / re-provided configuration instance.
Here are today some of the developers on how to use virtualization, why the use of virtualization, as well as their current virtualization what kinds of problems exist.
Variety of test environment
Senior Software Architect Mark Friedman played for a division of Microsoft, more than 3,000 employees in the sector in the development of Visual Studio and. NET Framework. Friedman himself develops with Microsoft Visual Studio Team System development tools to deliver the performance of this tool. Friedman, or Computer Measurement Organization (Computer Measurement Group) director, said: "About two-thirds of my department who engaged in the development and testing work - most of these developers and testers using system virtualization (through Microsoft Hyper-V technology), as one of their major productivity tool. "
Virtualization technology is a major advantage, its ability to separate the unstable environment, which no developer would like the early stages of application design capabilities are available. Friedman said that with the continuous development of Microsoft's tools, test developers may make an earlier version of the entire computing environment of instability.
He said: "This is not unchanging nature. But the most simple desktop application procedures, almost any application would crash the system. I tell my developers, if they do not often cause system crashes, suggesting that their attempt to also not positive enough. we like virtualization, because it saves time, so that our developers can spend more time on challenging work, rather than those used in preparing the test environment is extremely monotonous and time-consuming aspects of . "
And other virtualization tools, Microsoft's Hyper-V allows users on the system "shoot snapshots," reserves "Recently a known good version." Friedman said: "We created the rollback mechanism (rollback), so we can within a few minutes before the system back to the good condition. Another way is to, have to re-create the system image or re-build environment, But this requires several hours. The virtualization technology saves time. "
Friedman's group is also quality assurance (QA) testing which take full advantage of virtualization and virtual machine images. He said: "Once the developer unit testing, we will talk about testing matrix - such as what version of the operating system run the test matrix. Then, we need for 32-bit version or 64-bit version for testing. To use the virtual machine is to maintain a test environment mirroring the fastest, most economical and most flexible way. in our quality assurance laboratory, we have been doing; us a lot of automated testing, to put these images as virtual machine to save, and use test kit to test them. This approach is practical; we save a lot of time, and more incredibly. "
Shoot snapshots, and then return to work within a few minutes mirroring feature is particularly important not to wait for hours for the reconstruction of the system. Friedman said: "When you find software errors, the software only to reproduce the error, and often have to spend a couple of days time to establish the environment, so you once again take the time to rebuild the system - that a waste of time; which led to reducing efficiency. "
Suppose that a software error caused a system crash, the developers have to go back and find the crash of that place. Friedman said: "People are often the first breakpoint set too far away from the process, then the system crashes again. Because the developers in one day can easily cause the system to crash several times, while the developer is very clear when the problem can be quickly restored, and then re-run the debugging process, which go a long way. If you are debugging a complex software errors, to maintain in this state could not be better. "
Developers said that virtualization is very helpful iterative testing. Adam MoskowITz is a series of energy-efficient production and sale of computer SiCortex senior software engineer, he said: "We have many test systems for our developers - each test system requires its own x86 control system. We use virtualization technology to create a virtual machine, then the virtual machine 'to connect to the' external cluster board, rather than the acquisition of a number of PC, even the cheapest PC. "
SiCortex development departments use the free version of VMware Server, running on a more powerful rack server (with dual-core or quad-core x86 processor, 4GB memory and 300GB hard drive), these servers can run four to eight as a virtual control system machine. MoskowITz said: "Because of the load control system is very small, this approach is very effective, relatively low capital expenditure. We have about 25 engineers, more than half of people are using these virtual systems."
MoskowITz said control system a major advantage of virtualization is easy to test. He said: "If you want an experimental system? You just clone a standard virtual machine, you can use. Virtual chemical has a value of another reason is easy to configure; developers only use the latest software to build a virtual machine - as long as the building time; after how many virtual machines you want, you can clone number. "
Mike Brescia in a real-time environmental data recording and recovery of companies working; he said: "In addition to the system as a virtual device Lai provide 外, our company's developers also Shiyong Jishu virtualization technology, the hardware devices in relatively Shao Shang Dajianbutong the test environment, such as Windows and Linux environment. "Brescia said that cloning a clean copy of the computer system used to test than the disk image, using the cloning tool Clonezilla much simpler. He added: "Run a virtual machine do not need to tear down, remove the entire system; we only need to be careful not to load too much on the host machine resources."
Design and marketing firm Eli Kirk Senior Web Developer Connor BOyack said the company's 15 Web developers must take into account a number of Web browsers and operating systems needs. Boyack in Mac OS X Leopard operating system, version 4, use Parallels and run their own installed Windows XP, OpenSUSE 11, and Windows 7 beta operating system such as the virtual machine. Boyack said: "Create a useful, and look the same site requires a lot of browser testing; As a result, virtualization technology is essential. Virtualization technology so that I can use multiple operating systems and multiple browsers, so that they seamless cooperation (on the assumption that Windows XP should run smoothly). "
SmartLogic Solutions Inc. developers Nick Gauthier has also considered the ability to simultaneously test many different scenarios, to ensure a consistent user experience, this is a big advantage. "Another advantage is that if users have complained about, can activate a specific version and browser. We no longer need to say 'Oh, I do not run the browser, I use the Linux operating system;' Now we can say 'wait a moment; I found the problem, and I'll solve'. "
Eric Floer is to develop and sell remote backup device startups 3X Systems's chief technology officer, said: "We use virtualization software test platform, and we support the application (to ensure quality); If the customer problems need support can also be used to reproduce customer environments. virtualization so that we can quickly build and tear down the environment, and as long as the physical hardware using very few can do it. "on a small scale start-up companies, this species can be tested using very little capital expenditure capacity of many platforms and the environment is very important. In addition, "Virtualization technology has greatly improved our product quality and reliability," Floehr added.
Aamoggemon software company dedicated to developing programs for handheld computers, originally developed for the Palm OS program, and now also SymBIan OS Series 60 and PocketPC development process. Developer Tam Hanna said: "Now I have many reasons to use virtualization; mainly based on Cygwin / Elipse development system is very popular (for J2ME the Eclipse, Palm's PODS and Nokia's Carbide). All of these development system installed In one machine will lead to problems they have. So, I need to use virtualization technology to be able to complete my work. Also, I want to use virtual machines, ensuring that all machines have the same configuration settings. "
MarkMail is a public mailing list archive search for free services. MarkMail developer John D. MITchell (whose official title is "fanatical scientist") claimed: "Our team in many aspects of using virtualization technology. The key is that the system in each virtual service gave us a great deal of flexibility. in the development, we do not have much of physical resources required, so we have a small number of hardware nodes will be able to run many virtual instances, including the database. "
MarkMail using a OpenVz, as the developer sandbox in the mirror and the deployment environment the same. MITchell said: "With virtualization technology, test different versions such as the environment and is very easy; we can always tear down an instance, then a clean re-create an instance of the checkpoint." According to Mitchell claimed that the use of virtualization technology can reduce the to purchase, lease and manage the hardware quantity. "Overall, we use the virtual instance and the hardware node ratio is about 3:1."
The limitations of virtualization
Developers recognized that many aspects of the development process is incapable of virtualization technology.
3X's Floehr stressed: "Virtualization is an aspect of powerlessness in our products (web-based backup devices) for stress testing (stress testing). Although we can also test in a virtual environment of 10 clients, but that is not the real stress test, because the 10 client to use only 4 physical CPU and two network cards to test; if the actual physical environment of 10 clients, these constraints would not exist. "
MarkMail's MITchell added: "Virtualization does add some complexity. It will always add some delay. But the worse, if the change in the underlying execution environment - such as from the development environment to test environment to production environment Virtual machines can not rely on a clear understanding of performance characteristics. "
Finally, Mirtchell stressed that "the current generation of desktop virtualization products are still too many headaches, defects and missing features," at least for software developers in the development ran into this situation.
Microsoft's Mark Friedman said: "If the load test, or of the expansion, you have to run on the original hardware and the physical machine. Unless you are prepared to deploy a virtual machine, otherwise the performance is completely different characteristics. Performance measurement is also the case this. "Friedman emphasized, but over time, this issue is expected to be resolved.
Friedman said another, virtualization industry virtualization method used in Semi-changed some of the underlying operating system, in particular the operating system driver. "So, if you rely on a specific driver or the hardware environment, that would be affected. For example, a virtual network card, there is a specific driver. The driver 'can identify virtualization technology'. You have to understand If you need a local driver for the test, the virtual machine could not see the driver. So, this affects the staff involved in driver development, but has no effect on Web developers. "
Friedman also noted: "If you have a multi-application requires several machines, integrated into these machines share hardware means 'You can be the functional test, rather than the performance test.'"
Despite such problems, the virtualization technology developer has brought tangible benefits. Microsoft's Friedman said: "Once our developers learn to use virtualization technology, the technology can improve their work efficiency. Virtualization technology to enable them to spend more time in coding, testing and debugging. It removes the used in the preparation of the environmental aspects of building and a lot of time and delay, we do not want most of the time they spent on this area. "