- Features
- Pricing
- English
- français
- Deutsche
- Contact us
- Docs
- Login

Cloud platforms are built to make shipping software easier. Yet, before the first feature is written, many teams lose days, or entire sprints, assembling cloud primitives: CI pipelines, permissions, networking rules, runtime versions, environment wiring, the list goes on. This work is usually framed as “setup,” something to get out of the way before real development begins.
The problem is that it never actually goes away. What starts as a one-time effort quietly becomes a recurring tax on delivery speed, focus, and confidence.
Before a single line of product code gets written, most teams burn an entire sprint setting up infrastructure. This "Sprint 0", sometimes explicit, sometimes informal, consumes roughly ten days of full-team time on average: Jenkins files, CI/CD pipelines, networking rules, environment provisioning, before any product work can start.
This time rarely shows up in delivery metrics. It's treated as necessary overhead, not something to question or optimize.
What makes it especially costly is that the effort isn't additive. It doesn't make future work meaningfully easier. Instead, it establishes a baseline of configuration that must now be understood, maintained, and adjusted as the application evolves.
From that point on, every sprint carries hidden infrastructure work with it:
None of these ships features.
Cloud primitives create a specific kind of toil: work that feels temporary, but becomes permanent.
Build pipelines need tuning. Environment variables drift. A new dependency requires a runtime change. A staging environment behaves differently from production. A hotfix works in one place but not another.
None of these tasks is particularly complex in isolation. But they reappear frequently, often unexpectedly, and usually at the worst possible time: during a release, a demo, or an incident.
This is why infrastructure tasks disproportionately slow feature delivery. The cost isn’t just the time spent doing the work. It’s the interruption. Each task forces developers to context switch, reconstruct mental models, and re-establish confidence before they can return to product logic.
Over time, teams end up maintaining a parallel system of infrastructure knowledge that lives partly in configuration files and partly in people’s heads. That knowledge becomes fragile as teams grow, change, or rotate responsibilities.
Terraform and Kubernetes are powerful tools built for infrastructure engineers, people whose job is to think about state management, declarative resource graphs, and reconciliation loops all day. Application developers have different priorities and different mental models. Kubernetes is a framework, not a platform. Asking developers to build the platform themselves comes at a high cost
The hardest part is not syntax. It is reasoning about impact. To use these tools safely, developers must understand:
Partial understanding is dangerous. Many outages come from “almost right” changes:
The question is not whether infrastructure matters. It does. The question is who should be responsible for what:
Application developers should not need to manually think about: how many instances to run or which IAM policy allows a simple service call, etc. These are platform concerns. Modern platforms should handle them automatically and transparently, with guardrails instead of choices. Guardrails reduce errors by removing decisions that do not add product value.
The ideal workflow is almost boring. Write code. Push to Git. Get a working environment that matches production. Not debugging YAML indentation at 4 PM on a Friday.
The common thread across these issues isn’t tooling choice. It’s how environments are constructed.
When environments are assembled from low-level primitives, every change becomes a bespoke decision. Every new service, branch, or configuration tweak adds another variable developers need to think about, reason about, and remember.
Over time, infrastructure stops being a foundation and becomes a constant tax on delivery. Teams spend more time maintaining the conditions for development than actually developing.
The teams that move faster aren’t necessarily using fewer tools or simpler stacks. They’re working with environments that behave predictably, are created the same way every time, and don’t require developers to reason about infrastructure mechanics just to ship code.
When environments are standardized, much of this work doesn’t disappear through automation alone. It disappears because it stops being a decision developers need to make in the first place.
And that’s where real developer time is quietly won back.
Upsun is built around a simple idea: infrastructure should follow your code, not the other way around. Instead of managing Terraform modules, Kubernetes manifests, and cloud provider consoles, you define everything in a single configuration file that lives in your Git repository.
Upsun ties infrastructure directly to Git. Every branch becomes a complete, isolated environment: database, services, and configuration are created automatically when you push and removed when you merge or delete.
This simple model eliminates problems that plague traditional setups:
Instant production clones with real data
When you branch an environment, Upsun creates a byte-level clone of everything: databases, files, services, storage, and configuration in minutes. Your preview environment isn't an approximation. It's production with a different URL.
This changes how teams work:
Faster delivery loops with CLI and API workflows
One of the biggest slowdowns in cloud workflows is waiting. Waiting for pipelines, environments, approvals, or simply to see results. CLI and API-driven workflows reduce this friction. Actions that should take seconds often take hours because they depend on manual steps or UI flows.
With Upsun, developers can:
Fast feedback changes behavior. Developers ship smaller changes, test more often, and take fewer risks because recovery is simple.
Managed services without the management
In traditional cloud setups, adding a database means configuring IAM roles, setting up security groups, creating VPC endpoints, and managing connection credentials. Every service multiplies the complexity.
Upsun makes services declarative. Add PostgreSQL, MariaDB, Redis, Elasticsearch, MongoDB, RabbitMQ, Kafka, or any supported service to your configuration file, and Upsun provisions it automatically. No IAM policies. No networking rules. No connection strings to copy and paste: credentials are injected as environment variables at runtime.
Flexible scaling without the guesswork
Traffic doesn't arrive on schedule. Manual scaling requires predicting patterns and adjusting resources ahead of time, often leading to over-provisioning during quiet periods or scrambling during spikes.
Upsun scaling handles this automatically:
Define your thresholds, and Upsun handles the rest.
Configuration stability
Terraform and Kubernetes configs require constant upkeep. Version upgrades break syntax. Deprecations force rewrites. Teams spend days updating infrastructure code that already works. Upsun takes a different approach: configuration stability is a design principle, not an afterthought.
Configuration files written years ago still deploy today. Platform upgrades don't introduce breaking changes. The YAML you write now will work the same way next year and the year after.
Migrating without rewriting everything
Migration fear is normal. Teams picture months of refactoring, rewritten pipelines, and broken deployments. The reality is simpler than it looks.
With Upsun, your application code stays the same. Your language, framework, and dependencies don't change. Your CI tools keep working. What changes are where infrastructure is defined, a single configuration file replacing scattered Terraform modules, and cloud console settings.
If cloud primitives are already part of your daily workflow, the next step isn’t learning more tools. It’s noticing where time quietly leaks out of delivery: waiting on environments, re-tuning pipelines, second-guessing configuration, or avoiding changes that feel risky.
Teams that reduce this friction don’t eliminate infrastructure. They standardize how environments behave, so developers can focus on shipping code instead of managing conditions.
If you’re exploring how standardized, predictable environments fit into your workflow, start by looking at how your environments are created, reviewed, and reused today and where they force developers to make decisions they shouldn’t have to make anymore.
Join our monthly newsletter
Compliant and validated