MCMMCMBy Revdau
3-Tier Deployment

3-Tier Deployment Guide

Production deployment instructions for the 3-Tier Multi-VM Orchestration Engine Cluster.

MCM Platform — 3-Tier Deployment Guide

About this architecture

The 3-tier orchestrated deployment is the recommended architecture for production environments. It separates services by role into three distinct tiers to strengthen security isolation and optimize system performance:

  • Tier 1: Access Node (VM1): Hosts the gateway interface. This is the only node exposed to public traffic.
  • Tier 2: App Node (VM2): Hosts the core backend microservices and the User Interface (UI).
  • Tier 3: DB Node (VM3): Hosts the storage layers.

3-Tier Network Architecture


1. Prerequisites & VM Specifications

Ensure that your physical, virtual (on-premises), or cloud virtual machines meet the following minimum configuration requirements:

Host / VMRole / TierOSCPURAMDiskNetworkCloud VM Examples (AWS / Azure)
VM 1 (mcm-access)Access Gateway / ManagerUbuntu 24.04 LTS2 CPU4 GB50 GB SSD1 Gbpst3.medium / Standard_D2als_v6
VM 2 (mcm-app)Backend APIs & UIUbuntu 24.04 LTS4 CPU16 GB50 GB SSD1 Gbpst3.xlarge / Standard_D4ads_v6
VM 3 (mcm-db)DatabaseUbuntu 24.04 LTS4 CPU16 GB105 GB SSD1 Gbpst3.xlarge / Standard_D4ads_v6

Scaling for Production

The above specifications are the minimum requirements to deploy and run the MCM Platform. For production environments with larger workloads, refer to the VM Sizing Guide for recommended specifications based on your managed resource count.

Baseline Network Prerequisites

The 3-tier architecture requires the following network conditions:

  • VM1 (Access Node): Must be reachable by end users — either via a public IP, VPN, or internal corporate network.
  • VM2 (App Node) & VM3 (DB Node): Must have private IP connectivity to VM1 and to each other. These nodes do not need to be reachable from outside your network.
  • Outbound Internet Access:
    • All VMs: Require outbound internet access during installation to download system dependencies (Docker, packages, etc.).
    • VM2 (Runtime): Requires persistent outbound internet access because the MCM microservices connect to cloud provider APIs (AWS, Azure) for resource orchestration, inventory sync, and cost metrics.

For detailed port mappings, security groups, and domain firewall rules, see Section 2: Network & Security Requirements.


2. Network & Security Requirements

All three VMs must be placed within a network where they can route traffic to each other using private IPs. A single subnet (or separate subnets for strict tiering) can be used depending on your network topology.

Example IP layout (using 10.0.0.0/16):

  • Subnet 1 (10.0.1.0/24) — Hosts VM1 (mcm-access).
  • Subnet 2 (10.0.2.0/24) — Hosts VM2 (mcm-app).
  • Subnet 3 (10.0.3.0/24) — Hosts VM3 (mcm-db).

If your deployment uses a different IP layout, ensure you adapt all subnet ranges, IP values, and source filters accordingly throughout this guide.

On-Premises & Private Cloud Setup

If you are deploying on physical servers or a private virtualized environment:

  1. VM Provisioning: Provision 3 virtual machines meeting the CPU, RAM, and Disk specifications listed in Section 1: Prerequisites & VM Specifications.
  2. Network Layout & IP Assignment:
    • VM1 (mcm-access): Assign an IP address accessible by your target users (can be a public IP or a private IP if accessed via an internal corporate network, VPN, or local load balancer).
    • VM2 (mcm-app) & VM3 (mcm-db): Assign static private IP addresses. Ensure VM1, VM2, and VM3 have mutual private IP routing to communicate with each other.
  3. Firewall & Egress Configuration: Configure your network firewall appliances or host-level firewalls (e.g. UFW) using the Port Requirements and Outbound Connection Requirements tables below.

Port Requirements

The following ports must be open between the VMs. Configure these in your firewall, security groups, or host-level rules (e.g., UFW) as needed:

PortProtocolSourceDestinationPurpose
22TCPAdmin workstationVM1Administrative SSH access
22TCPVM1VM2, VM3Installer SSH tunnel for deployment
80TCPUsersVM1HTTP (auto-redirects to HTTPS)
443TCPUsersVM1Primary HTTPS gateway
2377TCPVM2, VM3VM1Cluster management
7946TCP + UDPAll VMsAll VMsService discovery & gossip protocol
4789UDPAll VMsAll VMsVXLAN overlay network (container-to-container traffic)
1514TCPVM1, VM2VM3Wazuh log collection (Required when SecOps module is enabled)
1515TCPVM1, VM2VM3Wazuh agent enrollment (Required when SecOps module is enabled)
9098TCPUsers / AdminVM1MCM Upgrade Agent service

