A pragmatic checklist for shipping Laravel apps to the cloud
Queues, config, secrets, and observability without over-engineering day one.
Cloud migrations fail less often on “which provider” and more often on configuration discipline. Here is the short list we apply before go-live.
Configuration and secrets
- No secrets in the repository — inject via environment or a secret manager.
APP_KEY, DB credentials, and third-party tokens rotate with a documented process.- Separate staging and production credentials completely.
Queues and background work
Anything that can time out a web request belongs on a queue: emails, PDF generation, webhooks, imports. Run workers under a process supervisor and alert on failed jobs, not only on HTTP 500s.
Storage and CDN
User uploads go to object storage. Serve public assets through a CDN. Keep local disk ephemeral so instances can scale horizontally without sticky state.
Observability
Structured logs, request IDs, and error tracking (for example Sentry) should exist before marketing traffic arrives. Metrics for queue depth, DB connections, and p95 latency catch problems earlier than “the site feels slow.”
Ship the boring foundation first. Clever architecture without these basics is still fragile.