How to migrate KBToolbox container components in separate servers

Good day,

We already have a working KoboToolbox server running on MS Azure. The whole production server is loaded on a virtual machine with a Docker container, where all the web server, file storage and database reside.

We use KoboToolbox from time to time on our data collection activities, but there will be varied times within the year when users are not accessing the application. The virtual machine instance in the cloud runs 24/7 even if no one’s using it. Also, during peak usage, we would oftentimes resize our VM into a bigger size so that more people can access the server. All of these leads to increased cost in our Azure subscription.

We are looking at separating all the components and migrate them into different servers or managed instances in our cloud subscription in Azure. Our idea is to separate the web server, the file storage, the database, and other KB components. Ideally, we also would like to have the web server autoscale during peak periods and some load balancing done.

I would like to ask some guidance or best practices on how to migrate all the KB components from a container deployed in one virtual machine instance into several hosts, so that we can both make our KB application more accessible/autoscalable while at the same time minimizing costs. Your guidance may need not be Azure-specific, but can be applicable to any cloud service provider. A step-by-step guidance will be very helpful. Appreciate your support.

Regards,

Joel