CAUTION: The Port 4789 Trap

The VXLAN overlay network data plane traffic MUST run over UDP Port 4789. If you mistakenly configure Port 4789 as TCP in your Cloud Security Groups, the Container Orchestrator services will start, but they will be completely isolated. You will experience 504 Gateway Timeouts because the microservices on VM2 will not be able to talk to the databases on VM3.

Outbound Connection Requirements

The MCM platform requires outbound HTTPS (port 443) connectivity to the following main domains:

IMPORTANT: Mandatory Egress Whitelisting for Private Infrastructure

If your infrastructure is provisioned inside a private subnet, air-gapped network, or operates behind a corporate egress firewall / forward proxy (e.g. Palo Alto, Fortinet, AWS NAT Gateway, Azure Firewall, Squid), you MUST whitelist all 21 domains, ports, and protocols listed below.

  • Installation Impact: Failure to whitelist will cause apt-get dependency installations, Docker container image pulls, or installer package downloads to hang or fail.
  • Runtime Impact: The MCM platform persistently connects to AWS/Azure APIs, Microsoft Graph/Entra ID, NTP time servers, currency feeds (FinOps), and security threat intelligence feeds (SecOps Wazuh & Elastic).
  • Wildcard Configuration: Where indicated, configure domain wildcard rules (e.g., *.amazonaws.com, *.azure.com, *.revdau.ai, *.ubuntu.com) in your egress firewall to avoid dropped connections to regional or dynamic endpoints.
#Domain / DestinationPortsProtocolRequired OnPhasePurpose
1*.amazonaws.com443HTTPSVM2RuntimeAWS Cloud management, STS & cost telemetry APIs
2*.api.aws443HTTPSVM2RuntimeModern AWS service API endpoints
3*.windows.net443HTTPSVM2RuntimeAzure Cloud management, blob storage & resource sync
4*.azure.com443HTTPSVM2RuntimeAzure Resource Manager (ARM) APIs & cost reporting
5login.microsoftonline.com443HTTPSVM2RuntimeMicrosoft Entra ID (Azure AD) OAuth authentication
6graph.microsoft.com443HTTPSVM2RuntimeMicrosoft Graph API for tenant discovery & identity management
7*.docker.io443HTTPSVM1, VM2, VM3Installation / RuntimeDocker Hub container registry & image layers
8*.docker.com443HTTPSVM1, VM2, VM3Installation / RuntimeDocker Engine package repository & authentication
9*.elastic.co443HTTPSVM2, VM3Installation / RuntimeElastic packages, integration assets & telemetry
10*.wazuh.com443HTTPSVM3RuntimeWazuh SIEM rulesets, CVE threat intelligence & agent updates
11*.ubuntu.com80, 443HTTP/HTTPSVM1, VM2, VM3Installation / RuntimeUbuntu system package updates (apt-get)
12*.canonical.com80, 443HTTP/HTTPSVM1, VM2, VM3Installation / RuntimeCanonical security updates & kernel patches
13*.github.com443HTTPSVM1, VM2, VM3Installation / RuntimeGitHub API integration & CLI binary downloads
14*.githubusercontent.com443HTTPSVM1, VM2, VM3InstallationRaw GitHub assets, scripts & binary downloads
15ghcr.io443HTTPSVM1, VM2, VM3Installation / RuntimeGitHub Container Registry for service images
16registry.opentofu.org443HTTPSVM2RuntimeOpenTofu provider registry for IaC Orchestration
17*.cloudflarestorage.com443HTTPSVM2RuntimeCloudflare R2 storage for OpenTofu & container asset downloads
18hub.steampipe.io443HTTPSVM2RuntimeSteampipe cloud discovery plugins & registry
19*.digicert.com80, 443HTTP/HTTPSVM1, VM2, VM3Installation / RuntimeTLS certificate chain validation & CRL revocation checks
20api.frankfurter.app443HTTPSVM2RuntimeLive currency exchange rates for FinOps multi-currency conversion
21*.revdau.ai443HTTPSVM1Installation / RuntimeMCM Nexus portal (nexus.mcm.revdau.ai), license verification & artifact downloads
22*.ntp.ubuntu.com123, 4460UDP/TCPVM1, VM2, VM3RuntimeNetwork Time Protocol (NTP) for cluster clock synchronization

Understanding Connection Phases: * Installation: Outbound access required during initial platform deployment to download system packages, container images, and binary dependencies. * Runtime: Outbound access required continuously while the platform is running for cloud API synchronization, inventory discovery, cost metrics, and security threat intelligence feeds.

AWS & Azure Infrastructure Setup

If you are provisioning resources on a public cloud, navigate to the dedicated guide for your provider to set up your network, security groups, and VM instances:

Once your cloud infrastructure and VMs are provisioned, return to Section 3: Installation Procedure of this guide to complete the platform setup.


