If you’re wanting to create solutions such as those offered by WPEngine, Pagely, and other successful operations, you’re going to need more than a single server. These companies operate rather complex clustered configurations that are setup for maximum redundancy.
To give you an idea of a very basic cluster setup, I’d aim for at least:
2x - 2GB - Load Balancers
4x - 8GB - Web Servers (NGINX / PHP-FPM)
4x - 8GB - Database Servers (MariaDB)
4x - 4GB - Caching Servers (Memcached or Redis)
2x - 0GB - Backup Servers
Why 0GB for the backup servers? You’d really need to map this out based on the storage you plan on providing your clients with. Given this is theoretical, it’s hard to make a guess for them.
How the above could work is simple. A request is made and hits the load balancers which then sends the actual request to the correct web server. The web servers connect to the database and caching servers to handle database access and certain aspects of caching that are better stored to RAM. Yes, that’s very basic, but essentially what happens.
When a visitor comes to a WordPress website, the load balancer sends the request to the correct web server. That web server accepts the request and displays the WordPress site which pulls its data from one of the master database servers as well as any cached data from the caching servers.
Is it really that simple? Not hardly. It takes time and hands to do the work and get such a configuration setup and running. Sure, you could use cPanel, though achieving a similar setup would be extremely hard to do and you’re vendor locked.
If setup correctly, future deployments per type can be automated using meta data (supported by DO), but you still have to double and triple check configurations, patch security holes, apply updates, etc.
That said, this is only the server side of things. Once you get the above setup, you need some type of software to bring it all together so you’re not manually creating entries across each server by hand.
All this said, this is a very basic overview and example. You need to be comfortable working from the CLI, you should know how to compile software from source (and not rely on package managers) and you should know how to diagnose and resolve problematic situations. Software will carry you a little, but don’t expect it to be an all-in-one solution that fixes everything for you.
Beyond the above, we’ve not even touched on proper security :-).