Skip to content
All posts
6 min readPuchify Team

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:

    1. One server for the application and reverse proxy
    2. One managed database for persistence
    3. One object storage bucket for file assets
    4. 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
Costs scale with resource size. A standard-1 server costs $12/month. A nano database costs $8/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:

    1. One HTTP health check that alerts on failure
    2. One disk usage alert
    3. 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:

    1. Upgrade the server plan for more CPU and RAM (zero downtime with proper load balancing)
    2. Upgrade the database plan for more connections and throughput
    3. Add read replicas for read-heavy workloads
    4. 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.