Managed service providers (MSPs) can reduce the total cost of ownership (TCO) for their customers by introducing open source alternatives to SaaS offerings. We take the pain out of maintaining the infrastructure, so selling open source applications is as simple as earning commissions from a traditional partner program.

VMs or Containers? You choose.

There are two different approaches that MSPs can take to host open source apps for their end users. The classical approach is to create separate virtual machines for each customer, which may reside in the service provider’s cloud account, or that of the end customer. A more modern approach is hosting individual customer instances in containers, on a Docker Swarm cluster that is owned by the MSP.

Depending on the application and the customer requirements, sometimes one approach is more appropriate than the other. For example, NextCloud and Mailcow are more suitable to be run in a VM, since most customers prefer the strong isolation of a hypervisor for their cloud storage, and a dedicated IP address for their mail server. Also, Mailcow’s containers require running with the Docker privileged flag, which for security reasons is supported only on individual Docker hosts – not in Swarm mode.

On the other hand, apps such as RocketChat, Invoice Ninja, or Mautic can be easily deployed on a shared Docker Swarm cluster – for easier managability and a greater density of instances that reduces the per-instance hosting cost. If you plan to resell open source apps to your MSP customers, an open source CaaS provides one-click deployment of apps using Docker stack files, centralized logging & monitoring, and automatic failover between Swarm nodes.

One customer per VM

  • Strong isolation of data with dedicated kernel.
  • Customers are assigned a unique IP address.
  • Each customer requires 2 to 3 VMs for each service to achieve high availability.
  • Provisioned resources for each customer reduces “noisy neighbor” effect.
  • Autoize installs the application and its dependencies for a per-project fee.
  • Manage & backup with conventional Linux utilities such as SSH and rsync.

Many customers on one Docker Swarm cluster (Multi-Tenant)

At least 3 Swarm nodes with minimum RAM of 8 to 16 GB each.

Image credit: Jens Lechtenbörger
  • Logical isolation of data with namespaces and cgroups.
  • Customers share the public IP address of a load balancer and ingress.
  • Automatic failover & migration of persistent data between Swarm nodes.
  • Greater density and higher % utilization of resources reduces hosting costs.
  • Pay once for cluster setup, then deploy with pre-baked Docker images and Stack files.
  • Manage & backup with Docker commands and “cloud native” tools.