Still cheaper, easier and better than any team's infra I've seen to date.

Usually there's some junk on DO or AWS, only a couple guys know where anything is. "Cheaper" because we don't track time lost to "what instance is <environment>.<app> on?" "How do I <dead simple task> without <toppling house of cards>?"

Team A: had lots and lots of sites all on a single dedicated 2U rack server at a call-for-pricing provider, didn't really understand how to run it or that they had other options. Disk controller failed in a way that trashed the journal on the databases' volumes. They got a weekly backup restored but customers were furious. I had to explain that moving things to the "cloud" in the form of a single big VPS wasn't magically going to prevent similar risks.

Team B: had 1 app, could have been a single dyno most of the time, scaled to 2 ahead of media announcements and the like (not worth considering/mo) and testing / staging environments could have been spun up with activity/on feature branches, so sub 100 bucks. Instead had 2 VPS (live/everything else) for only tens of bucks a month, but "dev-ops" guy never really completed or got assigned sprint tasks because he was too busy smelling like gunpowder and patching up holes in his feet.

Team C: Big multi-tenant monolith-app on a dedicated rack at a call-for-pricing, wanted to figure out autoscaling, continuous deployment, review apps (every feature branch has an environment so you're not prematurely integrating code to get it deployed to a single bottle-neck staging branch+environment) how to bring up new apps (break tenants out to their own environments so they stop having noisy neighbor problems) etc so they could spend more time delivering value to the customer than having to ssh into things and running down checklists. They picked AWS, ansible, docker, kube -- everything "hip". Year later I think they're still "working on it".

Team D: Enterprise, Everything is at central IT, we write apps with nice search features but IT doesn't want to learn how to spin up elastic search, so we get to write bastardized slow and less usable version. Meanwhile we're trying to figure out AWS, but everything's just pets managed by hand in the web console! We burn lots of money on people forgetting to shut down one-off instances and other people not having any info about what all of them are enough to clean up.

Team E: "Knows what they are doing", hundreds of apps and services, owns their own top of the line hardware with a dedicated NOC team, those salaries actually amortize across each project pretty well, automates the hell out of everything with Puppet, doesn't bother with virtualization, they have the engineering resources to write code that manages real apps on real OSes on real hardware. However, most of that hardware sits with 50% RAM utilization and 5% CPU utilization. Day-to-day operations are smooth and very cheap but they way, way overspend on capital (hardware and automation code).

Team F: Team E but nothing is automated or smooth, everything is virtualized and they spend too much on ops contractors getting paged at night to resize a 4gb LVM volume on a 20TB storage array (19TB free) because it got half-full of unrotated logs, or because a build box had two builds going at once and load average went above some silly arbitrary threshold.

I'm a technologist but I hate watching tech organizations solve tech problems instead of business problems. I see lots of people doing the equivalent of drunk driving and complaining that Uber's so much more expensive than the gas.

Of course, if you need and can build a software development lifecycle comparable to Heroku Pipelines or a PaaS comparable to Heroku itself or a database service comparable to Heroku Postgres, a IaaS comparable to AWS/GCE, etc. down to the metal and the cost of your solution plus the capital investment amortizes somewhere below what those services cost, go do that. Plenty of folks are in that position and should of course do so.

Napkin math:
It takes a whole year of dyno hours before you begin to approach what it costs to waste a day of a developer's time, or a 1 hour meeting between eight of them about "what branch is on <environment> right now?"
It takes having a mean of 200 dynos running before you begin to approach what it costs to have a single ops salary.