Data Architecture Design track

dbt + Airflow + Snowflake Architecture

One design in three views. First the logical architecture: what each tool does and how a daily run flows. Then two physical deployments of the same design: a container platform on AWS, and plain Linux virtual machines.

For: data engineers, architects Prerequisite: basic SQL and dbt ~1.5 hours

The core idea

Load raw: Fivetran, Snowpipe→ Store + compute: Snowflake→ Transform as code: dbt→ Orchestrate: Airflow→ Serve: BI, ML, sharing

Each tool does one job. Snowflake stores the data and supplies compute. dbt only compiles SQL and sends it to Snowflake, so it needs very little CPU wherever it runs. Airflow decides when things run and what happens when they fail. Because of this split, the same logical design can be deployed in very different ways.

Chapters

Kubernetes or VMs?

Kubernetes (EKS)Linux VMs
ExecutorKubernetesExecutor: one pod per taskCeleryExecutor: Redis broker plus worker VMs
How dbt is installedBaked into one versioned Docker imageSeparate Python venv at /opt/dbt/venv
Release unitImage tag, rolled out with helm upgradeGit tag, rolled out with Ansible over SSH, serial: 1
Rollbackhelm rollback or the previous image tagRedeploy the previous Git tag
SecretsSecrets Manager plus IAM roles for service accountsVault or Fernet-encrypted connections, key file at chmod 600
Path to SnowflakePrivateLink VPC endpoint, port 443NAT egress with a static, allowlisted IP, port 443
ScalingAutomatic; scales to zero when idleAdd a worker VM
Good fitCloud-native teams with platform skillsData centres and ops teams without Kubernetes