Architecture

This architecture illustrates the two key personas and their workflows:

  • End Users launch serverless pods by selecting a profile, specifying minimal configuration (CPU/GPU), and starting workloads such as Jupyter notebooks or inference services.
  • Rafay Platform automates pod provisioning, monitoring, and lifecycle management on Kubernetes clusters, with built-in scale-to-zero and per-use billing.
sequenceDiagram
    participant User as End User
    participant DevHub as Developer Hub
    participant Rafay as Rafay Controller
    participant K8s as Kubernetes Cluster
    participant Pod as Serverless Pod

    User->>DevHub: Login to Developer Hub
    DevHub-->>User: Dashboard
    User->>DevHub: Select "Serverless Pods"
    User->>DevHub: Configure Pod (GPU/CPU, Profile, SSH)
    User->>DevHub: Click "Launch"
    DevHub->>Rafay: Request Pod Provisioning
    Rafay->>K8s: Schedule Pod with requested profile
    Rafay->>K8s: Create SSH Secret & NodePort Service
    K8s->>Pod: Spin up Ubuntu container (Jupyter/Inference/Custom)
    Pod-->>User: Provide Access URL (Jupyter/Shell/Service)
    Pod-->>User: Provide SSH Credentials & Command
    User->>Pod: Connect via SSH (using private key)
    Note over Pod: Idle pods auto scale-to-zero
    Pod->>Rafay: Send Metrics (GPU/CPU/Memory usage)
    Rafay-->>DevHub: Show Real-time Monitoring