FlowFuse/flowfuse

Review - Windows Install

Opened this issue · 4 comments

Given the install instructions available at https://flowfuse.com/docs/install/introduction/ go form a clean Windows image and install and setup FlowFuse.

Windows represents a very low portion (2%) of our running FlowFuse EE instances, however, having spoken to our Sales/Customer team, it is the most highly requested operating system. We currently take a strong position to dissuading users from Windows, and steering towards Linux. This is creating bottlenecks internally in our customer's organisations as they then need permission from IT departments, etc. in order to setup Linux VMs and environments.

The conclusion from Rob (notes in a comment below) was that "If we can get FlowFuse easy to get up and running on Windows, our customers would use it"

Considerations

  • Each step taken should be recorded
  • Any frustrations/friction should be highlighted and documented
  • The full process should be timed, ideally with rough timestamps along the too so that we understand where time is being spent.

Areas of Friction

  • When arriving at the "Install" documentation for FlowFuse, there is no clear CTA for installing on Windows.
    • If I happen to then click the first option, Docker, I'm presented with a statement, "The following instructions assume you are running Docker on a Linux or MacOS host system.", with no clear CTA for Windows users.

Chatting with @robmarcer - notes:

  • We often talk to customers that have already setup FF
  • Maybe people try and fail for the Windows installs
  • Risk of survivorship bias in our 98% of paid customers running on Linux
  • What is the goal for Windows install?
    • Rob not convinced it's even possible to run "well" on Windows
    • Lots of our customers use Windows, often say they can't use "Linux"
  • "If we can get FlowFuse easy to get up and running on Windows, our customers would use it

Lots of our customers use Windows, often say they can't use "Linux"
If they can't use a Linux distro, is an approach with docker-ce via WSL possible for them? Same question for a potential VM solution with Linux on top of Windows HyperV.

is an approach with docker-ce via WSL possible for them? Same question for a potential VM solution with Linux on top of Windows HyperV.

Yes on both of these. This is what I think we go forward with recommending for Windows deployments

Windows OS configuration to run FlowFuse platform using Docker:

Installation prerequisites:

  • fresh WIndows Server 2022 installation

Installation timeline:

  • WSL2 install: 48s
  • Server reboot: ~3m
  • Ubuntu installation: 2m14s
  • Docker install in Ubuntu
    • Remove conflicting packages: 20s
    • Add GPG key to apt repository: 2m30s
    • Install docker packages: 33s
    • Start docker service: 5s
    • Verify docker installation: 8s

Total time: 9m 38s

Installing FlowFuse platform step and timeline was very close to the one achieved while evaluating the "Docker on Debian" approach. Due to this fact, it has been omitted from this installation timeline.

timeline
    title Installation Timeline
    section WSL2 Installation
        WSL2 install: 48s
        Server reboot: 3m
    section Ubuntu Installation
        Ubuntu installation: 2m14s
    section Docker Installation in Ubuntu
        Remove conflicting packages: 20s
        Add GPG key to apt repository: 2m30s
        Install docker packages: 33s
        Start docker service: 5s
        Verify docker installation: 8s
Loading

Disclaimer: I am the author of this installation docs.

My thoughts:

  • the whole process seems to be rather straightforward, however, it requires interaction with PowerShell/command line which is not a favourite tool for Windows users. I found a project called Rancher Desktop during evaluation. It turns out, that it does the same as we suggest in our documentation. However, it "hides" all the command line stuff behind a nice graphical interface. Using Rancher Desktop I was able to quickly create a docker environment on Windows with the required tools (docker cli + compose plugin). Furthermore, to interact with docker I didn't have to run WSL - docker and docker-compose binaries were available directly in the Windows Command Prompt. Furthermore, it does not have any licensing limitations and can be used in large organisations. In my opinion, we should change the approach and:
    • suggest Docker Desktop whenever possible - it is the easiest and the most mature solution
    • if Docker Desktop licensing is the problem - suggest Rancher Desktop
    • go with manual installation of Docker Engine using our docs
  • Based on the previous point, I would change the article name to "Docker on Windows", extend it for the information/our suggestions + links to Docker Desktop and Rancher Desktop, leave the Docker Engine how-to doc as a paragraph
  • there is something wrong with the multiline code block - commands are not copied correctly and cause installation errors. To solve the issue I had to copy commands line-by-line.
  • when installing docker packages - add installation confirmation, no need to ask a user for additional input
  • add direct link to the latest docker-compose release instead of sending to the release page and ask a user to find the link
  • docker installation is missing a step responsible for adding shell user to "docker" group , to run docker command without sudo
  • documentation includes information about how to setup portforwarding to from host to ubuntu installation as well how to open firewall port - IMO it is confusing since it operates on random, not FlowFuse Platform related, ports. Information can be useful but IMO it should be part of the FlowFuse Platform installation process.