Expansion · 01 of 03 · The shape

One catalog, many places to run

A developer asks for a kind of service, never for a cloud. The platform builds it once and the deploy stage decides where it goes, so a new place to run is a new branch at the bottom, not a new platform.

One catalog, many places to run Four rows. Who asks: a Backstage form (a scaffolder template), Tower, an agent using the same typed API, or a pull request with an XR file in git. Any caller reaches the same API, Airframe's catalog.hangar.io group, which holds the container app APIs (Python, Go, Node and Spring Boot) and, highlighted as new, the function APIs, LambdaFunction and AzureFunction. Both take the same build path in Glidepath: one build, from a Containerfile to a signed OCI image, then deploy.target, one gate in the deploy stage, also new. It picks where the service runs: k8s-rollout, an Argo Rollout in the cluster, which was there before, and three new cloud targets: aws-ecs updates an ECS service, aws-lambda copies the image to ECR and then updates the function, and azure-container-apps updates a Container App, which is also how Azure Functions are hosted. WHO ASKSAIRFRAME · CATALOG.HANGAR.IOGLIDEPATH · BUILD ONCEWHERE IT RUNSBackstage forma scaffolder templateTowerthe developer viewAn agentthe same API, typedA pull requestan XR file in gitANY CALLER, THE SAME APIContainer app APIspython · go · node · spring bootFunction APIsLambdaFunction · AzureFunctionTHE SAME BUILD PATHOne buildContainerfile to OCI image · signeddeploy.targetone gate in the deploy stagek8s-rolloutan Argo Rollout, in clusteraws-ecsupdate an ECS serviceaws-lambdacopy to ECR, then updateazure-container-appsapps and Azure FunctionsKubernetes is where the platform lives, not where every workload has to.LEGENDWho asksThere beforeNew, Oct 3 and 4, 2026Picks the target

Same front door

A form, Tower, an agent and a pull request all create the same kind of resource. Adding a function changed none of them.

Same build

A function is a container image too. It reuses the Containerfile, the signing and the release records every app already had.

A new branch, not a fork

Each cloud target is one Task behind one gate. Tower files it by its target and shows the cloud variant of the Deployments tab.

Hangar · Airframe · Expansion