Notes from the team building C3X. Cost estimation for Terraform, the economics of cloud infrastructure, and how to ship FinOps tooling without a SaaS gate.
GitLab CI bills compute minutes on shared runners (with a free allowance and cost factors by runner type), or you run self-managed runners on your own infrastructure. Caching, right-sized runners, and self-hosting for scale cut it. Here is the model.
Building container images consumes CI compute, and slow builds that rebuild everything waste minutes. Layer caching, small base images, and multi-stage builds cut build time and cost. Here is how.
Build artifacts, packages, and container images accumulate in storage, billed per GB, and unpruned artifacts grow the bill quietly. Retention policies, pruning, and tiering keep it flat. Here is how.
Feature flag platforms (LaunchDarkly, Split, and others) price by seats, monthly active users, or flag evaluations; self-hosted or open-source options trade that for infrastructure. Evaluation volume and MAU drive managed cost. Here is the model.
Application performance monitoring (Datadog, New Relic, and others) prices by hosts, ingested data, or usage, and it is a notoriously large observability bill. Host right-sizing, data filtering, and sampling cut it. Here is how.
Log platforms (Datadog Logs, Splunk, Elastic, Loki, cloud-native) price by ingestion, indexing, and retention, with very different models. Ingest less, index selectively, and tier retention to cut the bill. This compares the approaches.
Distributed tracing captures request paths across services, priced by spans or traces ingested, so high-traffic systems generate enormous volume. Intelligent sampling is the primary cost lever. Here is how.
Status pages communicate incidents and uptime to users, via hosted SaaS (per-subscriber or feature tiers) or self-hosted (open-source plus hosting). For most, hosted is cheap; self-hosted suits scale or customization. Here is the model.
A data pipeline's cost is the compute that ingests and transforms data, the storage it lands in, and the data transfer between stages. Processing only what changed, right-sizing compute, and efficient formats cut it. Here is how.
ETL transforms data on separate compute before loading it; ELT loads raw data into the warehouse and transforms there using warehouse compute. Which is cheaper depends on your warehouse pricing and transformation load. Here is the tradeoff.
Streaming processes data continuously for low-latency freshness, keeping compute always running; batch processes in scheduled bulk runs on transient compute. When data does not need to be fresh instantly, batch is far cheaper. Here is the tradeoff.
Data warehouse cost is compute (queries and transformations) plus storage, whether Snowflake credits, BigQuery bytes scanned, or Redshift nodes. Scanning less, right-sizing compute, and auto-suspend cut it. Here is how.
A data lake's cost is object storage (often huge volumes) plus the query engines that read it. Storage tiering, lifecycle policies, compaction, and efficient formats cut it. Here is how to keep a growing lake affordable.
Kafka cost is the broker compute, the storage of retained messages, cross-AZ replication transfer, and (if managed) the service premium. Retention, right-sized brokers, and tiered storage cut it. Here is how.
CDC streams inserts, updates, and deletes from source databases to downstream systems, priced by the volume of change data plus the connector compute. High-change sources and full-table snapshots drive the bill. Here is how to keep it lean.
Orchestration tools (Airflow, Dagster, Prefect, Step Functions) schedule and coordinate data workflows; the orchestrator itself is modest, but the tasks it runs are the real cost. Efficient tasks and right-sized orchestration cut it. Here is how.
Running Airflow costs the always-on scheduler, webserver, and workers plus the metadata database, whether self-hosted or on a managed service (MWAA, Cloud Composer) that adds a premium. Right-sizing and worker autoscaling cut it. Here is the model.
dbt transforms data with SQL in your warehouse; dbt Core is free and dbt Cloud has per-seat pricing, but the real cost is the warehouse compute your dbt models run. Efficient models and incremental builds cut it. Here is the model.
Reverse ETL syncs data from the warehouse into operational tools (CRM, marketing, support), priced by rows synced or per destination, plus the warehouse queries that extract the data. Sync frequency and volume drive the bill. Here is the model.
Data observability tools monitor data quality, freshness, and pipeline health, priced by tables or volume monitored plus the queries they run to check data. Scoping monitoring to critical data and efficient checks cut it. Here is the model.
Generating embeddings costs per token via an embedding model, and re-embedding large corpora or every query adds up. Caching embeddings, choosing right-sized models, and batching cut the bill. Here is how.
Fine-tuning a model costs training compute (GPU-hours) plus data preparation, and serving a fine-tuned model may cost more than a base model. Parameter-efficient methods and right-sized runs cut it. Here is the model.
AI agents make many LLM calls per task as they reason, use tools, and iterate, so their cost is LLM tokens times the loop length, plus the tools and infrastructure they invoke. Long loops and large context drive the bill. Here is how.
Prompt caching lets an LLM API bill repeated input context at a large discount after the first call, so a big shared system prompt or document sent many times costs far less. For repeated-context workloads, savings are substantial. Here is how.