Tanto o CloudStack quanto o OpenStack oferecem funcionalidades básicas e necessárias para o provisionamento de serviços de computação em nuvem. Algumas das funcionalidades providas são:
- Serviços de computação
- Provisionamento de VMs e gerenciamento de seus recursos (redes, memória, CPU, discos…);
- Gestão de imagens com as quais as VMs serão criadas;
- Suporte a múltiplos hypervisors tais como KVM, XenServer e VMware.
- Serviços de rede
- Gestão e configuração de redes compartilhadas e dedicadas;
- Criação de VLANS, VXLANS (Overlay Networks) e novas topologias;
- Definição de políticas de acesso e roteamentos;
- Gestão de DNS, QoS, Load Balancers e Firewalls;
- Operabilidade compatível com os principais fornecedores de SDN (Software Defined Network), como o OpenFlow, Open vSwitch, MidoNet (Midokura) e OpenContrail (Juniper).
- Serviços de Armazenamento
- Gestão de discos;
- Armazenamento baseado em objetos e blocos;
- Backups;
- Suporte a SDS (Software Defined Storage), e.g. Ceph/RBD.
- Serviços de monitoramento de recursos
- Monitoramento de eventos;
- Apresentação dos recursos disponíveis e utilizados;
- Precificação e cobrança (billing).
- APIs REST abertas, padronizadas e documentadas, para gerenciamento de todos os serviços, automação e integração com outras ferramentas;
- Serviço de autenticação com integração nativa com LDAP;
- Suporte a sistemas federados SAML e OpenID Connect;
- Containers como serviço.
Das funcionalidades básicas de um sistema de orquestração de nuvem, o Apache CloudStack possui limitações quanto à execução de precificação (também conhecido como processo de rating). Ademais, em relação a sistemas federados, o Apache CloudStack somente suporta o protocolo SAML.