Skip to main content

Architecture Overview

CMP (Cloud Management Platform) provides a unified, API-driven self-service portal for managing multiple infrastructure providers. Providers are reached only through orchestrator adapters — CMP never talks to CloudStack, OpenStack, or VMware APIs directly from the presentation layer.

Primary providers: Apache CloudStack, OpenStack, VMware vSphere, Proxmox
Optional infrastructure services: Ceph Storage, Veeam VSPC, PowerDNS
Extensibility: New providers follow a standard workflow, but require changes across presentation, application, business services, and orchestrator adapters — not the adapter alone.

This page is organized for different audiences:

SectionAudience
High-level architectureBusiness, sales, customers, introductions
Component architectureDevelopers, solution architects
Request lifecycleDevelopers, integrators
Deployment architectureOperations, infrastructure, DevOps

For where to host CMP (single server, multi-server, HA), see Choosing a Hosting Topology.

Open full size

Architecture diagrams can be hard to read inline. Click a diagram, or use Open full size, to view it in a new browser tab.


Architecture principles

CMP uses a strict layered model. Traffic and control flow top-down; infrastructure never calls the portal.

LayerNameResponsibility
1PresentationCustomer Portal (React / Next.js), responsive self-service UI
2ApplicationCMP API — REST, authentication, authorization (RBAC), business logic, validation, audit logging
3Business servicesDomain modules (billing, VMs, networks, storage, orders, and related services)
4Orchestrator adaptersProvider-specific API abstraction (CloudStack, OpenStack, VMware, future providers)
5Cloud infrastructureProvider control planes, zones, and optional services (Ceph, Veeam VSPC, PowerDNS)
Adding a new provider

CMP has a standard integration workflow, but onboarding a new cloud provider is not limited to the adapter alone.

You typically need coordinated work across:

LayerTypical changes
PresentationPortal flows, labels, provider-specific options or screens where the UI must expose the new service
ApplicationAPI contracts, auth/permissions, validation, and audit for new operations
Business servicesPackages, quotas, billing rules, orders, and domain logic for the new provider
Orchestrator adaptersProvider-specific API mapping (required for all infrastructure calls)

Adapters keep provider APIs behind Layer 4, but the product still needs end-to-end wiring from portal through business services before customers can use the new provider.


CMP High-Level Architecture

Architecture overview

A simplified view of how customers reach cloud providers through CMP. Suitable for introductions and commercial discussions. Internal business modules are intentionally omitted.

Diagram

CMP High-Level Architecture — how customers reach cloud providers through CMP
Open full size

Platform architecture (product view)

Portals, core platform capabilities, infrastructure integrations, and technology foundation — useful for stakeholder and onboarding overviews.

Stack Console Platform Architecture — portals, core platform, integrations, and technology stack
Open full size

Components

ComponentRole
Customer PortalWhite-label self-service UI for end customers
CMP APISingle application entry for business operations
Cloud AdaptersTranslate CMP operations into provider APIs
Cloud ProvidersCloudStack, OpenStack, VMware control planes and zones
Optional servicesCeph (storage), Veeam VSPC (backup), PowerDNS (DNS)

Data flow

  1. Customer actions enter at the Customer Portal.
  2. The portal calls the CMP API.
  3. The API selects the correct adapter for the customer’s provider and zone.
  4. The adapter invokes the cloud provider (and may use optional services such as Ceph or Veeam).

Design considerations

  • Keeps commercial messaging simple: one portal, many clouds.
  • Hides billing, RBAC, and module detail until the component view.
  • Optional services are shown as peer infrastructure, not as primary compute providers.

Future extensibility

New providers still appear under Cloud Providers and behind a Future Adapter, but product delivery also needs portal, API, and business-service work for that provider’s workflows — not adapter wiring alone.


CMP Component Architecture

Architecture overview

Full logical component map for developers and architects. Shows presentation, application cross-cutting concerns, business services, adapters, and infrastructure.

Diagram

CMP Component Architecture — logical component map for developers and solution architects
Open full size

Layered platform architecture

Channels (Customer / Reseller / Admin portals), API gateway, core platform services, integration & orchestration, and connected infrastructure providers — aligns with the layered model in Architecture principles.

Stack Console CMP Platform Architecture — channels, access, core services, integration, and infrastructure layers
Open full size

Components

