In: Computer Science
research using the Internet and/or the textbook and recommend the best approach for deploying applications in a virtual environment. Provide the rationale for your choice. Your APA-formatted proposal should be at least 2 pages in length, not including the title and reference page(s).
When you examine the question of whether it is better to distribute an application across multiple virtual machines or consolidate an application to a single virtual machine purely in this way, then it seems as though consolidation would be the best option for deploy. However, things are not quite as cut and dry as they might at first seem. Like so many other things in IT, application distribution or consolidation is all about trade-offs. There are so many advantages and disadvantages to each approach, and you must use the approach that makes the most sense for your own environment, right? Now our goal is to point out some of the issues that you must consider as you determine how an application should be deployed.
Like it or not, but you have to accept this, that cost is often one of the main factors in determining the outcome of IT related decisions. When it comes to the manner in which applications are deployed, there can be big differences in cost depending upon the type of deployment that you choose to perform. To show in detail, let’s go to an example of Exchange Server. Suppose that you separate out the various server roles, and you have a virtual machine that is acting as a client access server, another virtual machine that is acting as a hub transport server, and yet another virtual machine that is acting as a mailbox server. Assuming that all of these virtual machines are running on the same host, there is really no advantage from a hardware standpoint to keeping the server roles separate. If anything, Exchange Server is consuming slightly more hardware resources by operating in a distributed manner than it would if all of the roles were combined onto a single virtual machine. The reason for that is that each virtual machine has its own operating system, and there is a certain degree of resource consumption associated with the operating system.
The same concept holds true for pretty much any distributed enterprise class application, but Exchange Server makes it a particularly good example for us.
Reason why you might choose to consolidate a distributed application into a single virtual machine is because doing so makes it easier to the application. Unlike a physical environment, virtual environment tend to be anything that stationary. Whether you’re using Microsoft’s Hyper-V, KVM, XEN or something else, there is always the possibility that a virtual machine will live migrate to a different host server. Live migration isn’t a big deal in and of itself, but some organizations require a bit more control over the live migration process. For example, some organizations have a requirement for virtual machine affinity. In other words, all of the virtual machines that are associated with a particular application must always reside on the same host server.
Similarly, some applications are distributed as a way of providing fault tolerance. In a virtual environment, this often means building guest clusters. The effectiveness of a guest cluster can be completely undermined if all of the virtual machines that make up the guest cluster reside on a common host. Think about it for a moment. If that host were to fail, and something happens to keep the virtual machines from failing over to another host then the guest cluster would also fail. This completely mitigates all of the benefits of building the guest cluster in the first place.
In situations in which a distributed application is consolidated into a single virtual machine, the whole need for monitoring application affinity goes away. You don’t have to worry about making sure that virtual machines always remain on the same host together, or that they never reside on a common host. In this regard, application consolidation does simplify management.
Done!