Improving Deployment with Docker

What the Wappler did not so long ago in terms of a universal Docker machine that can be installed on any VPS server at all is amazing and wonderful. This frees your hands from the restrictions that were previously and may encourage you to transfer your nodejs projects to Docker hosting if you still use paid admin panels (Plesk/cPanel).

I suggest some improvements:

A Docker container with a database, as well as a container with Redis, are services that are global in nature, as well as Traefik and Portainer. They can serve all applications hosted on a single VPS. There is no need to deploy them for each application. Moreover, it is very expensive in terms of resources and a lot of database containers can simply kill the performance of your VPS. But more importantly (in the context of Redis), a lot of global service containers can create errors and failures in your applications:

What I suggest:

I suggest removing the database and Redis container deployment settings from the local settings of a specific application’s target and moving them to the Docker machine settings (the same place where you configure Portainer and Traefik). I suggest all global service containers that may appear in the future (for example https://github.com/minio/minio self-hosted analog S3) can also be deployed through the Docker machine settings.

Yes we are thinking to introduce a whole new “Infrastructure” or just “Servers” Manager panel where you can manage your servers, and select the global services to be installed per server. So you can select to install global services per server and then use them for your projects.

This is all fine if you have own servers management and you run multiple services per server. But sometimes you actually go the other way around and run a service that spans multiple servers with load balancing for example or in server cluster. So there the services is central.

Same is also if you use other dedicated services like digital ocean app services, heroku.
Also when running managed databases - those run in servers clusters too.

So a lot of different ways to approach.

3 Likes