I have been thinking about how I could monetize Tonics (Tonics is a highly modular CMS, learn more), I ended up working on something I would like to avoid due to its complexity and security, which is a cloud offering, however, I have decided to give it a try with a twist so that I can sleep well at night.
Here are some of the features I am planning:
- Leverage VPS Provider API
- No SSH
- Each Customer or User gets their own VPS
- Better Architecture: At the heart of the architecture is the instance (server), in the instance, you can have several containers (I tried to go with docker, and while it is cool, my use case needs a system container, so, I went with LXD which is backed by Canonical), in each container, you can have several apps: PHP, Nginx, whatever.
- The LXD container provides a REST API, so, no ssh is needed, could use that to drive anything pertaining to the container securely, e.g, can add programs async, edit files, and do any day-to-day system activities, the container ensures if one container is compromised, it doesn't affect the others, though, each user gets their own VPS anyway, so, that doesn't really matter, just an added bonus.
Here is an example:
Say, you want to host 3 websites: You'll need at least, one server and 4 containers, 3 containers would be hosting their own lemp stack, and the 4th container would be the proxy that redirects the request to the container based on the website.
This is just an example, another use case of this pattern is load balancing, I can have one or several containers in Japan, one in Germany, and the other in Sydney, and load balance the request, you get the idea. There are lots of flexibility with this approach.
This is still a work in progress, here is what I have so far:
Again, this is a work in progress, so, the U.I might change, anyway, I would try to document the progress, I have the architectural diagram documented, so, all that is left is to implement it.
See you later.