<!doctype html>
<html>
  <head>
    <meta charset="utf-8">

    <!-- Always force latest IE rendering engine or request Chrome Frame -->
    <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">

    <!-- Use title if it's in the page YAML frontmatter -->
    <title>Apache CloudStack FAQ</title>

    <link href="/stylesheets/normalize.css" rel="stylesheet" type="text/css" /><link href="/stylesheets/all.css" rel="stylesheet" type="text/css" />
    <script src="/javascripts/all.js" type="text/javascript"></script>
  </head>

  <body class="cloudstack-faq">
    <div class="row">

<div class="col-lg-12">

<div class="page-header">

<h1 id="indicators">Apache CloudStack: FAQ</h1>

</div>

</div>

</div>

<p>This page is for Frequently Asked Questions (FAQ) having to do with Apache CloudStack as a project and its use.</p>

<p>Have a question that's not answered here? You might want to ask on the <a href="/mailing-lists.html">CloudStack users mailing list</a>.</p>

<ul>
  <li><a href="/cloudstack-faq.html#what">What is Apache CloudStack?</a></li>
  <li><a href="/cloudstack-faq.html#private">Can I create my own private templates?</a></li>
  <li><a href="/cloudstack-faq.html#users">How are users, accounts, and domains handled in CloudStack?</a></li>
</ul>

<h3 id="what-is-apache-cloudstack">What is Apache CloudStack?</h3>

<p><a name="what"> </a></p>

<p>Apache CloudStack is a complete software suite for creating Infrastructure as a Service (IaaS) clouds. Target environments include service providers and enterprises.</p>

<ul>
  <li>The Apache CloudStack platform enables service providers to set up an on-demand, elastic cloud computing service. It enables a utility computing service by allowing service providers to offer self-service virtual machine instances, storage volumes, and networking configurations over the Internet.</li>
  <li>The Apache CloudStack platform enables enterprises to set up a private cloud for use by their own employees. The current generation of virtualization infrastructure targets enterprise IT departments who manage virtual machines the same way they would manage physical machines. The Apache CloudStack platform, on the other hand, enables self-service of virtual machines by users outside of the IT department.</li>
  <li>As an open source IaaS, Apache CloudStack is available to individuals and organizations that wish to study and implement an IaaS for personal, educational, and/or production use.</li>
</ul>

<p>The CloudStack platform includes the Management Server and extensions to industry-standard hypervisor software (<em>e.g.</em> XenServer, vSphere, KVM) installed on Hosts running in the cloud. The Management Server is deployed on a farm of management servers. The administrator provisions resources (Hosts, storage devices, IP addresses, etc.) into the Management Server and the Management Server manages those resources. The Management server presents web interfaces to end users and administrators that enable them to take actions on some or all of their instances in the IaaS cloud.</p>

<h3 id="can-i-create-my-own-private-templates">Can I create my own private templates?</h3>

<p><a name="private"> </a></p>

<p>Yes. Every template has a privacy level associated with it. Privacy levels include:&lt;/a&gt;</p>

<ul>
  <li><strong>Public</strong>: The template is available to all users in the zone.</li>
  <li><strong>Private</strong>: The template is available only to its owner. A user can make her private templates available to specific users.</li>
</ul>

<p>Administrators and end users can add templates to the system. Users can see the template owner when viewing the template.</p>

<p>(Templates define the base OS image that will be used when a guest is first booted. For example, a template might be a 64-bit version of CentOS 5.3.)</p>

<h3 id="how-are-users-accounts-and-domains-handled-in-cloudstack">How are users, accounts, and domains handled in CloudStack?</h3>

<p><a name="users"> </a></p>

<p>Apache CloudStack users are assigned accounts. An account is typically a customer of the service provider or a department in a large organization. Accounts are the unit of isolation in the cloud. Accounts are grouped by domains. Domains usually contain accounts that have some logical relationship to each other and a set of delegated administrators with some authority over the domain and its subdomains. For example, a service provider with several resellers could create a domain for each reseller.</p>

<p>Multiple users can exist in an account.  Users are like aliases in the account.  Users in the same account are not isolated from each other.  Most installations need not surface the notion of users; they just have one user per account.</p>

  </body>
</html>
