Skip to content
Solutions

SaaS and B2B applications

SaaS and B2B applications

Host a multi-tenant SaaS or B2B application on Quake AI. You operate the application tier, tenant isolation model, edge proxy, TLS, and data stores; Quake AI provides compute, networking, block and object storage, floating IPs, and optional self-managed Kubernetes.

What this is for#

Mid-market SaaS teams and B2B product builders need an application tier that serves tenants, holds per-tenant state, and keeps monthly infrastructure cost predictable. Quake AI provides the compute, network, and storage layers; you own the application, tenant isolation model, edge routing, certificates, and deployment pipeline. The outcome is a multi-tenant stack with flat egress and plan-based compute pricing, deployable from validated OpenTofu templates.

Reference architecture#

SaaS tenantsThird-party CDNQuake AIthree-tier-app templatemonitoring variationcache variationWeb tierApp tierPostgresPrometheus + GrafanaValkey cache requeststenant datascrape metricshot readsstatic assetscache miss to originHTTPS
Click to zoom
Multi-tenant SaaS on Quake AI: the solid box is the three-tier-app base template (web, app, and Postgres tiers); the dashed boxes are the monitoring variation (Prometheus and Grafana) and the cache variation (Valkey). Tenants reach the web tier over HTTPS, optionally fronted by a third-party CDN.

Download diagram: SVG, PNG, and PDF.

The SaaS stack is the three-tier app template plus two value-add variations. Each tier maps to the diagram and to the template or how-to that builds it.

  1. SaaS tenants. Browser users and API clients reach the application over HTTPS. A third-party CDN in front of the origin is optional for marketing pages and static assets.

  2. Third-party CDN. A CDN such as Cloudflare, Fastly, or Akamai caches static assets and absorbs burst traffic. Quake AI has no native CDN product, so you bring the provider and point cache misses at the web tier's public address.

  3. Web tier. The three-tier app template web VM serves the public API and UI. Place an edge reverse proxy in front when you want a dedicated TLS endpoint, or use the edge WAF or API gateway for filtering and API controls.

  4. App tier. The application VM authenticates tenants, enforces isolation, and reads and writes tenant state. The three-tier app template separates this tier from the web and database tiers; teams that deploy with Helm or GitOps run it on a Kubernetes cluster instead.

  5. Postgres tier. Relational tenant data lives in self-managed Postgres on Block Storage, the database VM of the three-tier app template. The self-managed PostgreSQL template covers the same tier as a standalone stack.

  6. Value-add variations. The monitoring variation adds a monitoring stack (Prometheus and Grafana) for tenant-facing service health, and the cache variation adds a Valkey cache in front of the app tier for sessions and hot reads. Serve tenant uploads, exports, and attachments from S3-compatible Object Storage when the application stores durable files.

Alternative front door. When the web or API tier stays private behind dedicated perimeter VMs, the Edge & gateways templates each provision one appliance on a floating IP: edge reverse proxy (Caddy with automatic HTTPS), edge WAF (SafeLine L7 filtering), API gateway (APISIX routing, rate limits, and tenant-aware plugins), or edge tunnel gateway (Pangolin for operator or staging access without public app ports). Deploy walkthroughs: reverse proxy, WAF, API gateway, tunnel. Add Front with a CDN for geographic edge; perimeter VMs terminate TLS in the Quake AI region you operate.

Services involved#

ServiceRole in this architectureDocs
ComputeHosts the application tierCompute
NetworkPrivate networks, routers, and security groups for the app tierNetwork
Floating IPsStable public address for the edge or web VMFloating IPs
Self-managed edgeTLS termination, routing, filtering, and rate limitsEdge reverse proxy
Block StoragePostgres data volumes for tenant stateBlock Storage
Object StorageTenant uploads, exports, and static assetsObject Storage
Kubernetes (Magnum)Optional self-managed cluster for container-based deploymentsKubernetes
Self-managed PostgresRelational tenant data you operateSelf-managed PostgreSQL template