LayerComponentsResponsibility
PresentationCustomer PortalSelf-service UI, branding, responsive experience
ApplicationCMP API, Authentication, RBAC, AuditRequest entry, security, validation, audit trail
Business servicesUsers, projects, billing, wallet, orders, invoices, VMs, networks, storage, images, snapshots, backups, monitoring, notifications, activity logsDomain logic and product features
AdaptersCloudStack, OpenStack, VMware, FutureProvider API translation
InfrastructureProviders + Ceph, Veeam VSPC, PowerDNS (optional)Actual cloud resources and optional services

Data flow

  1. Portal submits an authenticated request to the CMP API.
  2. Authentication and RBAC authorize the action; audit logging records it.
  3. The matching business service executes (for example Virtual Machines or Billing).
  4. Infrastructure-affecting actions call the correct adapter.
  5. The adapter talks to the provider (and optional services when required).
  6. Results return through the API to the portal.

Design considerations

  • Business modules stay as provider-agnostic as practical; adapters absorb API differences. New providers may still need business and UI changes for packages, quotas, and provider-specific flows.
  • Billing, wallet, and invoices sit beside compute modules so commercial state is not locked inside a hypervisor API.
  • Backup may use CloudStack-native paths or Veeam VSPC depending on configuration.
  • PowerDNS remains optional and is not required for core IaaS.

Future extensibility

Implement a Future Adapter and register packages/zones for the new provider. Expect necessary changes in presentation, application, and business services as well — reuse shared modules where possible, but do not assume portal or billing need zero changes.


CMP Request Lifecycle

Architecture overview

End-to-end path of a typical authenticated customer request (for example create instance) from browser to infrastructure and back.

Diagram

CMP Request Lifecycle — authenticated request from portal to infrastructure and back
Open full size

Components

StepComponentResponsibility
UICustomer PortalCapture intent, display result
APICMP APIValidate payload, orchestrate services
SecurityAuthentication / RBACIdentity and permission checks
DomainBusiness serviceQuotas, packages, billing hooks, state
AdapterCloud adapterMap to CloudStack / OpenStack / VMware APIs
ProviderControl planeAccept native API calls
InfrastructureHypervisor / storage / networkApply the change

Data flow

Linear top-down then reverse: User → Portal → API → Auth → Business → Adapter → Provider → Infrastructure, then response returns along the same path to the portal.

Design considerations

  • Failures should surface at the API with actionable errors; adapters normalize provider-specific messages.
  • Billing and quota checks typically run in the business service before the adapter call.
  • Audit events should be written when authorization succeeds and when infrastructure mutations complete.

Future Extensibility

The request sequence shape stays the same (portal → API → business → adapter → provider). A new provider still needs adapter work and any presentation, application, and business-service changes required for that product’s standard workflows.


CMP Deployment Architecture

Architecture overview

Runtime topology for operations and DevOps: how CMP processes and supporting services are deployed relative to load balancers and cloud control planes. This is the logical deployment view; concrete single-server and HA host layouts are in Choosing a Hosting Topology.

Diagram

CMP Deployment Architecture — runtime topology with load balancer, API, and control planes
Open full size

Components

TierComponentsResponsibility
EdgeInternet, browser, load balancerTLS termination, routing to frontend/API
FrontendCustomer PortalStatic/SSR portal delivery
BackendCMP APIApplication runtime, workers, schedulers
Supporting servicesPostgreSQL, Redis, message brokerPersistence, cache, async jobs
AdaptersIn-process or collocated with APIProvider integration
Control planesCloudStack MS, OpenStack controllers, vCenterCloud management APIs
Infrastructure servicesCeph, Veeam VSPC, PowerDNSStorage, backup portal, DNS
ZonesZone A / BCapacity and failure domains in the cloud

Data flow

  1. Browser hits the load balancer.
  2. Portal and API traffic are routed to frontend and backend tiers.
  3. API reads/writes PostgreSQL, uses Redis, and enqueues work on the message broker when needed.
  4. Adapters call provider control planes; zones host customer workloads.
  5. Optional services (Ceph, Veeam, PowerDNS) are reached from providers or adapters per product design.

Design considerations

  • Keep databases and brokers on private networks; expose only LB endpoints publicly.
  • Message broker and Redis enable async billing, notifications, and long-running orchestrator jobs.
  • Multi-zone clouds are represented under the provider; CMP maps packages to Cloud Provider + Zone.
  • RabbitMQ (or equivalent queue) may be co-located with Redis-backed jobs depending on your CMP build — confirm with your StackConsole deployment package.

Future extensibility

Scale frontend and API horizontally behind the load balancer; add Redis/DB replicas; register new adapters without changing the edge topology. For host-level HA patterns, see Choosing a Hosting Topology.