Computer appliance

A computer appliance is a computer with software or firmware that is specifically designed to provide a specific 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.
Another form of appliance is the virtual appliance, which has similar functionality to a dedicated hardware appliance, but is distributed as a software virtual machine image for a hypervisor-equipped device.
Overview.
Traditionally, software applications run on top of a general-purpose operating system, which uses the hardware resources of the computer (primarily memory, disk storage, processing power, and networking bandwidth) to meet the computing needs of the user. The main issue with the traditional model is related to complexity. It is complex to integrate the operating system and applications with a hardware platform, and complex to support it afterwards.
By tightly constraining the variations of the hardware and software, the appliance becomes easily deployable, and can be used without nearly as wide (or deep) IT knowledge. Additionally, when problems and errors appear, the supporting staff very rarely needs to explore them deeply to understand the matter thoroughly. The staff needs merely training on the appliance management software to be able to resolve most of problems.
In all forms of the computer appliance model, customers benefit from easy operations. The appliance has exactly one combination of hardware and operating system and application software, which has been pre-installed at the factory. This prevents customers from needing to perform complex integration work, and dramatically simplifies troubleshooting. In fact, this "turnkey operation" characteristic is the driving benefit that customers seek when purchasing appliances.
To be considered an appliance, the (hardware) device needs to be integrated with software, and both are supplied as a package. This distinguishes appliances from "home grown" solutions, or solutions requiring complex implementations by integrators or Value-added resellers (VARs).
The appliance approach helps to decouple the various systems and applications, for example in the data center. Once a resource is decoupled, in theory it can be also centralized to become shared among many systems, centrally managed and optimized, all without requiring changes to any other system.
Tradeoffs of the computer appliance approach.
The major disadvantage of deploying a computer appliance is that since they are designed to supply a specific resource, they most often include a customized operating system running over specialized hardware, neither of which are likely to be compatible with the other systems previously deployed. Customers lose flexibility.
One may believe that a proprietary embedded operating system, or operating system within an application, can make the appliance much more secure from common cyber attacks. However, the opposite is true. Security by obscurity is a poor security decision, and appliances are often plagued by security issues as evidenced by the proliferation of IoT devices.
Types of appliances.
The variety of computer appliances reflects the wide range of computing resources they provide to applications. Some examples:
Consumer appliances.
Aside from its deployment within data centers, many computer appliances are directly used by the general public. These include:
Consumer uses stress the need for an appliance to have easy installation, configuration, and operation, with little or no technical knowledge being necessary.
Appliances in industrial automation.
The world of industrial automation has been rich in appliances. These appliances have been hardened to withstand temperature and vibration extremes. These appliances are also highly configurable, enabling customization to meet a wide variety of applications. The key benefits of an appliance in automation are:
Types of automation appliances:
Internal structure.
There are several design patterns adopted by computer appliance vendors, a few of which are shown below. Since the whole concept of an appliance rests on keeping such implementation details away from the end user, it is difficult to match these patterns to specific appliances, particularly since they can and do change without affecting external capabilities or performance.
Sometimes, these techniques are mixed. For example, a VPN appliance might contain a limited access software firewall running on Linux, with an encryption ASIC to speed up VPN access.
Some computer appliances use solid state storage, while others use a hard drive to load an operating system. Again, the two methods might be mixed—an ASIC print server might allow an optional hard drive for job queueing, or a Linux-based device may encode Linux in firmware, so that a hard drive is not needed to load the operating system.