Get started#

Each template below pairs with a step-by-step deploy tutorial. Start from the template that matches how you run the app, then follow its tutorial to stand it up.

Estimate the cost#

Monthly cost estimate

Pricing calculator ↗

Sized as a custom package on a mix of shared and dedicated vCPU.

Starting template$304.00/mo

Monthly total for the required template above. Use the configurator below to add optional pieces and see the total update.

What each resource is for

2× Web tier

s1a.small · 2 shared vCPU, 2 GiB RAM, 0.5 Gbps

Serves incoming application traffic and terminates client connections.

Runs on shared CPU because the web tier scales horizontally. Add instances with web_count rather than a larger flavor.

$33.00/mo

2× App tier

m2a.large · 2 dedicated vCPU, 8 GiB RAM, 0.5 Gbps

Runs the application logic the web tier calls, on a private subnet with no public IP.

Uses general-purpose dedicated CPU for steady request handling.

$132.00/mo

Database

m2a.xlarge · 4 dedicated vCPU, 16 GiB RAM, 1 Gbps

Runs the database on a private subnet, with a dedicated data volume per instance.

Uses a memory-optimized flavor so the working set stays in RAM.

$132.00/mo

Compute shown per role at custom-package rates ($29/dedicated vCPU, $7.25/shared vCPU, $1/GiB RAM). The headline above is the billed total: the cheaper of a named plan and the custom package, plus add-ons.

Included in baseline

s1a.small

2 shared vCPU, 2 GiB RAM, 0.5 Gbps

$16.50

s1a.small

2 shared vCPU, 2 GiB RAM, 0.5 Gbps

$16.50

m2a.large

2 dedicated vCPU, 8 GiB RAM, 0.5 Gbps

$66.00

m2a.large

2 dedicated vCPU, 8 GiB RAM, 0.5 Gbps

$66.00

m2a.xlarge

4 dedicated vCPU, 16 GiB RAM, 1 Gbps

$132.00

Compute + RAM rate basis

12 vCPU + 36 GiB RAM at $29/dedicated vCPU, $7.25/shared vCPU, $1/GiB RAM (regular). Totals apply the flat −$5/mo package promotion.

—

Block storage (150 GiB)

150 GiB at $0.08/GiB/mo

$12.00

Public IP (included)

1 included with the custom package

$0.00

Package promotional discount

Flat −$5.00/mo on the custom package (same promotion as named plans).

$-5.00

Included at no charge

These line items are zero on Quake AI. Many other providers meter them separately.

Data transfer (inbound and outbound)

Unlimited data transfer on every plan; Quake AI does not meter per-GB egress.

AWS, GCP, and Azure meter outbound transfer per GB. DigitalOcean and Hetzner include an allowance on compute plans, then charge overage.

Learn more
$0.00

Private networking

Private networks, subnets, Neutron routers, and security groups are included with the plan.

VPC objects are usually free to create elsewhere, but NAT gateways bill hourly plus per-GB processed. Quake AI uses router SNAT with no separate NAT line item.

$0.00

Control-plane API requests

OpenStack API calls for provisioning and management are included.

Some managed services on other clouds meter API calls or charge for premium control-plane features.

$0.00

Configure your estimate

Check the add-ons you plan to deploy to build a monthly total. Nothing is selected to start, so the total below begins at the baseline.

Starting template

The required baseline, always included.

$304.00/mo
Your configured estimate$304.00/mo

Dev/test vs production

Start on shared CPU for dev/test, then promote to dedicated for production with a flavor resize. The network, storage, and template stay the same.

Dev/test on shared CPU

Burstable s1a flavors; suited to prototyping and low or bursty load.

$106.00/mo

Production on the configured CPU

The headline estimate above; predictable steady-load performance.

$304.00/mo

Saves $198.00/mo while you build on shared CPU.

