As agencies move to service oriented architecture for citizen and internal services, dealing with legacy applications often creates hurdles. But those older apps need not slow an agency down. Virtualization can help agencies 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 government and industry alike, 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 and/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 agency 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 agency’s locations maintain the specific execution environment required by the new service. To realize SOA, the agency 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 ones not supported directly by the physical entity — makes virtualization technologies well suited to provide the necessary execution environment for SOA deployments.
fact: 90% of data centers across all sectors plan to virtualize.
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);
- Apple Macintosh systems (VMware Fusion);
- 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, such as Virtual PC for Mac (which allows 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.
Care must be taken
to avoid overconsolidating. During virtualization
planning, an agency must analyze its application
workload and requirements. Keep in mind:
• A PC cannot host an
infinite number of VMs.
• Although many
are available, not all
architectures can be
instantiated as VMs in
PCs and not all devices
are readily supported
The large majority of computer systems in use are x86-based PCs. This fact does not alleviate the SOA 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 colocated 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 acquisitions 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 and the developers. 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 bureaus or agencies. 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 an agency can easily duplicate its VMs, 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.
José Fortes, a professor at the University of Florida, is director of both the federally funded Advanced Computing and Information Systems Laboratory and the Industry-University Cooperative Center for Autonomic Computing. Andréa Matsunaga and Maurício Tsugawa are doctoral students at the lab and center. You can contact them at email@example.com, firstname.lastname@example.org or email@example.com.