Esta é uma questão de design bastante ampla e é bastante complexa. Cada um desses componentes envolve suas próprias considerações significativas de design. O nível que você apresentou está em um nível bastante abstrato, então o melhor que podemos fornecer são respostas bastante abstratas.
- Um servidor por serviço fornecerá um serviço melhor do que os serviços de co-hospedagem até certo ponto.
- Os servidores de arquivos realmente tendem a ser muito leves no uso da CPU (mesmo se o servidor de arquivos for o Windows).
- 5 K usuários com 5 GB de uso de espaço médio é de 25 TB, o que representa uma quantidade significativa de armazenamento. Planeje isso.
- Em usuários de 5K, vários servidores podem ser necessários para alguns serviços, dependendo do carregamento do aplicativo. Planeje isso desde o começo.
Quanto às suas perguntas sobre o software e a seleção de SO, este é um detalhamento que muitos de nós aqui da ServerFault tiveram que fazer em nossas carreiras. No entanto, cada um de nós que fez isso sabe muito bem que uma resposta correta aqui exige muito mais dados do que os fornecidos. Ou até mesmo pode ser fornecido em uma forma como uma questão ServerFault porque é fundamentalmente complexa, e há muitas variáveis a serem consideradas.
Para responder a essas perguntas, você também precisará ter dados ou respostas sobre os seguintes assuntos e tópicos:
- Uma strong sensação do fluxo de trabalho do usuário em todo o ambiente.
- Quão bem o sistema se comporta sob alta carga.
- Quando o carregamento começa a saturar partes de sua infraestrutura, como isso afeta a experiência do usuário?
- Que tipos de eventos causam carga alta?
- Logon matinal?
- Encerrando o início de sessão do trabalho em casa?
- Carga de condução de eventos especiais?
- Quão bem o sistema é dimensionado.
- Como é fácil adicionar servidores a partes do fluxo de trabalho?
- Como é fácil adicionar servidores web?
- Como é fácil adicionar servidores de banco de dados?
- Como é fácil adicionar servidores a partes do fluxo de trabalho?
E um monte de outras coisas. Esses são os tipos de coisas que você aprende trabalhando de perto com o processo de desenvolvimento e os testes de adoção antecipada. É um processo interativo, e não o tipo de coisa que você pode simplesmente colocar uma proposta em um quadro branco e obter uma infraestrutura que funcione bem.