As institutions move to service-oriented architecture (SOA) for student and internal services, dealing with legacy applications often creates hurdles. But those older apps need not slow things down. Virtualization can help speed the shift to SOA.
SOA abstracts software functions and interactions as services with well-defined interfaces and standardized communication mechanisms.
The service-interface abstraction decouples the functionality from its implementation so that users can develop applications in a diverse set of platforms and programming languages. Standardized communication lets services interoperate so they can be combined, orchestrated and reused to realize complex applications. These features have propelled the adoption of SOA by many institutions, resulting in the development of new services and also the need to adapt existing applications to conform to SOA standards.
Although the complexity of SOA- enabled applications is hidden from service clients, the loosely coupled nature of SOA still challenges the IT infrastructure when deploying services and apps. Each service or app may require a different execution environment. Heterogeneity in the environment includes — but is not limited to — instruction-set architecture (or processor architecture), operating system, run-time libraries tied to OS versions or programming languages, and different software packages or configurations.
Consider a typical scenario: An institution needs to deploy new or existing services from its SOA in several new locations to expand functionality, increase service response or improve availability. But, as is often the case, not all of the locations maintain the specific execution environment required by the new service. To realize SOA, institutions will need to buy and configure new equipment, reconfigure existing resources or adapt the service for each distinct environment. Virtualization offers a simpler alternative, along with the additional benefits of better capacity utilization, reduced development and quicker deployment.
The ability to expose resource abstractions — even those not supported directly by the physical entity — makes virtualization technologies well suited to provide the necessary execution environment for SOA deployments.
A key enabling technology for realizing this vision is machine virtualization, which is available for most current computer architectures:
- PCs (Citrix Xen, Linux Kernel-based KVM, Microsoft Virtual PC and VMware products);
- IBM System Z, or zSeries servers (IBM z/VM);
- IBM System P, or pSeries servers (IBM PowerVM);
- Sun Microsystems SPARC systems (LDoms, or Logical Domains, and Sun xVM).
These products essentially partition a physical computer into multiple virtual machines (VMs), in which different operating systems can be instantiated. The processor architecture exposed to VMs is, in general, the same as the physical machine. Full-machine emulator products are also available that allow instantiation of x86-based VMs in PowerPC-based Macs and the Hercules emulator (which allows software designed for IBM mainframes to be executed in PCs).
Machine virtualization not only provides different execution environments but also helps in the deployment of applications and services; facilitates maintenance and updating processes; and offers advanced features such as cloning, checkpointing and mobility.
The large majority of computer systems in use are x86-based PCs. This fact does not alleviate the SOA’s need for several execution environments because of the diversity of OSes, programming languages and run-time libraries. Just imagine an endless discussion about which Linux distribution and version is best; this is where server consolidation comes into play.
Multiple independent OSes can be instantiated in a single physical machine, with an OS also being able to host emulators of other architectures, effectively allowing consolidation of a diverse set of platforms. Applications and services with conflicting execution environments do not need to be forcibly collocated in a single system. Instead, they can run in independent VMs, where the necessary environment is supplied, and still share physical resources.
As a consequence, server consolidation helps reduce the IT infrastructure cost by requiring fewer physical servers, which in turn reduces power consumption, personnel needs, equipment acquisition and maintenance costs.
Complex apps and services can require intricate installations and configuration. The use of VMs ensures that the installation and configuration will be left to the experts. The fact that the full state of VMs can be represented as a few files, called VM images, means developers can install and configure services and then easily transfer them to the production environment — even when the production environment is distributed across several buildings or campuses. This effectively reduces the lifecycle of services from development to production, as the process of deploying a service becomes a simple process of “powering on” a VM.
Maintenance and Updates
Software always needs updates, service packs, patches and other actions to fix behavior unanticipated at release time. Typically, the maintenance activities require costly downtime. Worse, updates may cause problems in other parts of a system. But because VMs duplicate easily, the IT team can do all maintenance activity in a replica VM without disturbing the production system and without downtime.
Once the updated system passes the validation tests, a simple switch will bring the new system online. A short downtime during the switch between old and updated systems may be necessary to transfer information processed by the old system during the maintenance period.
Management of the Virtual Infrastructure
The ability to easily create and increase the number of deployed VMs can drive an IT infrastructure to an unmanageable state. This makes an effective and efficient VM management infrastructure essential for a successful SOA deployment through virtualization.
Management automation is currently a big part of virtualization infrastructure development. Some tools include Citrix XenCenter, Sun xVM and VMware VirtualCenter.
VM management by itself can be based on SOA, as it is in VMware VirtualCenter. This approach opens an opportunity for the development of autonomic services and applications, where information about physical infrastructure can be queried through well-defined interfaces, and adequate execution environments can be constructed by a sequence of infrastructure services invocations.
Care must be taken to avoid overconsolidating. During virtualization planning, application workload and requirements must be carefully analyzed. Keep in mind:
- A PC cannot host an infinite number of VMs.
- Although many virtualization products are available, not all architectures can be instantiated as VMs in PCs and not all devices are readily supported in VMs.
Virtualization: The Quick Explanation
Virtualization hides the physical properties of resources from the entities using them and exposes interfaces that can appear as a resource replica whose functions can be either the same or a subset or modified version of the original resource’s functionality.
The decoupling lets the IT team multiplex physical resources among many virtual entities and customize resource abstraction as needed.
For example, machine virtualization allows different operating systems to execute in the same physical hardware, and network virtualization enables multiple isolated networks to coexist in the same physical communication infrastructure.