Skip to content
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

Closed
agowa opened this issue Aug 24, 2020 · 6 comments
Closed

Push for stateless software design #49

agowa opened this issue Aug 24, 2020 · 6 comments
Assignees
Labels
developer Developer coding and development

Comments

@agowa
Copy link

agowa commented Aug 24, 2020

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:

  • Push the PackageManager WinGet more
  • Push steless software design concepts more. Most developers on windows don't know about steless design it seams.
  • This should be more popular among windows developers https://12factor.net
  • Get rid of the pet design within the windows ecosystem. And drive towards much more cattles based workloads (And finally drop the last pets).
@msjingli msjingli added the developer Developer coding and development label Aug 26, 2020
@vrapolinario vrapolinario self-assigned this Aug 26, 2020
@vrapolinario
Copy link
Contributor

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.
From the above, the actionable item is the package Manager. This is something we're currently looking into but nothing to share at this stage as we're in early stages of investigation.
We'll keep this issue open for now and update once we have a more concrete plan of action.
Thanks for the inputs!

@ghost
Copy link

ghost commented Oct 10, 2020

This issue has been open for 30 days with no updates.
@vrapolinario, please provide an update or close this issue.

3 similar comments
@ghost
Copy link

ghost commented Nov 10, 2020

This issue has been open for 30 days with no updates.
@vrapolinario, please provide an update or close this issue.

@ghost
Copy link

ghost commented Dec 11, 2020

This issue has been open for 30 days with no updates.
@vrapolinario, please provide an update or close this issue.

@ghost
Copy link

ghost commented Jan 10, 2021

This issue has been open for 30 days with no updates.
@vrapolinario, please provide an update or close this issue.

@vrapolinario
Copy link
Contributor

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.
I'll be closing this, but please rest assured that we're looking into this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
developer Developer coding and development
Projects
None yet
Development

No branches or pull requests

4 participants