Skip to content

Introduction

Pilum is a cloud-agnostic build and deployment CLI. Define your service once, deploy to any cloud provider.

Terminal window
pilum deploy --tag=v1.0.0

Think “GoReleaser for multi-cloud deployments” — Pilum handles the build → push → deploy pipeline while your infrastructure-as-code (Terraform, Pulumi) defines the actual resources.

Why Pilum?

ChallengePilum Solution
Provider lock-inSwap between GCP ↔ AWS ↔ Azure by changing one line
Slow sequential deploysParallel execution with worker queues
Complex CI/CD scriptsDeclarative YAML recipes
Per-provider validation codeRecipe-driven validation — no Go code per provider

The Cooking Metaphor

Pilum uses a cooking metaphor to keep things intuitive:

  • Recipes (recepies/) — Deployment workflows with required fields and ordered steps
  • Ingredients (ingredients/) — Cloud-specific command generators
  • Services — Your applications, discovered via pilum.yaml files

Features

  • Recipe-driven deployments — Define reusable deployment workflows in YAML
  • Recipe-driven validation — Each recipe declares required fields, no Go code per provider
  • Multi-cloud support — GCP Cloud Run, AWS Lambda, Azure Container Apps, Homebrew, and more
  • Parallel execution — Deploy multiple services concurrently with step barriers
  • Step filtering — Run only build steps, only deploy steps, or custom tag combinations
  • Dry-run mode — Preview commands before executing

How It Works

  1. Discovery — Pilum finds all pilum.yaml files in your project
  2. Validation — Each service is validated against its recipe’s required fields
  3. Matching — Services are matched to recipes based on provider field
  4. Orchestration — Steps execute in order, services run in parallel within steps
Step 1: build
├── api-gateway ✓ (1.2s)
├── user-service ✓ (0.9s)
└── payment-service ✓ (1.1s)
Step 2: push
├── api-gateway ✓ (2.1s)
├── user-service ✓ (1.8s)
└── payment-service ✓ (2.0s)
Step 3: deploy
├── api-gateway ✓ (3.2s)
├── user-service ✓ (2.9s)
└── payment-service ✓ (3.1s)

Next Steps