Hosting custom software: cost, scaling and responsibility
Where custom software runs, what it costs to run, how it grows, and who is responsible for each layer.
The short answer
Custom software runs on a small set of managed services rather than on a server somebody looks after: a platform that runs the application and scales it with traffic, a managed database, object storage for files, a queue and workers for background jobs, and monitoring and error tracking around all of it. Each is billed by use, in your accounts, at the providers’ prices. Costs are dominated by the database and by anything that runs continuously; the application layer is usually the smaller line. Scaling is mostly configuration if the software was built stateless. And responsibility is shared: the provider runs the infrastructure, your partner runs the software and its operations, and you own the accounts and the decisions.
The pieces and what drives their cost
| Piece | What it does | What drives cost | Who is responsible |
|---|---|---|---|
| Application platform | Runs the code, scales instances with traffic | Requests, compute time, memory | Provider for the platform; partner for the code and its efficiency |
| Managed database | Stores structured data with backups and point-in-time recovery | Size, tier, connections, replicas | Provider for the service; partner for schema, queries, backups configuration |
| Object storage | Files and documents | Volume stored and served | Provider; partner for lifecycle and access rules |
| Queue and workers | Background jobs: emails, imports, reports, integrations | Worker time, job volume | Partner |
| Monitoring and error tracking | Knowing when something breaks | Volume of events, retention | Partner configures; you receive reports |
| Network layer | DNS, filtering, caching, certificates | Usually flat | Partner |
| Accounts | All of the above, in your name | You own; partner works inside |
Estimating and controlling cost
- Ask for an estimate at today’s usage and at ten times, per piece, at the providers’ published prices.
- Right-size the database: the largest single line and the easiest to over-provision.
- Move continuous work to scheduled or event-driven jobs where possible, so nothing runs idle.
- Cache what is read often and changes rarely.
- Set budgets and alerts at each provider.
- Review monthly with usage next to cost; growth in one without the other is a signal.
Responsibility, written down
The provider is responsible for the infrastructure working: their servers, their network, their managed database being available. Your partner is responsible for the software working on it: deployments, monitoring, backups configured and tested, updates applied, performance, security configuration, and responding when something breaks. You are responsible for owning the accounts and paying the providers, deciding priorities, and telling the partner when the business changes. Each of those should be in the agreement by name, because the gaps between them are where outages live.
What this means for you
Run custom software on managed services in your own accounts, sized to today with a path to ten times, built stateless so scaling is configuration, with the database watched as the largest line. Write down who is responsible for each layer. Then growth is a billing conversation, outages have a named responder, and nobody in your business is looking after a server.
Frequently asked questions
Should we run our software on our own server?
Almost never. A server you run needs patching, monitoring, backups, capacity planning and someone awake when it fails, for a business whose business is not running servers. Managed platforms provide all of that, bill by use and scale on demand. The exceptions are specific regulatory or data constraints, and even those are usually met by managed services in the right region.
What does it cost to run custom software each month?
It depends on the pieces: application hosting scaling with traffic, a managed database sized for the data and load, storage by volume, background workers by time, plus monitoring and error tracking. The database and anything continuously running dominate. Ask for an estimate at current and at ten times current usage, in your own accounts at the providers' prices.
How does it scale if we grow?
If the software was built stateless, with the database and object storage holding all shared state, the application layer scales by running more instances, which managed platforms do automatically. The database is scaled by moving to a larger tier or adding replicas, which is configuration. Growth becomes a billing conversation rather than a re-architecture, provided that design was there from the start.