---
title:  Apache CloudStack: Open Source Cloud Computing
---

##<i class="icon-cloud"></i> Understanding Apache CloudStack

<img src="/cloudstack/images/cloudstack-oss-architecture.png" class="illustration" width="294" height="333"> 
Apache CloudStack is open source software that forms the foundation for infrastructure clouds. Data center operators can quickly and easily build cloud services within their existing infrastructure to offer on-demand, elastic cloud services. Enterprises can use CloudStack to take on hybrid workloads, making it easier to manage legacy workloads while spinning up workloads that take advantage of the cloud model.

CloudStack users can take full advantage of cloud computing to deliver higher efficiency, limitless scale and faster deployment of new services and systems to the end-user. CloudStack allows user to coordinate virtualized servers, networking and network storage to provide infrastructure-as-a-service (IaaS) just like hosting providers &ndash; but on their own hardware. 

CloudStack is an open source cloud operating system which delivers public cloud computing similar to Amazon EC2 but using your own hardware. CloudStack provides orchestration of your virtualized resources into one homogeneous environment where you can delegate the creation to users of the virtual machines using the self-service CloudStack portal.

CloudStack provides powerful features for enabling a secure multi-tenant cloud computing environment. With one click virtual servers can be deployed from a pre-defined template. Virtualized instances can be shutdown, paused and restarted via the web interface, the command line or by calling the extensive CloudStack API.

CloudStack can be used for multiple purposes:

- Service Providers can offer virtualized hosting in an elastic cloud computing configuration
- Enterprises can stage development, testing and production in a consistent way easing the development and publishing processes for applications
- Web content providers can deploy scalable, elastic web infrastructure that can adapt to meet the demand of their readership
- Software-as-a-Service providers can offer true multi-tenant software hosting while securing each user's environments

All these capabilities are a result of years of development and collaboration by the Cloudstack development team with cloud computing users to deploy some of the largest, most scalable private and public cloud computing environments in the world.

###Key Features

- **One Cloud, Multiple Hypervisors** - With CloudStack, a single cloud deployment can run multiple hypervisor implementations of multiple types. Based on a pluggable architecture, CloudStack software works with a variety of hypervisors including KVM, vSphere and Citrix XenServer to give customers complete freedom to choose the right hypervisor for their workload.
- **Massively scalable infrastructure management** - CloudStack lets you manage tens of thousands of servers across geographically distributed datacenters through a linearly scalable, centralized management server that eliminates the need for intermediate cluster-level management servers. No single component failure can cause cluster or cloud-wide outage, enabling downtime-free management server maintenance and reducing the workload of managing a large-scale cloud deployment.
- **Easy-To-Use Web Interface** - CloudStack makes it simple to manage your cloud infrastructure with a feature-rich user interface implemented on top of the CloudStack API. Fully AJAX-based and compatible with most popular web browsers, the solution can be easily integrated with your existing portal for seamless administration. A real-time view of the aggregated storage, IP pools, CPU, memory and other resources in use gives you better visibility and control over your cloud.
- **Robust RESTful API** - CloudStack implements industry-standard APIs on top of a low-level CloudStack API with its own unique and innovative features. Although the CloudStack API is documented, maintained and supported, CloudStack does not assert it as your only option! We also have support for the EC2/S3 API and may implement other cloud API standards as they become available.

For a full list of features, see [our feature list](/features.html). 

###Benefits

- CloudStack empowers users to "serve themselves" - giving IT the opportunity to remove roadblocks from speedy service delivery and to focus on solving business problems.
- CloudStack automates previously labor intensive tasks, helping to reduce IT operations costs and deliver services more quickly.
- Allows IT to provide standardized workloads, which ensure consistency with application and service delivery.
- Enhances visibility into resource allocation and the business usage of services.
- Increases the server/admin ratio and delivers benefits of scale: Even if deployed globally!

###Download Now

You can get started with CloudStack immediately. See our [downloads page](downloads.html) for source code and convenience binaries.
