Compartilhando um servidor de desktop linux para vários usuários: área de trabalho remota ou virtualização?

4

Somos uma pequena empresa de software da Web (~ 10 pessoas). Atualmente, todo desenvolvedor trabalha em sua máquina local (algumas janelas, algum Ubuntu) usando um apache local. Temos um compartilhamento de samba para arquivos compartilhados e repositórios centrais do SVN.

Eu gostaria de centralizar nossa infraestrutura no futuro, fazendo todo mundo trabalhar em um servidor central. Existem 2 opções:

  • Virtualização: todos recebem uma caixa virtual própria em um servidor central e gordo.
    Pro: configuração rápida, isolamento dos usuários, novas caixas adicionadas rapidamente.
    Con : como cada usuário tem seu próprio sistema operacional, um pouco com fome de hardware. A atualização de software (novas versões do Eclipse, etc.) não afeta todos, a menos que eles comecem a usar uma nova vm, o que leva à fragmentação ou à perda de tempo de trabalho novamente. Possíveis problemas de segurança devido à falta de atualizações de segurança e usuários que usam a caixa como root.
  • Remote Desktop: todos se conectam a um servidor ubuntu central, usando uma área de trabalho remota de lá. As opções são um verdadeiro cliente X, xrdp, VNC e afins.
    Pro: fácil de usar, armazenamento central de dados, atualizações de software efetivas imediatamente, controle central fácil. Não precisa de tanto hardware. Usuários não são root. Os repositórios SVN podem ser locais, o que significa aumento de velocidade.
    Con: os usuários não são isolados (possíveis problemas de segurança dentro da equipe), um reinício do apache etc. atinge todos.

Ambas as soluções precisam de uma rede rápida e um servidor gordo. No momento, eu costumava usar o xrdp como acesso remoto à área de trabalho. Quais experiências você tem? Alguma desvantagem de uma abordagem sobre a outra? Opções que perdi? Existe alguém aqui que virtualizou com sucesso uma equipe de desenvolvimento de software?

    
por Steffen Müller 07.04.2011 / 11:28

4 respostas

2

Os contras que você descreveu não são realmente reais, no mundo moderno de TI. O hardware é bastante barato, e o ROI visto quando a virtualização é usada é alto e rápido. Atualizações de software e gerenciamento são fáceis de gerenciar usando chef ou fantoche. Os problemas de segurança são localizados em uma única VM, e não em uma máquina de terminal inteira, e se você escolher a solução certa, a segurança, no nível de atualização, será tratada pelo fornecedor. BTW, para acelerar o acesso ao repositório, use o git - seus desenvolvedores vão se apaixonar por ele, uma vez que eles superem o choque inicial

Com uma máquina terminal, o gerenciamento de recursos pode acabar ficando muito difícil, com as VMs, você não apenas obtém melhor alocação de recursos, mas também obtém uma justificativa melhor para obter um hardware melhor.

    
por 11.10.2011 / 14:00
0

A abordagem de dar a cada um a sua própria máquina virtual é muito menos eficiente em termos de memória do que um sistema compartilhado - mas torna muito mais fácil permitir que as pessoas executem configurações diferentes do Apache simultaneamente. Também é mais simples gerenciar a escalabilidade - você pode migrar as VMs para o novo hardware conforme necessário. Embora você possa não esperar que, de repente, assuma mais funcionários, essas duas abordagens significam que você não pode executar com facilidade os testes de escalabilidade em seus aplicativos (assim, migrar um usuário para uma máquina dedicada por alguns dias soa como um boa ideia).

Existem algumas ótimas ferramentas para gerenciar 'clusters' - a maioria das quais se aplica à manutenção de várias máquinas desktop - já que você já está executando o Ubuntu, O Landscape da Canonical é uma escolha óbvia. No entanto, se fosse eu, eu iria com uma compilação padrão e movesse o diretório home dos usuários para fora da VM em um compartilhamento NFS. E algum plano astuto para / etc / sudoers para que o usuário possa obter acesso root em sua própria máquina.

    
por 07.04.2011 / 14:25
0

Experimente o NoMachine (NX) . Tem uma oferta gratuita, bem como soluções comerciais. É leve, rápido, tem um conjunto bastante universal de aplicativos clientes e usa o ssh como o transporte. Você também pode combinar o NoMachine com sistemas virtuais para diferentes níveis de isolamento, se necessário. Você pode executar o NX em um servidor em execução no modo de texto. Contanto que os elementos GUI sejam instalados, os usuários receberão sessões X em tela cheia (que também podem abranger monitores).

    
por 07.04.2011 / 14:37
0

Temos 3 desenvolvedores e usamos a Área de Trabalho Remota (exceto que na verdade não usamos RD porque é um site que estamos desenvolvendo, então desenvolvemos o código usando "navegação remota de arquivos" no Eclipse ou no Notepad ++ ou Coda e visualizamos o site através da internet). Eu acho que funciona bem, e as vantagens das atualizações simultâneas são impressionantes. Não estamos tão preocupados com a segurança dentro da equipe, então não posso falar com essa preocupação. Os reinícios do Apache demoram 2,5 segundos, então quem se importa?

editar E eu uso o Windows enquanto os outros dois usam o Mac. Funciona muito bem para todos.

    
por 08.08.2011 / 11:34