-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Push for stateless software design #49
Comments
Thanks for the inputs @agowa338. Most of the notes you made are not technical implementations on the platform, but design patterns that developers should be following. We have a bunch of documentation and developers tools to support that - although we can always improve on these. |
This issue has been open for 30 days with no updates. |
3 similar comments
This issue has been open for 30 days with no updates. |
This issue has been open for 30 days with no updates. |
This issue has been open for 30 days with no updates. |
Per my previous comment, we're looking into a solution such as common package manager for Windows Containers. However, we don't have a timeline at this moment. |
Currently stateless software is more the exception than the norm within the windows ecosystem. For windows containers this is quite a challenge to overcome, as containers are not designed for stateful software. They are basically a tool to package an application without it's data. Therefore by design the application needs to be stateless and being able to resume from just it's database/files. For an upgrade it needs to be able to work with the files of the previous version, as the old version is just terminated and the application in the newer version is pointed towards the old files and started.
If one tries this with most windows software currently it just fails to start.
Therefore more in terms of educating developers and shifting best practices towards stateless software design within the windows ecosystem needs to be done. Compared with linux where every application works (or can be made working using a shart startup script), windows has still to catch up.
As an example, a container with ubuntu can run a whole desktop environment, one is running xrdp and another a custom web application that allows users to spawn there container/desktop environment and finally another one is running guacamole for html5 based rdp. Now the customer has a full vdi infrastructure within 4 containers (working on e.g. 2gb of ram and 2 cpu cores on any cpu architecture) and is able to login either via html5 or native rdp. Where as Windows requires a hypervisor and much much much more resources in general. In the linux example the root filesystem within the container can be mounted read only with the actual /home of the user being persistent. Now if the base container updates everything still continues to work for the user. Where as in the windows world applications start to bail out because they expect being able to do the resource/configuration version update within the installer/updater and not upon startup.
Therefore I'd like to see the following design goals/principals to be pushed more by microsoft:
The text was updated successfully, but these errors were encountered: