Multi-tenancy: Let’s Answer the Most Frequently Asked Question, Once And For All

Multi-tenancy is a great feature—it allows multiple teams to share compute resources while still maintaining control over their own applications. Each team can deploy, upgrade, and monitor their applications at their own pace, without stepping on each other’s toes… or can they?

By “stepping on each other’s toes,” I mean the risk of one team’s application starving other teams’ applications by over-consuming their memory, CPU, or disk.

multi-tenancy

Imagine you are the Edge IT/Platform engineer who is responsible for an edge system. How can you ensure that your application tenants don’t interfere with one another—or with you? And when is the right time to set up guardrails for single or multiple tenants?

The answer to the question? All the time! Let’s look closer at why.

Ask the Expert: Sign up for our webinar and learn the answers to the top 10 most frequently asked questions to the Avassa Engineering Team

Setting up tenants in the Avassa Edge Platform

In the Avassa Edge Platform, the basic tenant setup assigns each tenant a subset of sites. If no sites are shared between tenants, the need for resource constraints is somewhat reduced. However, even in this case, tenants can still impact the system by consuming excessive resources. In the illustration above the two sites to the left are isolated to tenant A only, the two sites on the right are isolated to tenant B only, and the site in the middle is shared among both tenant A and B. This means that the available resources need to be allocated appropriately among the two tenants.

For shared compute, meet resource profiles!

When an edge site needs to be shared between tenant A and tenant B, we want to have full control over the resource usage per tenant on the shared hosts. This is one the most frequently asked questions we get from users that are planning for a common edge platform for several applications teams.

Introducing: resource profiles!

A resource profile defines limits on one or more of the following resources:

  • CPU, memory, and disk usage
  • Access to hardware devices (e.g., an attached camera)
  • GPU access
  • Ingress IP addresses (i.e., addresses assigned to an application to expose a service on the network)

Resource profiles are configured by the Edge IT/Platform engineer, i.e. you, and can be configured at four different levels:

  1. System-wide – applies to all tenants (including you) and all sites
  2. Tenant-level – applies to a specific tenant, allowing different tenants to have different profiles
  3. Site-level – applies to all resources within a specific site
  4. Host-level – applies to an individual host

If multiple resource profiles are configured, the most restrictive limit is enforced.

Timing of multi-tenancy: When should you use resource profiles?

I would argue that you should always have at least one resource profile. Even if you’re the only tenant in the system, setting guardrails proactively can save you from issues in the future. A well-configured resource profile prevents applications from consuming all available host memory or disk space—keeping your system stable and your workloads running smoothly.

For a tutorial on configuring resource profiles, see: Avassa Documentation: Resource Management

Top 10 Frequently Asked Questions to the Avassa Engineering Team

Free webinar:
Feb 19th at 8 am PT/11am ET/5 pm CET