# Compute

The compute component of libcloud allows you to manage cloud and virtual servers offered by different providers, more than 20 in total.

In addition to managing the servers this component also allows you to run deployment scripts on newly created servers. Deployment or “bootstrap” scripts allow you to execute arbitrary shell commands. This functionality is usually used to prepare your freshly created server, install your SSH key, and run a configuration management tool (such as Puppet, Chef, or cfengine) on it.

Besides managing cloud and virtual servers, compute component also allows you to manage cloud block storage (not to be confused with cloud object storage) for providers which support it. Block storage management lives under compute API, because it is in most cases tightly coupled with compute resources.

## Terminology

### Compute

• Node - represents a cloud or virtual server.
• NodeSize - represents node hardware configuration. Usually this is amount of the available RAM, bandwidth, CPU speed and disk size. Most of the drivers also expose an hourly price (in dollars) for the Node of this size.
• NodeImage - represents an operating system image.
• NodeLocation - represents a physical location where a server can be.
• NodeState - represents a node state. Standard states are: running, rebooting, terminated, pending, stopped, suspended, paused, erro, unknown.

## Supported Providers

For a list of supported providers see supported providers page.

## Pricing

For majority of the compute providers Libcloud provides estimated pricing information which tells users how much it costs per hour to run a Node with a specific NodeSize.

## Deployment

Libcloud provides deployment functionality which makes bootstrapping a server easier. It allows you to create a server and run shell commands on it once the server has been created.