oh god i felt this one. Devs too busy, incompetent or just plain lazy to figure out why their code is so slow, so just have ops throw more CPU and memory at it to brute force performance. Then ops gets to try to explain to management why we are spending $500k per month to AWS to support 50 concurrent users.
The sad thing: Throwing hardware at a problem was actually cheaper for a long time. You could buy that $1500 CPU and put it in your dedicated server, or spend 40 developer hours at $100 a pop. Obviously I'm talking about after the easy software side optimizations have already been put in (no amount of hardware will save you if you use the wrong data structures).
Nowadays you pay $500 a month for 4 measly CPU cores in Azure. Or "less than 1 core" for an SQL Server.
Obviously you have a lot more scalability and reliability in the cloud. But for $500 a month each we had a 16 core, 512 GB RAM machine in the datacenter (4 of them). That kind of hardware on AWS or Azure would bankrupt most companies in a year.
Well, having been on the other side, sometimes the Dev is also trying to fight the good fight whilst having to use some crap 3rd party system/library that's imposed from above because somebody at the C-suite level after suitably dinned and wined (and who knows what more, including implied or even explicit promises for the future of their career) signed a massive agreement with one of the big corporate software providers so now those of us at the coalface have to justify to money spent on that contract by using every POS from said big corporate software provider.
I mean, I might be exagerating the overtly corrupt nature of the deal (in my experience its more a mix of CTO incompetence - or being pretty much powerless at the C-Suite level because his is not the core business, hence overriden - and the high-level management trading favours using company money and more for personal rather than corporate reasons) but even competent devs that know their thing can't really do much when they have to use a bug-riddled POS massive framework from some vendor that doesn't even have proper support, for "corporate reasons".
I got somebody at the C-suite level fired after I presented evidence of him wining and dining with a shit supplier (actually being buddy buddy and literally dining with him on a weekly basis), also for not knowing the consequences of his decisions and also for him bring unable to keep his hands off employees below him (me included).
Within 3 months there were 5 severe complaints against him with the CEO and humans resources.
The company had whistleblower protections but obviously fired me for my troubles as well anyway.
I don't care, the fucker was evil and the company honestly too and I'm happy I'm gone there.
We worked with a business unit to predict how many people they would migrate on to their new system week 1-2 … they controlled the migration through some complicated salesforce code they had written.
We were told “half a million first week”. We reserved capacity to be ready to handle the onslaught.
Do you mean that it's still the case that more resources are allocated than actually used or that the code does not need to be optimized anymore due to elastic compute?
Yeah, almost certainly the software only uses 4GB because it limits itself to what memory it has available.
I have seen this conversation pan out a few times already. It has always been because of that, and once expanded things work much better. (Personally I have never took party at one, I guess that's luck.)
Flip side of the coin, I had a sysadmin who wouldn’t increase the tmp size from 1gb because ‘I don’t need more than that recommended size’. I deploy tons of etl jobs, and they download gbs of files for processing to this globally known temp storage. I got it changed for one server successfully after much back and forth, but the other one I just overrode it in my config files for every script.
Yeah python does lack in such things. Half a decade ago, I setup an ml model for tableau using python, and things were fine until one day it just wouldn’t finish anymore. Turns out the model got bigger and python filled out the ram and the swap trying to load the whole model in memory.
Look I don't "think" that was me this last few weeks. I'm pretty sure my support engineer butt was smart enough to check resources before blaming RAM...
But it totally could have been me, and in that case I blame dev.