Let me explain! Back in the day we used deploy using Capistrano, and quite everything we needed was on one server. It was terrible. The servers were often poorly configured, and was hard to scale. Quite often servers would run out of storage, or require someone on call to maintain them.
Then we got a bit smarter, and moved things like the Database/Redis/Storage onto their own servers. Then we'd deploy our app to one or many servers. It was better, but we still had to maintain & scale servers.
What Heroku allowed, is really easy way to get away from those servers. They handle it, we just give them the code. This meant we could independently scale parts of our app & not have to worry about the as much.