History<br />The prototypical illustration of full virtualization is in the control program of IBM's CP/CMS operating system – first demonstrated with IBM's CP-40 research system in 1967, then distributed via open source in CP/CMS in 1967-1972, and re-implemented in IBM's VM family from 1972 to the present. Each CP/CMS user was provided a simulated, stand-alone computer. Each such virtual machine had the complete capabilities of the underlying machine, and (for its user) the virtual machine was indistinguishable from a private system. This simulation was comprehensive, and was based on the Principles of Operation manual for the hardware. It thus included such elements as instruction set, main memory, interrupts, exceptions, and device access. The result was a single machine that could be multiplexed among many users.<br />
What is Virtualization?<br />Virtual machine<br />Physical machine<br /><ul><li>A level of indirection between hardware and software
Virtual Machines: a full abstraction of a physical machine</li></li></ul><li>Isolation<br />Partitioning<br />Run multiple virtual machines simultaneously on a single PC<br />The virtual machine is isolated from Host OS, other VMs on the same PC <br />Run a virtual machine on any PC without modification. Break dependence between OS & HW<br />Encapsulation <br />HW Independence & Transparency<br />Entire virtual machine is saved in files. Can be moved and copied like any other file.<br />Key Properties of Virtualization<br />
Definitions<br /><ul><li>Server Virtualization is focused on partitioning a physical instance of an operating system into a virtual instance or virtual machine. There are two aspects of server virtualization:
Software Virtualization runs the virtualized operating system on top of a software virtualization platform running on an existing operating system.
Hardware Virtualization runs the virtualized operating system on top of a software platform running directly on top of the hardware without an existing operating system. The engine used to run hardware virtualization referred to as a hypervisor.
Desktop Virtualization allows you to rely on virtual machines to provision desktop systems. Desktop virtualization has several advantages, the least of which is the ability to centralize desktop deployments and reduce distributed management costs.</li></li></ul><li>Benefits – Server Virtualization<br /><ul><li>Ease of deployment – can be ready in 20 minutes
Mobility – can be moved from one host to another quickly
Easy to maintain – application developers do not need to bother about hardware details they just provide a file with required RAM</li></li></ul><li>Benefits – Desktop Virtualization<br /><ul><li>All desktops centrally hosted and users given remote desktop access
Easy management; patch application and virus protection
Offers very mature server and desktop products
Its hypervisor is called ESX</li></ul>Oracle (Oracle VM), Novell (Xen), Red Hat (Xen), IBM, Sun (xVM), Virtual Iron, and others also all offer their own hypervisors<br />
Software Appliances<br />A software appliance is a software application combined with just enough operating system (JeOS) for it to run optimally on industry standard hardware (typically a server) or in a virtual machine.<br />JeOS is the abbreviation (pronounced "juice") for the concept of Just Enough Operating System as it applies to a software appliance.<br />JeOS is not a generic, one-size-fits-all operating system. Rather, it refers to a customized operating system that precisely fits the needs of a particular application. The application's OS requirements can be determined manually, or with an analytical tool.<br />Therefore, JeOS includes only the pieces of an operating system (often Linux) required to support a particular application and any other third-party components contained in the appliance. This makes the appliance smaller, and possibly more secure than an application running under a full general purpose OS.<br />
FIREWALL<br />Virtual Appliance<br />CRM<br />Virtual Appliance<br />Linux<br />Linux<br />What is a Virtual Appliance<br />Firewall SW<br />Pre-built, pre-configured and ready-to-run software application packaged with the OS inside a Virtual Machine.<br />Or packaged inside multiple Virtual Machines<br />Linux<br />Apache<br />mySQL<br />Tomcat<br />Linux<br />
Virtual Appliances<br />Virtual appliances are virtual machine templates, sometimes in the Open Virtualization Format (OVF), that contain preconfigured operating systems and applications. Since VMs are self-contained and transportable, they can be delivered in a preconfigured state as virtual appliances. VAPs are most often designed to run on Linux operating systems because of the licensing cost. Few vendors have created VAPs based on Microsoft technologies because they have to become Windows resellers to do so.<br />Some considerations that need addressable when we choose a VAP:<br />Has the OS been hardened?<br />Is the appliance upgradeable?<br />Scalability<br />Microsoft v/s Linux<br />Licensing<br />Custom OS?<br />
Major Benefits<br /><ul><li>Application conflicts due to shared resources become very easy to deal with; applications become independent of the OS version
Applications can be deployed in streaming mode to reduce network usage and hard disk requirements
Application developers do not have to worry about the underlying OS</li></li></ul><li>Software Release<br />1 centers on request management<br />2 prepares product integration and begins the application analysis process. What are the application requirements? Does it integrate with others? What is its installation process? These are all questions that this step aims to answer before the package is created and is ready to move on to the next stage<br />3 tests the initial package to ensure that it works properly and has been integrated with your organization’s security and other standards<br />4 performs quality assurance (QA) on the package, testing both remote and interactive installations, identifying if conflicts remain and if the package can be removed without issues remaining on the target system<br />Once the package has passed through QA, it moves on to release management and then it is ready for deployment. The package is fully documented and is integrated with the software repository in your network<br />
Cloud Computing<br />Cloud Computing is a collection of network hosted services accessible from anywhere.<br />Attributes:<br /><ul><li>Services are sourced via networks and are housed “somewhere else”
Reliability and scalability logic remain hidden giving the illusion of infinite (elastic) capacity.
These services are programmatically controlled on-demand
Charges are consumption based – no upfront investment
Loosely coupled set of services</li></ul>19<br />