Skip to main content
Menu

Consultant and Platform Engineer

All labs

Cloud lab

Watch an environment deploy

A simulated Terraform run: a network, security groups, virtual machines, a load balancer, a database, storage and an alarm, created in the order they depend on each other. Switch between AWS and Azure, or replay it.

cloud-lab / production
StatusComplete
Resources12 / 12
Regionus-east-1
Elapsed0:15
VPCvpc-0a1b2c3d
Public subnetsubnet-0f31a9
Internet gatewayigw-04be71
Security group: websg-09ad3e (443 in)
VM web-01i-0e5f7a21
VM web-02i-0b92c64d
Load balancerapp-prod-1442
Private subnetsubnet-0c88d2
Security group: dbsg-07c4b1 (5432 from web)
Database (RDS)db-primary-7d3
Storage bucket (S3)assets-prod-4e1a
Alarm (CloudWatch)cpu-high-prod
terraform
$ terraform init
Terraform has been successfully initialized!
$ terraform plan
Plan: 12 to add, 0 to change, 0 to destroy.
$ terraform apply -auto-approve
aws_vpc.main: Creating...
aws_vpc.main: Creation complete after 1s [id=vpc-0a1b2c3d]
aws_subnet.public: Creating...
aws_subnet.private: Creating...
aws_security_group.web: Creating...
aws_security_group.db: Creating...
aws_s3_bucket.assets: Creating...
aws_security_group.db: Creation complete after 1s [id=sg-07c4b1 (5432 from web)]
aws_security_group.web: Creation complete after 1s [id=sg-09ad3e (443 in)]
aws_subnet.private: Creation complete after 1s [id=subnet-0c88d2]
aws_subnet.public: Creation complete after 1s [id=subnet-0f31a9]
aws_internet_gateway.main: Creating...
aws_instance.web[0]: Creating...
aws_instance.web[1]: Creating...
aws_db_instance.primary: Creating...
aws_s3_bucket.assets: Creation complete after 1s [id=assets-prod-4e1a]
aws_internet_gateway.main: Creation complete after 2s [id=igw-04be71]
aws_instance.web[0]: Creation complete after 2s [id=i-0e5f7a21]
aws_instance.web[1]: Creation complete after 3s [id=i-0b92c64d]
aws_lb.app: Creating...
aws_cloudwatch_metric_alarm.cpu: Creating...
aws_db_instance.primary: Creation complete after 3s [id=db-primary-7d3]
aws_cloudwatch_metric_alarm.cpu: Creation complete after 1s [id=cpu-high-prod]
aws_lb.app: Creation complete after 2s [id=app-prod-1442]
Apply complete! Resources: 12 added, 0 changed, 0 destroyed.
  • Encryption at rest on the database and storage
  • No public SSH; the web tier only accepts 443
  • Database reachable from the web tier only
  • Alarms wired to the on-call contact

This is a demonstration. The names, ids and timings are made up, and no real infrastructure is created.

How I build a platform

  1. Step 1

    Plan before anything exists

    The design is written first: network ranges, who can talk to whom, naming and tagging. The plan lists every resource to be created before a single one is.

  2. Step 2

    Build in dependency order

    Network, then security groups, then compute and data. Independent resources are created in parallel; anything that depends on another waits for it.

  3. Step 3

    Verify and hand over

    Encryption, ingress rules and alarms are checked against the design. The code, diagram and runbook go to the team that will run it.

Need an environment like this built for real?

Book a free 30-minute call