Software appliance

Last updated

A software appliance is a software application combined with just enough operating system (JeOS) to run optimally on industry-standard hardware (typically a server) or in a virtual machine. [1] It is a software distribution or firmware that implements a computer appliance. [2] [3]

Contents

Virtual appliances are a subset of software appliances. The main distinction is the packaging format and the specificity of the target platform. A virtual appliance is a virtual machine image designed to run on a specific virtualization platform, while a software appliance is often packaged in more generally applicable image format (e.g., Live CD) that supports installations to physical machines and multiple types of virtual machines. [4] [5] [6]

Installing a software appliance to a virtual machine and packaging that into an image, creates a virtual appliance.

Benefits

Software appliances have several benefits over traditional software applications that are installed on top of an operating system:

Types of software appliances

Virtual appliance

A software appliance can be packaged in a virtual machine format as a virtual appliance, allowing it to be run within a virtual machine container.

A virtual appliance could be built using either a standard virtual machine format such as Open Virtualization Format (OVF), or a format specific to a particular virtual machine container (for example, VMware, VirtualBox, or Amazon EC2).

Containers

Containers and their images (such as those provided by Docker and Docker Hub) can be seen as an implementation of software appliances.

Live CD appliance

A software appliance can be packaged as a Live CD image, allowing it to run on real hardware in addition to most types of virtual machines.

This allows developers to avoid the complexities involved in supporting multiple incompatible virtual machine image formats and focus on the lowest common denominator instead (i.e., ISO images are supported by most Virtual Machine platforms).

Commercial software appliances

Commercial software appliances are typically sold as a subscription service (pay-as-you-go) and are an alternative approach to software as a service.

Customers can receive all service and maintenance from the application vendor, eliminating the requirement to manage multiple maintenance streams, licenses, and service contracts.

In some cases, the application vendor may install the software appliance on a piece of hardware prior to delivery to the customer, thereby creating a computer appliance. In both cases, the primary value to the customer remains the simplicity of purchase, deployment, and maintenance.

See also

Related Research Articles

<span class="mw-page-title-main">Live CD</span> Complete, bootable computer installation that runs directly from a CD-ROM

A live CD is a complete bootable computer installation including operating system which runs directly from a CD-ROM or similar storage device into a computer's memory, rather than loading from a hard disk drive. A live CD allows users to run an operating system for any purpose without installing it or making any changes to the computer's configuration. Live CDs can run on a computer without secondary storage, such as a hard disk drive, or with a corrupted hard disk drive or file system, allowing data recovery.

Installation of a computer program, is the act of making the program ready for execution. Installation refers to the particular configuration of software or hardware with a view to making it usable with the computer. A soft or digital copy of the piece of software (program) is needed to install it. There are different processes of installing a piece of software (program). Because the process varies for each program and each computer, programs often come with an installer, a specialised program responsible for doing whatever is needed for the installation. Installation may be part of a larger software deployment process.

A hypervisor, also known as a virtual machine monitor (VMM) or virtualizer, is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Unlike an emulator, the guest executes most instructions on the native hardware. Multiple instances of a variety of operating systems may share the virtualized hardware resources: for example, Linux, Windows, and macOS instances can all run on a single physical x86 machine. This contrasts with operating-system–level virtualization, where all instances must share a single kernel, though the guest operating systems can differ in user space, such as different Linux distributions with the same kernel.

OS-level virtualization is an operating system (OS) virtualization paradigm in which the kernel allows the existence of multiple isolated user space instances, including containers, zones, virtual private servers (OpenVZ), partitions, virtual environments (VEs), virtual kernels, and jails. Such instances may look like real computers from the point of view of programs running in them. A computer program running on an ordinary operating system can see all resources of that computer. Programs running inside a container can only see the container's contents and devices assigned to the container.

A virtual appliance is a pre-configured virtual machine image, ready to run on a hypervisor; virtual appliances are a subset of the broader class of software appliances. Installation of a software appliance on a virtual machine and packaging that into an image creates a virtual appliance. Like software appliances, virtual appliances are intended to eliminate the installation, configuration and maintenance costs associated with running complex stacks of software.

In computing, virtualization is the use of a computer to simulate another computer. The following is a chronological list of virtualization technologies.

Hardware virtualization is the virtualization of computers as complete hardware platforms, certain logical abstractions of their componentry, or only the functionality required to run various operating systems. Virtualization emulates the hardware environment of its host architecture, allowing multiple OSes to run unmodified and in isolation. At its origins, the software that controlled virtualization was called a "control program", but the terms "hypervisor" or "virtual machine monitor" became preferred over time.

<span class="mw-page-title-main">Computer appliance</span> Dedicated computer system

A computer appliance is a computer system with a combination of hardware, software, or firmware that is specifically designed to provide a particular computing resource. Such devices became known as appliances because of the similarity in role or management to a home appliance, which are generally closed and sealed, and are not serviceable by the user or owner. The hardware and software are delivered as an integrated product and may even be pre-configured before delivery to a customer, to provide a turn-key solution for a particular application. Unlike general purpose computers, appliances are generally not designed to allow the customers to change the software and the underlying operating system, or to flexibly reconfigure the hardware.

