The biggest challenge when you have on-premise infrastructure is battling managers to get an additional server.
I have seen managers laughing at my team leader when he asked for a server to do some QA. We needed the server to perform some tests for a critical product. They even had the audacity to say "Hey Manager Bob, how long have you asked for a server?" Manager Bob answered "It's been month's now"
Granted I think that's an extreme example but I don't doubt it was a common occurrence back in the day. Now I also have worked on enterprises where asking fora server (Or RAM increment in a given server) is as easy as submitting a ticket and waiting for a FEW DAYS.
Cloud is more expense on the long run, but it sure gives you agility to do things.