Help hosting multiple containerized applications on low-cost infrastructure.
I’m running into an infrastructure problem, and I though you might have some fun ideas for it.
Recently, I started a consulting agency which specializes in digital presence. We offer web development services for WordPress and Ghost.
Because this business took off faster than expected, I failed to do what any reasonable system architect would have done by implementing reliable and scalable infrastructure.
The current deployment workflow is as follows:
- Use a LEMP or Ghost one-click app to deploy a droplet for the client.
- Configure NGINX.
- Develop the website.
- Optimize and Secure NGINX & PHP.
- Configure the DNS on the clients domain to point to the droplet.
This is an awful solution for many reasons, the most important of those being:
- There is no High Availability or Resiliency built in.
- It scales poorly.
- Consumes too much time.
- Way more expensive than it needs to be.
How can the infrastructure be designed in a way that solves the problems listed above?
I’ll start by suggesting that there doesn’t need to be a separate MySQL database for each client. The database infrastructure can be separated and load-balanced to serve all of the clients.
I would also suggest that NGINX, PHP-FPM, and Wordpress/Ghost could be containerized so that instead of deploying a new droplet for each client, a new container is launched on a much larger droplet.
I’m interested in seeing what practical and fun ideas you come up with to solve these problems!