Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
It sounds like you’ve got some solid options and already know the key differences between approaches.
Regarding option 1, does such a script or software already exist that will let me create virtual hosts and deploy a php application within it automatically at the click of a button?
I am sure there is but it’s not a complicated process since you can do some text replacement on a template and drop a file into apache’s configuration. In fact control panels like cPanel will often use an /etc/skel directory to set up new accounts which would allow you to pre-seed content but for a SaaS this would end up being overkill in my opinion.
I know option 2 could be done using a snapshot of a droplet and some custom scripts using the Digital ocean api.
Yes. It’s a pretty straightforward process but one droplet per account might not be cost effective unless you’ve got a pretty high markup on your pricing. I’ve built a couple SaaS/PaaS services in Ruby using this method.
Regarding Option 3 I’m all ears?
I agree that this is the most promising option giving you a good balance of separation from other users while utilizing the hardware resources more efficiently than option #2. You would need to decide whether you would also containerize your database services or whether you’d set up a large shared db cluster separate from your web app itself. Docker now has swarm built in by default so managing a cluster of multiple machines is easier. Shipyard might be a good tool to get more familiar with docker swarm (and manage it graphically) but you’ll still need to work out your signup/provisioning processes. There are likely libraries available to work with docker-swarm in php as well.
This comment has been deleted