configurando um ambiente de desenvolvimento de projeto

3

não tenho certeza se está tudo bem para este site, mas aqui vai!

Procurando por um sysadmin linux habilitado / experiente com o qual eu possa conversar sobre como configurar um ambiente de desenvolvimento para pessoas remotas usarem em um projeto. (ou se alguém puder me indicar um bom site / artigos)

Eu tenho 10-15 servidores que eu quero configurar para ser um ambiente de desenvolvimento para a criação de um par de aplicativos / projetos. Eu imagino que eu vou ter o diretório test / backup / user / produção / app servers / etc ...

Estou procurando conversar (por telefone / e-mail) com alguém sobre a melhor abordagem para obter essa coisa em conjunto. Também quero ter certeza de que o sistema esteja protegido o máximo possível, já que os desenvolvedores do projeto farão login remotamente isto é para um projeto que pode se transformar em um projeto de código aberto, mas eu não quero usar o sourceforge e apenas pendurar o projeto para todos até que ele passe por algumas iterações ...

Agradecemos antecipadamente por quaisquer sugestões / pensamentos / etc ...

tom ...

    
por tom smith 15.02.2010 / 00:10

2 respostas

2

Da sua conta do StackOverflow, eu acho que você é uma loja de python.

Eu recomendo usar o BZR como seu VCS, mas isso é bastante irrelevante. Use o que você e seus desenvolvedores forem mais felizes.

Você deve ter (pelo menos) um servidor de desenvolvimento centralizado.
Isso deve conter uma cópia mestre do seu repositório, assim como diretórios iniciais para seus desenvolvedores.

Faça backups regulares desse servidor.
Use o rsnapshot para obter instantâneos em andamento dos dados. Talvez instantâneos de hora em hora, um backup externo noturno (o Amazon S3 tem um ótimo custo-benefício para isso!). Faça um backup semanal para offline-medium (fita, DVD, HDD externo) e gire-os mensalmente.

Não se esqueça de testar a restauração!

Se você tem 2 servidores de desenvolvimento, você deve idealmente construí-los de forma idêntica com algo como o ubuntu preseed , ou RHEL / Centos Kickstart. Em seguida, crie os ambientes de servidor com o boneco . Isso economizará tempo a longo prazo, especialmente quando você chegar ao ponto de expansão.

Você poderia configurar a replicação em nível de sistema de arquivos com rsync entre os vários servidores de desenvolvimento, mas eu pessoalmente recomendaria usar um sistema de armazenamento em nível de bloco compartilhado, como GlusterFS

Adquira o hábito de escrever testes de unidade cedo. Mesmo que seja apenas para os módulos principais dos seus projetos. Integrar estes com um corredor de teste de unidade, diga PyUnit . Obtenha um analisador de cobertura de código para ajudá-lo a desenvolver testes eficazes. Integre seu ambiente de teste ao seu controle de origem com algo como Hudson ou Buildbot . Agora você pode ser notificado com qual desenvolvedor confirmou o código que quebrou a compilação.

Você deve ter um servidor de testes separado, que espelhe seu ambiente ao vivo. O ideal é que você tenha dois deles, um no escritório para testes locais e um no mesmo datacenter onde estão seus servidores públicos.

A razão para ter 2 é que você pode fazer implantações e testes rápidos no local, mas testar o ambiente que é idêntico aos servidores ativos, como diferenças de rede, firewalls, roteamento, etc.

Depois de ter alguns servidores configurados e funcionando, você deve considerar algum tipo de sistema de backup centralizado. Faça backup de todos os bits importantes de seus servidores em um local central e, em seguida, replique esses dados em um servidor separado. Por exemplo, um no escritório, um no datacenter.
Bem como backups off-line / off-line semanais e testes de recuperação de desastre.

Mais uma vez, muito disso é a "solução ideal" e não é financeiramente viável para pequenas startups. O investimento em boas práticas logo no início retorna no futuro. Especialmente coisas que limitarão o tempo de inatividade quando você estiver tentando escalar rapidamente.
Um bom controle de origem e um fluxo de trabalho de desenvolvimento produtivo também são muito importantes.

    
por 15.02.2010 / 02:41
1

Você realmente precisa de muitos servidores para "alguns aplicativos / projetos"? Isso parece um exagero para mim. Para dar uma pequena perspectiva, eu trabalho para uma empresa com cerca de 130 funcionários e cuido de 11 servidores.

Uma coisa é certa: seria sábio configurar seu servidor de controle de versão favorito no início do processo.

    
por 15.02.2010 / 01:13