๐๏ธ Round 5: Platform System Design & High-Concurrency Architectures
In Staff and Principal Platform Architect interviews (Uber IDC, Google Cloud, Razorpay, PhonePe, Swiggy, Atlassian), Round 5 is the whiteboard system design test.
Unlike application system design (which asks you to design Instagram or TinyURL), Platform System Design evaluates infrastructure architecture: designing internal developer platforms, edge ingress engines capable of handling 100,000 requests/second, and multi-tenant Kubernetes platforms governing thousands of engineers.
๐ง Beginner Mental Model & Step-by-Step System Design Playbook
Think Like a City Planner: Never start a System Design interview by drawing boxes randomly! Always follow this 5-Step Architecture Blueprint Playbook:
- Step 1 (Clarify Scale & SLOs): Ask for QPS, concurrency (Littleโs Law), RTO/RPO, and multi-tenancy blast-radius requirements.
- Step 2 (Data & Network Foundation): Define the VPC/TGW topology, CIDR sizing, and stateful storage tier.
- Step 3 (Control Plane & Compute): Layer on EKS, Karpenter autoscaling, Cilium eBPF isolation, and GitOps reconciliation.
- Step 4 (Resilience & Failure Modes): Walk through how the architecture survives AZ loss, poison-pill deployments, and thundering herds.
- Step 5 (FinOps Economics): Quantify the cost optimizations (Spot, Graviton, Shared ALBs, Gateway Endpoints).
๐ System Design 1: Multi-Tenant Kubernetes Platform for 500 Engineering Teams
๐ฏ The Challenge & Requirements
โDesign a centralized Kubernetes platform for an enterprise with 500 engineering teams, 2,500 microservices, and strict PCI-DSS compliance requirements. How do you decide between cluster-per-team vs multi-tenancy? How do you guarantee noisy neighbor isolation, automated governance, secure egress, and multi-cluster GitOps orchestration?โ
๐ก Staff-Level Architectural Blueprint
flowchart TD
subgraph Management["Central Management Cluster"]
ArgoCD["ArgoCD Control Plane (ApplicationSets)"]
Vault["HashiCorp Vault (AppRole / Raft)"]
HNC["Hierarchical Namespace Controller (HNC)"]
end
subgraph Fleet["Workload Cluster Fleet (Per Business Unit / Region)"]
subgraph ClusterA["Workload Cluster: Payments & Core (PCI-DSS)"]
subgraph Tenant1["Namespace: team-checkout (Payment Gateway)"]
Pod1["Checkout Pods"]
RQ1["ResourceQuota + LimitRange"]
NP1["Cilium L7 NetworkPolicy (Deny All by Default)"]
end
subgraph Tenant2["Namespace: team-billing"]
Pod2["Billing Pods"]
end
Cilium["Cilium eBPF CNI & WireGuard Encryption"]
Gatekeeper["Kyverno / OPA Gatekeeper Admission Controller"]
end
end
ArgoCD -->|GitOps Synchronize| ClusterA
HNC -->|Propagates Policies & RBAC| Tenant1
HNC -->|Propagates Policies & RBAC| Tenant2
1. Tenancy Model Decision: Multi-Tenant Clusters with Hard Boundary Partitioning
- Why not Cluster-per-Team? 500 clusters would cost $100,000+/month in control plane fees alone, waste millions in idle compute overhead, and require managing 500 separate control plane upgrade schedules.
- The Hybrid Standard: Group teams by Risk & Compliance Domain (e.g., 3 Production Clusters:
PCI-Regulated Core,General Workloads, andHigh-Memory ML/Analytics), then enforce Hard Multi-Tenancy inside each cluster via Namespaces.
2. The 4 Layers of Tenant Isolation:
- Compute & Resource Isolation:
- ResourceQuota: Hard ceilings on CPU, Memory, and Storage per namespace to prevent resource starvation.
- LimitRange: Enforces mandatory
requestsandlimitson every pod, defaulting to Burstable QoS. - Karpenter Node Pools per Tier: Critical payment services run on dedicated node pools isolated via Node Taints and Tolerations (
dedicated=payments:NoSchedule).
- Network Isolation (Zero-Trust with Cilium eBPF):
- Default Deny-All ingress and egress policies in every tenant namespace.
- Fine-grained L7 policies: Team Checkout can only speak to Team Billing on
POST /v1/chargeover mTLS. - Egress to external internet is restricted to specific FQDNs via Cilium DNS-aware network policies.
- Control Plane & Governance Isolation:
- Hierarchical Namespace Controller (HNC): Organizes namespaces into parent-child hierarchies (
payments-rootโpayments-checkout,payments-fraud), automatically propagating RBAC roles, LimitRanges, and NetworkPolicies from parent to children. - Kyverno / OPA Gatekeeper: Enforces admission guardrails (prevents
hostPath,privileged: true, and non-approved container registries).
- Hierarchical Namespace Controller (HNC): Organizes namespaces into parent-child hierarchies (
- GitOps Fleet Delivery:
- ArgoCD ApplicationSets with Matrix Generators: Dynamically targets clusters and tenant namespaces based on Git repository folders and cluster labels.
๐ System Design 2: High-Throughput Edge Ingress for 100,000 Requests/Sec
๐ฏ The Challenge & Requirements
โDesign the edge ingress network for an Indian payment gateway (like Razorpay / PhonePe) that processes 100,000 incoming HTTPS API requests per second at peak. Latency must be < 50ms p99 within India, with 99.999% availability, automated DDoS mitigation, TLS session resumption, and distributed rate limiting.โ
๐ก Staff-Level Architectural Blueprint
flowchart TD
Users["100,000 Mobile Apps / Clients (India-wide)"] --> Route53["AWS Route 53 (Anycast Geolocation & Health Checks)"]
Route53 --> Edge["Edge Tier: Cloudflare / AWS CloudFront (Anycast PoPs in BLR, BOM, DEL, MAA)"]
subgraph EdgeLayer["Edge PoP Processing (<10ms)"]
Edge --> WAF["Edge WAF (OWASP Top 10 + Bot Mitigation)"]
WAF --> TLS["TLS 1.3 Termination & 0-RTT Resumption"]
TLS --> Shield["AWS Shield Advanced (L3/L4 DDoS Mitigation)"]
end
Shield -->|Direct DirectConnect / AWS Backbone| ALB["AWS Application Load Balancer (Cross-Zone Enabled)"]
subgraph IngressTier["Kubernetes Ingress Tier (EKS)"]
ALB --> Envoy["Envoy Gateway / Cilium Gateway API (DaemonSet on Host Network)"]
Envoy --> RateLimit["Distributed Rate Limiting (Redis Cluster - Sliding Window)"]
RateLimit --> Microservices["Core Payment Microservices (mTLS via Cilium eBPF)"]
end
1. Architectural Component Breakdown:
- Edge Anycast Routing (Route 53 & Cloudflare/CloudFront):
- Incoming traffic is routed to the nearest Point of Presence (PoP) in Mumbai (BOM), Bengaluru (BLR), Delhi (DEL), or Chennai (MAA) via BGP Anycast.
- Edge PoPs absorb L3/L4 SYN floods and UDP reflection attacks before traffic touches AWS origin infrastructure.
- TLS 1.3 Termination & Session Resumption:
- Terminating TLS at the edge reduces round-trip handshake latency from 80ms to under 15ms.
- Enforce TLS 1.3 with 0-RTT session resumption and Session Tickets (RFC 8446) for recurring mobile client calls.
- AWS Application Load Balancer (ALB) Tuning:
- Enable Cross-Zone Load Balancing to distribute traffic symmetrically across all 3 Availability Zones.
- Pre-warm ALBs with AWS Support before anticipated flash events to avoid DNS lookup throttling during instant 10x traffic spikes.
- Envoy / Cilium Gateway API Tier:
- Run Envoy as a
DaemonSetwithhostNetwork: trueon dedicated high-performance compute nodes (c7g.8xlargewith AWS Graviton3). - Bypasses kube-proxy iptables overhead, using eBPF
sockopsto route packets directly from NIC ring buffers to the target microservice pods.
- Run Envoy as a
- Distributed Rate Limiting (Redis Sliding Window Counter):
- Protects backend services against abusive API keys.
- Uses Redis cluster with pipeline Lua scripts evaluating sliding window log counts over a 1-second interval: ๐ Allowed If: Count(Window_t - 1s, t) < Limit
๐ System Design 3: Internal Developer Platform (IDP) with Spotify Backstage
๐ฏ The Challenge & Requirements
โYour organization has 1,200 developers who currently spend 3 weeks submitting Jira tickets to provision a new microservice, configure S3 buckets, set up CI/CD pipelines, and request IAM roles. Design an Internal Developer Platform (IDP) powered by Spotify Backstage that reduces service creation time to under 5 minutes (โGolden Pathโ).โ
๐ก Staff-Level Architectural Blueprint
sequenceDiagram
autonumber
participant Dev as Developer
participant UI as Backstage UI (Portal)
participant Scaffolder as Backstage Scaffolder Engine
participant Git as GitHub Enterprise
participant Crossplane as Crossplane / OpenTofu (K8s Control Plane)
participant Argo as ArgoCD
participant Vault as HashiCorp Vault
Dev->>UI: Selects "Production Go Microservice" Template
Dev->>UI: Fills Inputs: Service Name, Team, Cost Center, DB Requirements
UI->>Scaffolder: Triggers Scaffolding Job
Scaffolder->>Git: Creates Repository with boilerplate, Dockerfile & CI actions
Scaffolder->>Vault: Provisions AppRole & Dynamic Secret Mount
Scaffolder->>Git: Commits Infrastructure XR Manifest (Postgres, S3, IAM)
Scaffolder->>Git: Registers Service in ArgoCD ApplicationSet directory
Git->>Crossplane: Crossplane reconciles XR -> Provisions AWS RDS & S3
Git->>Argo: ArgoCD detects new app -> Deploys to Staging Cluster
Scaffolder-->>Dev: Ready! PR created, repo live, URL: https://service.dev.corp
1. Core Architecture Components:
- Software Catalog (Entity Data Model):
- Acts as the single source of truth for all software components, APIs (OpenAPI/gRPC), technical documentation (TechDocs), and team ownership (
catalog-info.yamlstored in every repo).
- Acts as the single source of truth for all software components, APIs (OpenAPI/gRPC), technical documentation (TechDocs), and team ownership (
- Software Templates (The Scaffolder Engine):
- Pre-packaged Golden Path templates for Go, Java, Python, and Node.js.
- Eliminates boilerplate setup: injects standardized logging (JSON format), OpenTelemetry tracing headers, standard Dockerfiles with non-root users, and healthcheck endpoints.
- Automated Infrastructure Provisioning via Crossplane:
- Instead of waiting for platform team review on Terraform scripts, the Backstage Scaffolder commits a Kubernetes Custom Resource:
apiVersion: platform.corp.com/v1alpha1 kind: MicroserviceDatabase spec: engine: postgresql storageGB: 50 environment: staging - Crossplane provisions the AWS RDS Aurora instance, configures KMS encryption, sets up Security Groups, and stores credentials directly into Vault.
- Instead of waiting for platform team review on Terraform scripts, the Backstage Scaffolder commits a Kubernetes Custom Resource:
- Service Health Scorecards:
- Automatically grades microservices (Grade A to F) based on:
- Does the service have a valid PDB?
- Does the service have CPU/RAM requests configured?
- Is the container image signed with Cosign?
- Does test code coverage exceed 80%?
- Automatically grades microservices (Grade A to F) based on:
๐ System Design 4: High-Performance LLMOps & GPU Cluster Serving
๐ฏ The Challenge & Requirements
โDesign a private, high-concurrency LLM inference platform serving open-source models (Llama 3 70B, Mistral Large) using NVIDIA H100 GPU clusters on Kubernetes. Requirements: Sub-50ms Time to First Token (TTFT), continuous batching with vLLM, automated model caching, and multi-tenant GPU sharing.โ
๐ก Staff-Level Architectural Blueprint
flowchart TD
Clients["AI Application Clients"] --> Gateway["AI Gateway (LiteLLM / Envoy)"]
Gateway --> Route["Semantic Cache & Routing (Redis Vector Search)"]
Route --> K8s["Kubernetes GPU Cluster (EKS / GKE)"]
subgraph GPUCluster["GPU Node Pool (NVIDIA H100 80GB SXM5)"]
subgraph Node1["Worker Node 1 (8x H100 GPUs via NVLink)"]
vLLM1["vLLM Serving Worker (Tensor Parallelism: TP=4)"]
vLLM2["vLLM Serving Worker (TP=4)"]
Cache["Local NVMe Fast Cache (/models/llama-3-70b)"]
end
NvidiaDriver["NVIDIA GPU Operator & DCGM Exporter"]
end
Route --> vLLM1
Route --> vLLM2
subgraph Storage["High-Throughput Storage Fabric"]
Lustre["Amazon FSx for Lustre / S3 Express OneZone"]
end
Lustre -->|Pre-loads 140GB weights in 12s via AWS EFA| Cache
1. Core Architectural Pillars:
- Inference Engine: vLLM with PagedAttention:
- Standard HuggingFace transformers allocate continuous blocks of GPU VRAM for the Key-Value (KV) cache, wasting 60โ80% of memory due to fragmentation.
- vLLM PagedAttention partitions the KV cache into non-contiguous virtual memory blocks (like OS paging), boosting serving throughput by 4ร to 8ร.
- Continuous Batching: Dynamically injects incoming user prompts into active forward passes rather than waiting for entire sequence generations to complete.
- GPU Slicing & Tensor Parallelism:
- A 70-billion parameter model in FP16 requires ~ 140GB of VRAM. An 80GB H100 cannot hold it alone.
- Configure Tensor Parallelism (TP = 4 or 8) across GPUs connected via NVIDIA NVLink (900 GB/s inter-GPU bandwidth), splitting attention heads across multiple GPUs on the same physical node.
- High-Speed Model Caching Fabric:
- Cold-starting a 140GB model from standard S3 takes 8 to 15 minutes!
- Use Amazon FSx for Lustre or local instance-store NVMe SSDs pre-warmed via Kubernetes DaemonSets with direct kernel page caching, reducing cold-start load times to under 15 seconds.
- GPU-Specific Autoscaling Metrics:
- Traditional CPU/RAM HPA fails for LLM serving!
- Scale worker pods based on vLLM-specific metrics scraped by Prometheus:
vllm:num_requests_waiting(Queue depth)vllm:gpu_cache_usage_factor(KV Cache saturation > 85%)vllm:time_to_first_token_seconds(TTFT SLA breach)
๐ Scenario 5: Designing an Active-Active Multi-Region Azure Platform (Central India + South India)
The Interview Prompt
โDesign a zero-trust, active-active multi-region financial platform on Microsoft Azure across
Central India (Pune)andSouth India (Chennai)capable of handling 50,000 TPS with< 30 secondsRTO, zero public IP exposure on backend clusters, and guaranteed transactional message processing.โ
๐ฏ Interviewerโs Trap / Intent
In GCCs (Walmart, Target, Goldman Sachs, Morgan Stanley) and Microsoft IDC interviews, candidates who only know AWS terminology fail when asked to design with Azureโs native primitives. If you propose legacy Kubenet, aad-pod-identity, or AGIC (which takes 60s to update via ARM), or if you donโt explain Cosmos DBโs 5 Consistency Levels and the 10,000 RU/s Physical Partition Hot-Key Trap, you will be down-leveled.
โ The Staff-Level Reference Architecture
flowchart TD
Users["๐ Global / Indian Banking Users"] -->|"Anycast TLS 1.3"| AFD["๐ก๏ธ <b>Azure Front Door Premium</b><br/>Global WAF + DDoS + 5s Health Probes"]
AFD -->|"Private Link Origin (Weight 50%)"| AGC1["โ๏ธ <b>App Gateway for Containers (Pune)</b><br/>Sub-second Gateway API Data-Plane"]
AFD -->|"Private Link Origin (Weight 50%)"| AGC2["โ๏ธ <b>App Gateway for Containers (Chennai)</b><br/>Sub-second Gateway API Data-Plane"]
subgraph Region1 ["Central India (Pune) โ Hub & Spoke"]
AGC1 --> AKS1["โธ๏ธ <b>Private AKS (Cilium CNI Overlay)</b><br/>Ephemeral NVMe OS Disks + NAP Karpenter<br/>Entra Workload Identity + Key Vault CSI"]
AKS1 --> SB1["๐จ <b>Azure Service Bus Premium</b><br/>FIFO Sessions + KEDA Autoscaling"]
end
subgraph Region2 ["South India (Chennai) โ Hub & Spoke"]
AGC2 --> AKS2["โธ๏ธ <b>Private AKS (Cilium CNI Overlay)</b><br/>Ephemeral NVMe OS Disks + NAP Karpenter<br/>Entra Workload Identity + Key Vault CSI"]
AKS2 --> SB2["๐จ <b>Azure Service Bus Premium</b><br/>Geo-Disaster Recovery Pairing"]
end
AKS1 <-->|"Multi-Region Writes<br/>(Bounded Staleness / Session)"| Cosmos[("๐ช <b>Azure Cosmos DB</b><br/>Hierarchical Partition Keys<br/>[/merchantId, /userId, /orderId]")]
AKS2 <-->|"Multi-Region Writes"| Cosmos
1. Core Architectural Pillars:
- Global Edge without Public IPs (Azure Front Door + Private Link):
- Terminate TLS and enforce OWASP WAF rules at the edge using Azure Front Door Premium.
- Connect Front Door into the regional Application Gateway for Containers (ALB for AKS) via Azure Private Link Origins, ensuring zero public IPs exist inside the
CorpLanding Zone VNets. - Use Application Gateway for Containers (Kubernetes Gateway API) rather than legacy
AGICso pod endpoint changes propagate via the fast data-plane API in< 1 secondinstead of 60-second ARMPUTlocks.
- Compute & CNI Dataplane (Private AKS + Cilium Overlay + Ephemeral NVMe):
- Configure Azure CNI Overlay powered by Cilium (
100.64.0.0/16pod CIDR) to prevent VNet IP exhaustion and achieve O(1) eBPF kernel routing. - Enforce Ephemeral OS Disks (
--node-osdisk-type Ephemeral) on local NVMe cache so heavy container image pulls never throttle OS disk IOPS or triggerPLEG is not healthy. - Attach an Azure NAT Gateway to the AKS subnet (64,512 dynamic SNAT ports per IP) to prevent the 1,024-port Load Balancer SNAT exhaustion trap on outbound payment calls.
- Configure Azure CNI Overlay powered by Cilium (
- Active-Active Data Tier (Cosmos DB Consistency & Hot Partition Mitigation):
- Enable Cosmos DB Multi-Region Writes across
Central IndiaandSouth India. - Select Bounded Staleness (e.g.,
K = 100versions orT = 5seconds) for account ledgers requiring strict cross-region RPO bounds, and Session Consistency (x-ms-session-token) for user-facing order status so users always read their own writes at half the RU/s cost of Strong consistency. - Preventing the Hot Partition
HTTP 429Trap: Because each physical partition caps at 10,000 RU/s and 50 GB, configure Hierarchical Partition Keys ([/merchantId, /customerId, /orderId]) so a single large merchant never saturates a single physical partition while sibling partitions sit idle.
- Enable Cosmos DB Multi-Region Writes across
- Transactional Messaging & Identity (Service Bus + KEDA + Entra Workload Identity):
- Use Azure Service Bus Premium (with FIFO Message Sessions, Duplicate Detection, and Dead-Letter Queues) paired with KEDA to scale settlement pods from 2 to 200 replicas based on queue depth.
- Authenticate pods using Entra Workload Identity OIDC federated tokens (
azure.workload.identity/use: "true") and mount HSM-backed secrets into RAM via the Azure Key Vault Secret Store CSI Driver.
๐ Summary: Platform System Design Cheat Sheet
| Platform Domain | Key Architectural Trade-Off | Staff Design Choice |
|---|---|---|
| K8s Multi-Tenancy | Cluster-per-team vs Namespace Multi-Tenancy | Group by Compliance Zone + Hierarchical Namespaces (HNC) + Cilium L7 Policies |
| 100k TPS Edge Ingress | Centralized proxy bottleneck vs Distributed edge | Cloudflare Anycast CDN + TLS 1.3 0-RTT + HostNetwork Envoy Gateway + Redis Sliding Window |
| Internal Developer Platform | Manual Jira provisioning vs Self-Service | Backstage Scaffolder Golden Paths + Crossplane Infrastructure XRDs + Vault Dynamic Secrets |
| LLMOps GPU Serving | Naive batching vs Continuous PagedAttention | vLLM engine + Tensor Parallelism (TP=4/8) + NVLink + FSx Lustre Model Pre-caching |
| Multi-Region Azure Platform | Legacy Kubenet/AGIC vs Cloud-Native Azure | Front Door Private Link + App Gateway for Containers + AKS Cilium Overlay + Cosmos DB Hierarchical Keys |
๐ง Complete Lesson-by-Lesson One-Line Memory Bank (Round 5 Scope)
๐ญ Phase 7: Internal Developer Portals & Chaos Engineering (All 5 Lessons)
Lesson 1: Backstage Software Catalog
| # | One-Line Question | One-Line Answer |
|---|---|---|
| 1 | What YAML file placed at the root of a Git repository registers a microservice into the Backstage Software Catalog? | catalog-info.yaml. |
| 2 | Name the 3 Core Entity Kinds and 2 Grouping Kinds in the Backstage System Model. | Core: Component, API, Resource. Grouping: System and Domain. |
| 3 | What causes an entity in Backstage to show an Orphan Warning? | The catalog-info.yaml file was deleted or moved in the source Git repository, leaving a stale cached record in Backstageโs database. |
| 4 | What causes the Backstage Catalog Processor to crash or reject an API entity during ingestion? | A malformed syntax error or unescaped $ref circular loop inside the referenced OpenAPI (swagger.yaml) or AsyncAPI specification file. |
Lesson 2: Golden Path Templates
| # | One-Line Question | One-Line Answer |
|---|---|---|
| 1 | What are the 3 main sections of a Backstage Template YAML definition? |
spec.parameters (UI form inputs), spec.steps (sequential actions: fetch, template, publish PR, register), and spec.output (links to created repo/ArgoCD). |
| 2 | Why should a Backstage Golden Path template create a Git Pull Request containing Crossplane/Terraform manifests instead of calling AWS APIs directly? | Committing declarative manifests to Git preserves GitOps auditability, policy-as-code PR checks, and automatic drift reconciliation. |
| 3 | What templating engine does Backstage fetch:template use to inject user form parameters into skeleton source files? |
Nunjucks (${{ parameters.service_name }}). |
Lesson 3 & 4: TechDocs, Backstage RBAC & Scorecards
| # | One-Line Question | One-Line Answer |
|---|---|---|
| 1 | Why must you never configure techdocs.builder: 'local' in a production Backstage deployment? |
'local' forces the Backstage Node.js backend pod to spawn heavy Python mkdocs subprocesses on the fly when users view pages, causing CPU starvation and OOMKills. |
| 2 | What is the recommended production architecture for Backstage TechDocs (techdocs.builder: 'external')? |
CI/CD Pre-BuildingโGitHub Actions runs techdocs-cli generate and publish to push compiled static HTML to an Amazon S3 / GCS bucket. |
| 3 | How do you turn passive Backstage Scorecards into active Deployment Gates during major sales events (like IPL or Diwali)? | Query the Scorecard API from GitHub Actions or ArgoCD PreSync hooks and block production promotion for any service scoring below Silver/Gold. |
Lesson 5: Chaos Engineering (Chaos Mesh)
| # | One-Line Question | One-Line Answer |
|---|---|---|
| 1 | What must always be defined before injecting any fault in a Chaos Engineering experiment? | The Steady-State Hypothesis (measurable business/technical SLIs such as "Checkout p99 < 250ms and HTTP 5xx < 0.1%"). |
| 2 | How does the Chaos Mesh chaos-daemon inject a 150ms network delay into a target pod without modifying the podโs image? |
It uses nsenter to enter the target podโs network namespace (netns) and configures a Linux kernel Traffic Control (tc) netem qdisc on its eth0 interface. |
| 3 | How do you manually clear a Zombie NetworkChaos rule from an affected pod if chaos-daemon crashed mid-experiment? |
Enter the podโs network namespace from the worker node and delete the root queuing discipline: nsenter -t <pod-pid> -n tc qdisc del dev eth0 root. |
๐ง Phase 8: LLMOps Infrastructure (All 4 Lessons)
Lesson 1: Vector DBs & AI Gateways
| # | One-Line Question | One-Line Answer |
|---|---|---|
| 1 | Why does a Milvus Vector DB QueryNode get OOMKilled when loading 50 million 1536-dimension float32 vectors (โ 307GB raw)? |
In-memory HNSW graph indices require 1.5ร to 2ร the raw vector size in RAM to store multi-layer graph adjacency pointers alongside raw vectors. |
| 2 | What are the 4 core functions of an Enterprise AI Gateway (LiteLLM / Envoy AI Gateway)? | (1) Multi-provider automatic failover (OpenAI โ Azure โ Bedrock), (2) Token-based rate limiting (TPM/RPM), (3) Per-tenant FinOps cost chargeback, and (4) Semantic Caching. |
| 3 | How does Semantic Caching (using Redis Vector Search) differ from traditional exact-match key-value caching? | It embeds the userโs query into a vector and returns a cached response if Cosine Similarity exceeds a threshold (e.g., > 0.95), saving 30โ50% of LLM spend. |
Lesson 2: MLflow & Prompt Evaluation
| # | One-Line Question | One-Line Answer |
|---|---|---|
| 1 | What are the 4 core metrics of the RAGAS (Retrieval-Augmented Generation Assessment) evaluation framework? | Context Precision, Context Recall, Faithfulness (hallucination detection), and Answer Relevance. |
| 2 | Why did an LLM-as-a-Judge CI evaluation pipeline pass a PR at 10:00 AM and fail the exact same code at 10:15 AM? | The judge LLM was invoked with temperature > 0; LLM-as-a-Judge must always set temperature: 0.0, seed: 42, and pin exact model snapshots. |
| 3 | Why canโt you query vectors generated by text-embedding-ada-002 using a query embedded with text-embedding-3-large? |
Different embedding models map semantics into incompatible vector spaces; switching models requires Blue/Green Vector Re-indexing of the entire corpus. |
Lesson 3 & Labs: GPU Slicing, vLLM & Guardrails
| # | One-Line Question | One-Line Answer |
|---|---|---|
| 1 | What is the structural difference between GPU Time-Slicing and NVIDIA MIG (Multi-Instance GPU) on an A100/H100 GPU? | Time-Slicing shares one GPU via context-switching with zero memory/fault isolation; MIG physically partitions silicon into up to 7 hardware-isolated GPU instances with dedicated VRAM. |
| 2 | What breakthrough memory technology in vLLM eliminates 60โ80% of GPU VRAM waste during concurrent LLM serving? | PagedAttentionโit splits the attention KV Cache into non-contiguous virtual memory blocks, eliminating contiguous memory fragmentation and enabling Continuous Batching. |
| 3 | Why must you autoscale vLLM pods with KEDA on vllm:num_requests_waiting and vllm:gpu_cache_usage_perc instead of GPU VRAM %? |
vLLM pre-allocates 90% of GPU VRAM at startup (so VRAM % is permanently constant at 90% even when idle). |
| 4 | What two core latency SLIs define user experience in streaming LLM inference? | TTFT (Time To First Token < 500ms) and ITL / TPOT (Inter-Token Latency / Time Per Output Token < 30ms/token). |
๐๏ธ Enterprise High-Concurrency Sizing, 3-Tier K8s & Capstone
Enterprise Lesson 3, Lesson 11 & Capstone
| # | One-Line Question | One-Line Answer |
|---|---|---|
| 1 | Why must a Kubernetes livenessProbe never check downstream dependencies like PostgreSQL or Redis connectivity? |
If the database blips for 3 seconds, every microservice podโs livenessProbe fails simultaneously, restarting all pods at once in a catastrophic Cascading Restart Storm. |
| 2 | State Littleโs Law (L = ฮป ร W) and explain its impact when downstream latency W jumps 10ร. | Concurrency L equals arrival rate ฮป ร latency W; if latency W jumps 10ร, required active threads/connections L instantly explodes 10ร at the exact same RPS! |
| 3 | What is the PostgreSQL / HikariCP mathematical formula for sizing optimal active database connections per database server? | Optimal Connections = (CPU Core Count ร 2) + Effective Spindle Count. |
| 4 | What causes AWS RDS Proxy Connection Pinning, silently disabling transaction multiplexing? | Executing session-level state (SET variables, prepared statements, temporary tables, or advisory locks) pins the client to a dedicated backend connection. |
| 5 | Trace the complete end-to-end flow of the Self-Service Cloud Engine Capstone in one sentence. | Backstage Scaffolder opens a Git PR โ Checkov/OPA validates policy โ ArgoCD ApplicationSet syncs manifests โ Crossplane KCL provisions AWS RDS/S3 โ ESO/Vault injects secrets โ Cilium + Karpenter runs the workload. |