Virtual Machines

Datalogz runs on Virtual Machines inside Docker Containers for a simple, cost-effective deployment that can be scaled vertically as demand increases. You may deploy using either Windows or Linux.

Provisioning

  1. Create new virtual machine(s) to host your Datalogz frontend application and backend API in the region of your choice. You may choose either a Windows 10/11 distribution or a Linux distribution.

  2. The security group inbound rules on this machine should allow HTTP/HTTPS traffic from your private network IP – so your users can access the site.

  3. The security group outbound rules on this machine should allow HTTPS traffic from your network IP – so the Gateway API Service can make HTTPS connection to 3rd party services such as Microsoft for running the OAuth2.0.

  4. The security group inbound rules on this machine should allow SSH or RDP traffic from your private team’s IP – so your team can remotely login and deploy the builds.

  5. Ensure you have enabled ManagedIdentity access on the Virtual Machine in the “Identity” panel on the Virtual Machine page in the Azure portal. This will ensure the VMs identity can be used to retrieve keys from the Key Vault requiring no sensitive credentials to be located in an .env file on the VM itself.

  6. Grant access to the key vault to this VM identity following instructions here.

  7. SSH or RDP into the VM to install Docker and clone the repositories.

VM System Requirements

Option 1: Monolith VM supporting backend and frontend services

  • Minimum

    • CPU: 2 vCPU

    • Memory: 8 GB RAM

    • OS Disk: 50 GB

    Estimated Cost as of 2/1/2023: $80 / mo.

  • Recommended

    • CPU: 4 vCPU

    • Memory: 16 GB RAM

    • OS Disk: 50 GB

    Estimated Cost as of 2/1/2023: $160 / mo.

Total Estimated Cost: $80 - $160 / mo.

Option 2: Split VM each supporting either frontend or backend service

  • Backend VM

    • Minimum

      • CPU: 2 vCPU

      • Memory: 8 GB RAM

      • OS Disk: 50 GB

      Estimated Cost as of 2/1/2023: $80 / mo.

    • Recommended

      • CPU: 4 vCPU

      • Memory: 16 GB RAM

      • OS Disk: No changes required

      Estimated Cost as of 2/1/2023: $160 / mo.

  • Frontend VM

    • Minimum / Recommended

      • CPU: 2 vCPU

      • Memory: 4 GB RAM

      • OS Disk: No change

      • Estimated Cost as of 2/1/2023: $40 / mo.

Total Estimated Cost: $120 - $200 / mo.

Windows 10/11 Required Images

Datalogz is a portable application that can be deployed to either Windows or Linux machines using Docker to virtualize resources.

Only certain Windows 10/11 VM Images on Azure support nested virtualization. Please choose a VM from this list that has the three asterisks denoting ***Hyper-threaded and capable of running nested virtualization.

Datalogz recommends using the following sizes based on whether you choose Option 1 or 2 above:

  1. Size for Single (Monolith) VM: D4d_v4

  2. Sizes for Split VM:

    • Backend: D2d_v4

    • Frontend: D2d_v4

SSH or RDP into VM

SSH

Set the correct permissions on your SSH key pair before connecting to the virtual machine, updating the following variables with your key name, user name, and VM IP address

sudo chmod 400 <private_key>.pem
ssh -i <private_key>.pem <admin_username>@<ip_address>

RDP

Download the Remote Desktop Protocol (RDP) connection file for the Windows 10/11 VM from the Azure portal and ensure the machine connecting to the remote resources is allowed on port 3389 (RDP).

Installing Docker

Both the Datalogz frontend and backend applications are deployed using Docker.

Docker on Windows 10/11

Installing Docker on Windows 10/11 performs best when using Windows Subsystem for Linux (WSL2). Here are the steps required to install this pre-requisite.

  1. Use Remote Desktop Protocol to connect to the VM

  2. Open a Powershell Terminal as Administrator and run the following command to setup Windows Subsystem for Linux: wsl --install

  1. Restart the VM. When the VM restarts, Windows Subsystem for Linux may start automatically. You can create a new user named dl_windows_linux_user with your own password to access WSL2 directly, but it's unlikely you will need to.

  2. Now you can proceed to install Docker Desktop by following the official docs in the next section.

Install Docker Desktop (Windows and Linux)

Please continue with the Docker Desktop installation referencing the official docs.

After installation as completed, open Docker Desktop and Accept the Terms of Conditions for Docker Engine to start. If the Docker Engine is not started you may need to Disconnect and Reconnect to the VM.

Installing Git

  1. Download and install Git (Link)

  2. Set up credential store by running the command in a Command Prompt: git config --global credential.helper 'store'

  3. The next time you run git pull on a remote origin and sign-in, your credentials will be cached for future reuse.

SSL Certificates

Deploying a Datalogz Proof-of-Concept (POC) will use self-signed keys generated during the build process to enable encrypted communications over HTTPS, and you will access your VM either using the Public IP Address of the VM or an Azure-provided DNS ending in *.cloudapp.azure.com. For example:

Monolith VM

  • https://x.x.x.x OR https://mono-mycomanywin11.eastus2.cloudapp.azure.com

Split VM

  • https://x.x.x.x OR https://app-mycomanywin11.eastus2.cloudapp.azure.com

  • https://x.x.x.y OR https://api-mycomanywin11.eastus2.cloudapp.azure.com

Deploying Datalogz into Production (PROD) enables you to provide your own Certificates for deploying Datalogz to new subdomains on an existing domain. For example:

Monolith VM

  1. https://app.datalogz.mycompany.com

Split VM

  1. https://app.datalogz.mycompany.com

  2. https://api.datalogz.mycompany.com

Last updated