3. Installation Procedure

Pre-Deployment Checklist

Before you begin:

  • Ensure that the SSH user on VM2 and VM3 belongs to the sudo group.

  • Ensure SSH password authentication is enabled on VM2 and VM3 to allow key distribution.

    Run the following commands on VM2 and VM3 to configure a password and temporarily enable authentication:

    # Set a password for the SSH user (e.g. ubuntu)
    sudo passwd [VM_SSH_USER]
    
    # Enable password authentication drop-in config
    echo "PasswordAuthentication yes" | sudo tee /etc/ssh/sshd_config.d/00-mcm-temp-auth.conf
    sudo systemctl restart ssh

The installer script automatically performs all pre-checks including hardware verification (minimum RAM, disk, CPU), OS version validation, and bidirectional network port connectivity testing. If any pre-check fails, the installer reports the exact issue and exits. Fix the reported issue and re-run the installer.


Step 1: Account Registration & Portal Access

Follow these steps on the MCM Nexus Portal to set up your account:

  1. Visit MCM Portal Landing Page: Navigate to https://nexus.mcm.revdau.ai and click the Continue button.

    MCM Nexus Portal Landing Page
  2. Complete the Sign-Up Form: Fill in your organizational and contact details in the registration form to create your account.

    MCM Portal Sign Up Form
  3. Receive Verification & Credentials Email: Check your inbox for the welcome email containing your initial credentials and verification details.

    MCM Account Verification Email
  4. Sign In to MCM Portal: Go to the login screen and sign in using your registered email and temporary password.

    MCM Portal Sign In
  5. Set Your Account Password: On your first login, configure a secure password for your account.

    MCM Change Password MCM Password Confirmation

Step 2: License Request & Approval Workflow

  1. Access Portal Workspace Dashboard: After logging in, access your workspace dashboard.

    MCM Workspace Dashboard
  2. Navigate to the Request Tab: Click on the Request tab in the top navigation bar.

    MCM Request Tab
  3. Submit License Request & Wait for Approval: Fill out and submit your license entitlement request.

    MCM License Request Submission

    Administrator Approval

    The MCM Administrator team reviews and approves submitted license requests. Once approved, the software package download and license entitlements become accessible under the License tab.


Step 3: Generate Download Command & Server Deployment

  1. Open the License Tab: Navigate to the License tab (/license) to view your MCM App Credentials (Username and Token).

    MCM License Tab
  2. Select Release Version & Copy Download Command: Under Download installation package, select version 1.2.0 from the dropdown and click Copy to copy the pre-authenticated wget command.

    MCM License Package & Download Command Generation
  3. SSH into VM1 (Access Node):

    ssh [VM1_USER]@<VM1_IP>
    # or using private key
    ssh -i /path/to/key.pem [VM1_USER]@<VM1_IP>
  4. Execute the Copied Download Command:

    wget --user="your_email@example.com" --password="your_mcm_app_password" \
      "https://nexus.mcm.revdau.ai/api/mcm-app/downloads/package?version=1.2.0" -O mcm_artifacts_1.2.0.tar.gz
  5. Extract and Launch the Installer:

    tar -xzf mcm_artifacts_1.2.0.tar.gz
    cd mcm_artifacts
    sudo chmod +x install.sh
    sudo bash install.sh --three-tier
  6. Provide Node Connection Details: The installer prompts for connection inputs:

    • Enter VM1 IP (Access Node): Type the IP address of VM1.
    • Enter VM2 IP (App Node): Type the IP address of VM2.
    • Enter VM2 SSH Username & Password: Type the SSH credentials for VM2.
    • (Repeats for VM3)
  7. Wait for Post-Deployment Warm-up: After completion, wait approximately 5 minutes for all container services to initialize.


Step 4: Platform Activation & Super Admin Setup

Once deployment completes, navigate to https://<VM1_IP_OR_DOMAIN>/subscription in your browser:

  1. Activate Subscription: Enter your registered Username and Password/Token received via email, then click Activate.

    MCM Subscription Activation
  2. Create Organization Administrator: Enter the details for the primary platform super administrator and submit.

    MCM Create Primary Administrator
  3. Log In to Platform: Log in with your administrator credentials and proceed to the Getting Started User Guide.


4. Operations & Health Verification

You can verify the status and health of all deployed services by executing the healthcheck script (Optional) on VM1 (Access Node):

sudo bash /opt/mcm/scripts/healthcheck.sh

General Verification and Control

For verification steps, stack teardown commands, and utility control scripts (starting, stopping, restarting, or upgrading the platform components), please refer to the Helper Scripts and Commands Guide.

For custom domain configuration and SSL/TLS certificate management, please refer to the Domain and TLS Certificate Configuration Guide.

For troubleshooting configuration, certificate, or service initialization errors, refer to the Troubleshooting Guide.

On this page