Hi, I'm Arsalan 👋
- Arlington, Virginia → Manchester, England. Born in the first, raised in the second, and travelling ever since — 42 countries so far (spin the globe below).
- Linux & Perl since age 10. My first production workloads were Quake 3 and Counter-Strike 1.6 servers — uptime mattered, the players made sure of it.
- Biomedical engineer by education, specialized in hip replacements — then retrained as a container specialist. Same trade, honestly: replace the worn parts before they fail, with less paperwork.
- The route here: a few years as a datacenter sysadmin — I've commissioned server rooms with hot/cold aisle containment — then DevOps: running Kubernetes for Harvard, shipping 5G cores on Kubernetes for major telcos at Rancher/SUSE, and since 2023, OpenShift Solution Architect at Red Hat.
- I still run my own datacenter on OpenShift Virtualization: 3× R630, an R730xd, an R730 with 2× Tesla P40s, pfSense out front, and about 1 TB of DDR4 across the fleet. Old habits.
The travel log
Red pins are the origin story; every dot is a stamp in the passport.
Why not just a Route and HAProxy?
Ingress moves bytes. LLM serving needs opinions — that's why there are two extra layers.
A gateway in front, a serving platform underneath
What each layer gives you, in current releases
- One OpenAI-compatible API in front of every model — self-hosted on the cluster or SaaS providers (OpenAI, Anthropic, Bedrock, …).
- Keys stay server-side. Apps get one URL and one token; provider credentials live only in the gateway.
- Rate limits per endpoint — a team that burns its budget gets a polite 429, not a surprise invoice.
- Routing is config, not code. Swap or fail over the backing model by editing the gateway, never the apps.
- Usage & cost visibility — every request is logged and attributable.
- Model serving as YAML. One InferenceService per model — declarative, GitOps-friendly.
- Autoscaling including scale-to-zero (Knative serverless mode): idle models cost $0 in GPU.
- Canary rollouts — canaryTrafficPercent splits traffic between the last-good and the new revision.
- Many models side by side, each its own service; vLLM is the LLM runtime of choice.
- Model storage from S3, URI, PVC, or OCI images ("modelcars").
Each layer is one small YAML file
endpoints:
- name: chat
endpoint_type: llm/v1/chat
model:
provider: openai # any OpenAI-compatible backend…
name: granite-8b
config:
openai_api_base: https://granite-8b.ai.svc/v1 # …like vLLM on KServe
openai_api_key: $GRANITE_KEY # stays server-side
limit:
renewal_period: minute
calls: 100 # over budget → polite 429
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
name: granite-8b
spec:
predictor:
minReplicas: 0 # scale to zero when idle
canaryTrafficPercent: 10 # 10% to the new revision
model:
modelFormat:
name: vLLM
storageUri: oci://registry.example.com/granite-8b:1.3
resources:
limits:
nvidia.com/gpu: "1"
That's the whole trick: the gateway's YAML decides who may call what; KServe's YAML decides how it runs.
Press play: a chat request wakes up the whole stack
Ten steps, one request. Numbers are illustrative; the mechanics are what ships today.
The gateway layer is consolidating: Praxis & Red Hat AI Gateway
Today the "AI gateway" story is several products standing in a trench coat. The plan is one front door. Dashed boxes are roadmap, not releases.
- Connectivity Link (Kuadrant) — gateway policies: auth, rate limits (GA)
- MaaS on OpenShift AI — model gateway: quotas, API keys (GA)
- llm-d — distributed inference, cache-aware routing (Tech Preview)
- MCP gateways — agent tool discovery (emerging)
- Praxis replaces MaaS / IPP in Tech Preview, acting as backend proxy
- Envoy + Kuadrant operate in front of Praxis
- Connectivity Link is rebranded to Red Hat AI Gateway
- Next target for Praxis: llm-d
- Praxis goes GA on MaaS / IPP functionality
- Praxis goes GA on llm-d — a supported llm-d gateway option
- Praxis goes GA on MCP Gateway, incl. tool discovery
- Praxis + Kuadrant at ingress — for all AI workloads
- One gateway: RHCL · MaaS · llm-d · MCP
⚠ Objects in this roadmap are less stable than they appear. Verified August 2026 — names, dates and scope shift fast. Treat as direction, not commitment.
If you remember three things
KServe is the engine, and it's GA today. Autoscaling to zero, canary rollouts and vLLM runtimes — in the current OpenShift AI release, driven by YAML.
Never point apps straight at models. A gateway — MLflow AI Gateway is a lightweight way in — gives you one API, central keys, quotas and a cost story.
Watch Praxis. Red Hat's gateway pieces — Connectivity Link, MaaS, llm-d, MCP — are converging into one AI Gateway at ingress.
Questions? You have five minutes, and I have opinions.