Vertical scaling is obviously easier because you don't need to refactor any code to take advantage of multiple servers and all the caveats that go with it. But with vertical scaling, you're limited by how big a server you can use and the degree to which your system can take advantage of a bigger server.
I'd add, in most situations, you can do both if infrastructure / money allow it. Bring on more servers horizontally, then scale them vertically as needed.
Steve Taylor
Software Engineer
Veritcal scaling: Using bigger server(s).
Horizontal scaling: Adding more servers.
Vertical scaling is obviously easier because you don't need to refactor any code to take advantage of multiple servers and all the caveats that go with it. But with vertical scaling, you're limited by how big a server you can use and the degree to which your system can take advantage of a bigger server.