# Architecture

The QMCLOUD software is made up of multiple docker containers and besides the SaaS platform, it can be installed in a customer’s environment including public cloud or private cloud.&#x20;

{% hint style="info" %}
The following architecture is relevant for self-hosting and AWS marketplace appliance options only. The SaaS version of QMCLOUD uses a similar architecture but varies significantly to account for multi- tenancy and RBAC.
{% endhint %}

The following diagram depicts the architecture of QMCLOUD.

Diagram – QMCLOUD architecture

<figure><img src="https://3069594575-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN46JiuLCEQTlLkrrbdrv%2Fuploads%2FvEyK6cgdicOF8QYHVWIi%2Fqmcloud-docker-arch.JPG?alt=media&#x26;token=11144162-d04d-4587-8e99-8bc9a6aa6346" alt=""><figcaption></figcaption></figure>

The following components are depicted in the diagram:

1. User workstation
2. URL / FQDN used to access QMCLOUD
3. Set of docker containers that constitutes QMCLOUD Sofware
4. Proxy or Load balancer
5. Backend – NodeJS, and Java
6. Front end - ReactJS
7. Postgres database
8. Pulumi Automation API
9. Pulumi state software using app.pulumi.com
10. Azure cloud platform
11. AWS cloud platform
