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!
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.