cara essas duvidas são de infra-estrutura.
o seu local é o seu local. em uma empresa não necessariamente vc vai ter um servidor para tudo. inclusive é boa pratica vc ter varios servidores de aplicação e varios servidores de banco de dados.
agora a minha experiencia com produção foi um mundo unix. eu não faço ideia de como o windows server qq coisa se porta e nem sei configurar, muito menos trabalhar a performance desse tipo de sistema, ainda mais pra PHP. veja se alguem aparece para lhe ajudar nesse quesito em especial.
agora dizer 400 pessoas não significa nada. quando estamos tentando estimar uma infra-estrutura precisamos saber o perfil de acesso. as 400 pessoas vão executar tudo ao mesmo tempo? existem coisas demoradas ou tarefas complexas? qual a sua estrategia de cache? vai usar um balanceador de carga? qual metrica?
se vc não sabe, tem que estimar pelo pior.
e isso não é o caso de escrever um ‘tutorial’. isso envolve muitas disciplinas como administração de banco de dados, redes, sistemas operacionais, etc. um mesmo banco de dados pode ser configurado de formas diferentes e ter performances totalmente diferentes, isso que não falamos em cluster de banco de dados (e os problemas de two-phase commit ), backup, etc.
vai ser muito util para vc ferramentas que possam dizer o que esta acontecendo.
Vejamos: New Relic para vc ter uma ideia do que esta acontecendo na aplicação
Zabbix e Kibana para graficos e metricas ( com Zabbix vc pode setar uma trigger e se algo acontecer como um diretorio ficar muito cheio / % de cpu alcançar limite vc pode mandar SMS )
Eu sugeriria vc tentar no começo algo com
linux + apache ou nginx + redis para cache + mysql ou mariadb ( pq aguenta o tranco na maioria dos casos )
agora sem saber o que é a sua aplicação fica impossivel dizer de quanto acesso ao banco de dados vc precisa, de quantas maquinas de backend, se precisa de balanceador de carga, etc. agora se vc não sabe linux e nunca fez ssh e deu um top
mano nem inventa aprender aos 45 do segundo tempo.
detalhe que dependendo da empresa vc pode colocar tudo em ambiente virtualizado em um host externo e existem ferramentas como Terracota, Docker e outras coisas que combinados vc pode descrever a sua infra-estrutura de forma que o seu tooling vai orquestrar a sua cloud, por exemplo. só que isso depende de alguma experiencia e tempo.
boa sorte.