Recipe

Azure Container Apps

Deploy Nimbus as a serverless container on Microsoft's managed Kubernetes platform. Scale to zero when idle, burst to thousands of replicas under load, and pay only for the vCPU and memory your containers consume — no cluster management required.

Why Azure Container Apps

  • KEDA-driven autoscaling — zero to N replicas based on HTTP traffic, queue depth, or custom metrics
  • Dapr integration for state stores, pub/sub, and service invocation without SDK lock-in
  • Managed TLS termination and revision-based blue/green deployments
  • Private VNet injection — keep Nimbus traffic off the public internet

Quick Start

1. Container image

Build and push your Nimbus image to Azure Container Registry. The image must listen on the port defined by the PORT environment variable — ACA injects this automatically.

2. Define the Container App

Set minimum replicas to 0 for scale-to-zero. Configure a scale rule on HTTP requests with a concurrency target of 10. Assign 0.5 vCPU and 1 GiB memory per replica as a starting baseline.

3. Ingress and auth

Enable external ingress on HTTPS only. Pin the ingress to a custom domain and attach a managed certificate. Use the built-in authentication middleware to validate Nimbus license tokens before requests reach your container.

4. Secrets and env vars

Store your Nimbus signing key and KeyAuth secrets in ACA secrets. Reference them as environment variables — never bake secrets into the image. Rotate via revision updates.

Pro tip: Combine scale-to-zero with a 30-second graceful shutdown. Nimbus completes in-flight license validations before the replica terminates, preventing dropped sessions during scale-in events.