Production Infrastructure Guide
Setting up production infrastructure requires decisions about compute, data storage, networking, deployment, monitoring, and backup strategy. This guide covers each decision and presents a configuration that works for most applications.
The goal is infrastructure that is reliable, maintainable, and cost-effective. Not the simplest setup, not the most complex -- the right level of investment for the requirements.
Recommended Stack
Most applications can run on four resources:
- One server for the application and reverse proxy
- One managed database for persistence
- One object storage bucket for file assets
- One backup schedule for data protection
This stack handles millions of requests per month. Each component can be upgraded independently.
Infrastructure Configuration
Apply the configuration once. The resources remain until explicitly destroyed.
Monthly Cost
| Resource | Plan | Monthly cost |
|---|---|---|
| Server | standard-2 | $18 |
| Database | starter (Postgres) | $12 |
| Object storage | 50 GB | $2 |
| Backup | 50 GB | $1 |
| Total | $33/month |
Deployment
With infrastructure provisioned, application deployment is handled through a script or CI pipeline. The script builds the application, transfers the image to the server, and restarts the containers. For teams that prefer CI/CD integration, the same commands can run in any pipeline that supports SSH and Docker.
Monitoring
Production infrastructure requires monitoring. The minimum viable setup consists of:
- One HTTP health check that alerts on failure
- One disk usage alert
- Centralized log collection from stdout
Puchify provides built-in metrics collection and alerting for all resource types. Configure alert thresholds through the web UI or API.
Scaling
As traffic grows, the stack scales vertically without architecture changes:
- Upgrade the server plan for more CPU and RAM (zero downtime with proper load balancing)
- Upgrade the database plan for more connections and throughput
- Add read replicas for read-heavy workloads
- Add a load balancer and a second server for high availability
Each upgrade is a parameter change, not a rearchitecture. The Terraform configuration can be updated and reapplied to modify any resource.
Backup Verification
Snapshots alone are not a backup strategy. Restore verification is required. Puchify supports restoring backups to new or existing resources, enabling regular restore testing. Schedule regular restore verification as part of operational routines. A backup that cannot be restored has no value.
Next Steps
Create an account, provision the recommended stack, and deploy an application. Each component can be adjusted as requirements evolve. The API, CLI, SDKs, and Terraform provider all work with the same resources and the same authentication.