Por que um Dev Fullstack usando Windows pode ser uma red-flag?
Após décadas longe do Windows, minha nova experiência em uma startup me deixou intrigado: por que dois desenvolvedores estão usando Windows?
Nem C#, nem nenhuma outra tecnologia da Microsoft faz parte direta da Stack e agora começa o problema - geralmente sempre homologo um ambiente de desenvolvimento e staging muito próximo do que roda no Kubernetes em produção. Mas agora, no Windows um dev que coloca seu ambiente de trabalho no C:/ outro no D:/ e os hostPath agora precisariam de:
volumes:
- name: meu-volume
hostPath:
path: C:\host\path\no\windows
ou
volumes:
- name: meu-volume
hostPath:
path: D:\host\path\no\windows
E para resolver isso no YAML do ambiente de desenvolvimento agora eles dependeriam de variáveis de ambiente. Todos os scripts de deployment precisariam também ser revisados/refatorados.
A pergunta honesta é: se você fosse tech lead e encontrase um time formado, colocaria Mac ou Linux de forma impositiva? Se não, qual é a vantagem produtiva em 2024 de se utilizar Windows? Essa também uma pergunta honesta, já que faz cerca de 20 anos que não utilizo Windows. Estou perdendo algo novo?
EDIT
Percebi que algumas pessoas aqui disseram que o projeto está organizado de forma errada, pois os volumes deveriam ser relativos e não absoluto, mas isso não é possível no Kubernetes https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/.
E o porquê? Porque em um cluster, como ele precisa saber explicitamnte aonde irá montar os arquivos. Imagine como ele descobriaria aonde montar se Windows-1 ele tenha o app em C:\app.... e no Windows-2 D:\app
Rodar Kuberntes stand-alone/single é a excessão não é a regra, roda-se somente em ambiente de desenvolvimento.
O WSL injeta os pontos de montagem em /mnt/host, então além dos persistente volumes, possívelmente os deployments também precisarão ser remapeados.
Em cerca de 20 anos eis as novidades:
- Git bash (Um port do bash disponível, então nem todos os scripts .sh preciseram ser refatorados, sim Windows agora tem um bash)
- WSL (Que injeta os arquivos montados em /mnt/host e /run/desktop?)
- PowerShell (O cmd com esteiróides)