Shared flavors carry less RAM (m2a.large (8 GiB RAM) -> s1a.small (2 GiB RAM); m2a.xlarge (16 GiB RAM) -> s1a.medium (4 GiB RAM)). A resize reboots the instance; data on attached volumes persists. Size the dedicated flavor for the RAM your production workload needs.

Pricing data last validated: . For current rates, check quake.ai/pricing.

Migrating an existing B2B SaaS application?#

Move a SaaS product that already runs on Amazon EKS or ECS, Azure AKS, Google GKE, Heroku, or VM fleets at another cloud. The outcome is the same multi-tenant application on Quake AI compute or a self-managed Kubernetes cluster, with tenant data, secrets, and traffic cut over in a controlled order.

Follow this cutover path. Each step links an existing migration page; this section composes those pages into a workload-shaped sequence rather than duplicating their steps.

  1. Map your source provider. Start with the concept-translation page for your current cloud: Coming from AWS, Coming from Azure, Coming from GCP, Coming from DigitalOcean, or Coming from Hetzner.

  2. Stand up the target shape on Quake AI. Pick the greenfield template that matches how you run the app after migration: Full-stack app for a compact VM stack, Three-tier app when web, app, and database tiers stay separate, or Kubernetes cluster when you deploy with manifests or Helm.

  3. Move compute workloads. For VM-based tenants or nodes, follow Migrate from EC2. For Kubernetes-hosted services, follow Migrate from EKS.

  4. Move object and file data. Sync tenant uploads, exports, and static assets with Migrate from S3.

  5. Recreate network topology and security rules. Translate VPCs, subnets, and security groups with Migrate from AWS VPC (or the matching network migration page for your source provider).

  6. Cut over traffic. Add the target backends to your edge proxy or API gateway, verify tenant logins and health endpoints, then switch DNS to its floating IP. Use CDN or DNS weights when you need a gradual rollout.

Workload-specific cutover callouts#

  • Tenant data migration. Plan per-tenant or shared-schema database moves (dump and restore, logical replication, or batch ETL) before you point production DNS at Quake AI. Validate row counts and tenant isolation rules on the target Postgres or application database.
  • Secrets and configuration. Export environment variables, API keys, and OAuth client settings from the source platform. Load them into Quake AI through your deployment tool (OpenTofu variables, Kubernetes Secrets, or a vault you operate). Rotate credentials that cannot move verbatim.
  • Session continuity. Active browser sessions may not survive a DNS switch. Shorten session TTL before cutover or accept a one-time re-login window; document the window for customers if your SLA requires it.
  • DNS switch and rollback. Lower TTL on the production hostname several days before cutover. Keep the source stack warm until error rates stabilize. Roll back by pointing DNS at the old origin if health checks or error budgets fail.

For a hands-on walkthrough of this vertical, follow Migrate a B2B SaaS application to Quake AI.

Considerations and limits#

  • Multi-tenant isolation is yours to design. Quake AI provides the compute, network, and storage primitives; tenant separation (shared-schema, schema-per-tenant, or database-per-tenant) and the authorization model are your application's responsibility under the shared responsibility model.
  • Compliance posture. Quake AI holds SOC 2 Type I and Type II attestations and SOC 3. Where a tenant contract requires HIPAA, PCI-DSS, FedRAMP, or ISO 27001, state the gap and check the platform scope in Compliance and certifications.
  • No managed database or CDN. Postgres, cache layers, and search indexes run on Compute or Block Storage you operate. Static acceleration requires a third-party CDN in front of the origin.
  • Flat egress. Quake AI applies a no-egress-fee policy for outbound transfer, which helps SaaS workloads that serve large exports or media to tenants.
  • Three US regions. All current regions are in the United States. A globally distributed application needs CDN coverage and, if required, additional origin regions outside Quake AI today.
  • CPU-only compute. Application runtimes are CPU-bound; Quake AI flavors are AMD EPYC with no GPU option (compute FAQ).
Was this page helpful?