Open fxi opened 5 years ago
Good flow chart, and this is a useful way to conceptualise the problem. I have to ask:
Is there one way that you're leaning towards, without knowing anything about your user base?
Do you know the OS breakdown of the users of the programme?
Do you know how often people are updating the programme?
Do you know how many people are downloading AccessMod in a month?
I'll preface this next comment by admitting that I've only heard of these terms in the abstract, and never have considered the full ramifications of using either. I'm only writing a clarification post to ensure that the terms are clearly defined.
Just to clarify/keep things simple, here's what I believe you're defining your terms as. Is this how you conceptualised it in the flowchart above?
"Dockers" are an instance of containerization that isolates the app within its own software box, and basically ships all dependencies along with the software of interest.
In contrast, VirtualBox implementation (i.e., virtualization)) creates a virtual machine (i.e., extra OS) that runs on top of the host OS.
AccessMod has some challenging constraints :
The current solution was to build a web app and ship it inside a Linux-based virtual machine. The interface is visible in any web browser.
AccessMod updates are provided as patches and only diffs are transferred : it's very efficient, but sometime unstable without supervision.
The main issue with that approach is that updating the dependencies is not possible unless providing a new virtual machine.
The solution is to use a "container" system to "ship" AccessMod : dependencies update and AccessMod update will be shipped as precompiled "layers". The updates will be heavier to transfer via the network, but not as much as a full virtual machine (current optimized size : ~700MB).
This approach could provide a big improvement on the application performance and also a big improvement on the storage issue users are experiencing.
The issue is that docker is not well supported on all operating systems. To have a better view on what this implies, here is a flowchart on the different options :
Note: to be completed with alternatives such as Singularity, Vagrant boxes or any other system that could solve our issues.