Just enough operating system is a paradigm for customizing operating systems to fit the needs of a particular application such as for a software appliance. The platform only includes the operating system components required to support a particular application and any other third-party components contained in the appliance. This makes the appliance smaller, faster and potentially more secure than an application running under a full general-purpose OS.

A virtual security appliance is a computer appliance that runs inside virtual environments. It is called an appliance because it is pre-packaged with a hardened operating system and a security application and runs on a virtualized hardware. The hardware is virtualized using hypervisor technology delivered by companies such as VMware, Citrix and Microsoft. The security application may vary depending on the particular network security vendor. Some vendors such as Reflex Systems have chosen to deliver Intrusion Prevention technology as a Virtualized Appliance, or as a multifunctional server vulnerability shield delivered by Blue Lane. The type of security technology is irrelevant when it comes to the definition of a Virtual Security Appliance and is more relevant when it comes to the performance levels achieved when deploying various types of security as a virtual security appliance. Other issues include visibility into the hypervisor and the virtual network that runs inside.

<span class="mw-page-title-main">Virtualization</span> Methods for dividing computing resources

In computing, virtualization (v12n) is a series of technologies that allows dividing of physical computing resources into a series of virtual machines, operating systems, processes or containers.

<span class="mw-page-title-main">TurnKey Linux Virtual Appliance Library</span> Open-Source virtual appliance library

The TurnKey Linux Virtual Appliance Library is a free open-source software project which develops a range of Debian-based pre-packaged server software appliances. Turnkey appliances can be deployed as a virtual machine, in cloud computing services such as Amazon Web Services or installed in physical computers.

<span class="mw-page-title-main">SUSE Studio</span> Operating system build service

SUSE Studio was an online Linux software creation tool by SUSE. Users could develop their own Linux distro, software appliance, or virtual appliance, mainly choosing which applications and packages they want on their "custom" Linux and how it looks.

<span class="mw-page-title-main">LXC</span> Operating system-level virtualization for Linux

Linux Containers (LXC) is an operating system-level virtualization method for running multiple isolated Linux systems (containers) on a control host using a single Linux kernel.

Google Compute Engine (GCE) is the infrastructure as a service (IaaS) component of Google Cloud Platform which is built on the global infrastructure that runs Google's search engine, Gmail, YouTube and other services. Google Compute Engine enables users to launch virtual machines (VMs) on demand. VMs can be launched from the standard images or custom images created by users. Google Compute Engine can be accessed via the Developer Console, RESTful API or command-line interface (CLI).

Network functions virtualization (NFV) is a network architecture concept that leverages IT virtualization technologies to virtualize entire classes of network node functions into building blocks that may connect, or chain together, to create and deliver communication services.

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. The service has both free and premium tiers. The software that hosts the containers is called Docker Engine. It was first released in 2013 and is developed by Docker, Inc.

A system virtual machine is a virtual machine (VM) that provides a complete system platform and supports the execution of a complete operating system (OS). These usually emulate an existing architecture, and are built with the purpose of either providing a platform to run programs where the real hardware is not available for use, or of having multiple instances of virtual machines leading to more efficient use of computing resources, both in terms of energy consumption and cost effectiveness, or both. A VM was originally defined by Popek and Goldberg as "an efficient, isolated duplicate of a real machine".

Container Linux is a discontinued open-source lightweight operating system based on the Linux kernel and designed for providing infrastructure for clustered deployments. One of its focuses was scalability. As an operating system, Container Linux provided only the minimal functionality required for deploying applications inside software containers, together with built-in mechanisms for service discovery and configuration sharing.

<span class="mw-page-title-main">Unraid</span> Linux-based operating system for network attached storage.

Unraid is a proprietary Linux-based operating system designed to run on home servers in order to operate as a network-attached storage (NAS) device, application server, media server and a virtualization host. Unraid is proprietary software developed and maintained by Lime Technology, Inc. Users of the software are encouraged to write and use plugins and Docker applications to extend the functionality of their systems.

References

  1. Congdon, Lee (25 January 2008). "What is a Software Appliance?". Red Hat Blog . Archived from the original on 15 July 2019. Retrieved 29 December 2019.
  2. Smith, Bob; Hardin, John A; Phillips, Graham; Pierce, Bill (2007). Linux Appliance Design: A Hands-On Guide to Building Linux Appliances. No Starch Press. pp. xvii. ISBN   978-1-59327-140-4 . Retrieved 2008-05-06.
  3. SAN Data Center Archived 2005-05-02 at the Wayback Machine - Network World
  4. "OVF 1.1 Specification" (PDF).
  5. "VirtualBox changelog" . Retrieved 2009-04-13.
  6. Wu C F, Wang Y S, Liu G N, Amies, A, 2012, Create solutions on IBM SmartCloud Enterprise: Transfer image assets between different accounts IBM developerWorks, June 6.