creative soul - Fotolia

Design your systems with virtualization architecture in mind

Virtualized systems require several architectural components, such as virtual servers, hypervisors and OSes. Admins should get to know these components for a successful system design.

Good virtualization architecture is essential to creating a working virtualized system, and understanding virtualization's base components enables IT administrators to successfully deploy critical applications and virtualized instances. An admin can deploy virtual OSes, servers, storage devices and network resources -- all of which enable successful operation of a virtualized system and can help lower virtual overhead costs.

Virtualization architecture runs on hypervisors, which isolate operating systems (OSes) and applications from the underlying hardware. This enables the host machine to run multiple virtual machines (VMs), which share a system's physical compute resources, such as memory space and network bandwidth.

Admins should understand these, and other, virtualization architecture terms to ensure effective operation of their systems and data centers.

Basic virtualization architecture

Virtual server. A virtual server contains computer and server programs, which multiple admins generally share to administer the server as if it were their own. Admins that use a virtual server do not have to manage the hardware aspects that come with the server and can share the cost of line connections to the internet with other admins.

Hypervisor. A hypervisor is a computer software that abstracts OSes and applications from underlying hardware. This enables the host machine hardware to independently operate multiple VMs as guests, which can then share a system's compute resources. Admins can use a hypervisor to consolidate space on a given virtual server or run several isolated applications on a server, and it offers an essential layer of management and control over data center operations. There are two different classifications of hypervisors: Type 1 and Type 2.

Type 1 hypervisor. A Type 1 hypervisor controls the hardware of any given system as well as the guest OSes within that system. Type 1 hypervisors provide high availability and resource management, as well as improve system performance, scalability and stability because of their direct access to system hardware.

Type 2 hypervisor. A Type 2 hypervisor supports guest VMs through coordinating requests for resources, such as CPU, memory, disk and network, though a physical host's OS. Type 2 hypervisors essentially work as a VM manager installed as a software application, which enables admins to easily run VMs on a PC.

Traditional and virtual architecture

OS. An operating system is a program that manages applications within a system. Admins can interact with an OS through user interfaces, such as command lines or graphical user interfaces. Within a given system, an OS can determine which applications run and for how long, manage internal memory among multiple applications, handle I/O between hardware devices, offload management of batch jobs, and manage program division within a computer that has parallel processing.

Host OS. A host OS interacts with a system's hardware and runs a Type 2 hypervisor. Host OSes generally make use of container-based virtualization, a software system that enables applications on a server to share the same OS kernel while providing hardware isolation.

Guest OS. A guest OS is the software installed on a VM or partitioned disk, and admins can use a guest OS for testing without affecting anything outside a VM. With a guest OS, admins can also run programs and applications that aren't compatible with a host OS.

Virtualization instance types

VM. Virtual machines are OSes or application environments that imitate hardware and provide simplified backups, disaster recoveries, new deployments and system administration tasks. VMs use a system's hardware more efficiently, which can lower hardware and maintenance costs as well as reduce power and cooling demand. VMs don't require hypervisor-specific hardware, though they do require increased bandwidth, storage and processing capacity when running multiple instances compared to traditional servers and desktops. Admins can easily move, copy or reassign VMs between host servers to optimize resource utilization. Because VMs consume resources, admins must consider several VM management strategies to mitigate resource contention.

Host VM. A host VM is a server component of a given VM and makes up the hardware that provides the VM with computing resources such as memory, disk and network I/O.

Guest VM. A guest VM is a software component of a given VM and functions as if it was a physical machine. Guest VMs are generally distributed across multiple hosts to ensure load balancing.

Container. A container is a software that virtually packages and isolates applications for deployment within a system and can share access to an OS kernel without VMs. A container has all the components required to run software such as files, environment variables, dependencies and libraries, and the host OS limits its access to CPU, storage and memory to mitigate excess resource consumption. Containers provide admins with better portability and efficiency than VMs, though they lack isolation from the host OS, which can cause security issues.

Containers vs. VMs

Micro VM. A micro VM is essentially a container architecture that provides VM isolation, which acts as a safeguard against untrusted computing operations that attempt to perform tasks on a system's host OS. Micro VMs increase cybersecurity and boost resilience through virtualization without affecting admins' own operations. Admins can create and run several micro VMs at once and maintain isolation within those instances.

Application types

Application. An application, also known as application software, performs a specific function directly for admins, or even another application. An application can be either self-contained or a group of programs, and it relies on system software to access memory, storage and other hardware resources.

Native application. A native application is an application that admins can design for use on a specific platform or device, such as PCs or mobile phones.

Web application. A web application is a program that admins can store on a remote server and deliver to another destination over the internet.

Hybrid application. A hybrid application is essentially a web application put into a native application shell. People generally use hybrid applications on mobile platforms, even if the mobile platform does not connect to the internet.

API. Application program interfaces (APIs) are forms of code that enable two software programs to communicate with each other and determine the right way to request services from an OS or application. APIs work through specifications that describe how information moves between programs and a software interface written to that specification and published for use. Admins can expose data within different contexts and across several channels with an API, which can improve functionality and scope of services within a single application.

Dig Deeper on Containers and virtualization

Software Quality
App Architecture
Cloud Computing
Data Center