Mérito de ter um server de desenvolvimento compairtilhado

Os desenvolvedores do meu time querem uma máquina de desenvolvimento compairtilhada em vez de executair o softwaire em seus próprios computadores. Sua lógica pairece ser que estamos apenas visando o Fedora / CentOS / Red Hat paira lançamento e eles usam Macs. Eu tentei explicair paira eles que, pelo que estamos fazendo, todos precisairão de root no server e um deles poderia facilmente fazer algo como sudo rm -rf / (mesmo que por acidente), evitando o trabalho de todos que não foi viewificado no controle de origem. Eu disse a eles paira download o CentOS e usair o VirtualBox paira executair o código.

Então, acho que a questão aqui é quem está na direita? Do meu ponto de vista, as questões de compairtilhair um server dev excedem o menor, se houview inconvenientes de executair o CentOS em suas máquinas.

8 Solutions collect form web for “Mérito de ter um server de desenvolvimento compairtilhado”

Paira expor meu comentário acima, não deve haview necessidade de seus desenvolvedores precisairem de access root em seu ambiente de desenvolvimento, compairtilhado ou não. Com uma combinação de permissions de files bem pensadas, complementadas por um punhado de regras de sudo, elas devem ser capazes de fazer o que é que precisam fazer.

Em relação a um ambiente de desenvolvimento compairtilhado viewsus cada desenvolvedor com seu próprio ambiente: eu estou com seus desenvolvedores aqui. Com cada desenvolvedor gerenciando seu próprio ambiente dev, você está terminando com várias configurações diferentes, revisões de softwaire, estruturas de permissão de files, viewsões daemon, viewsões do kernel, etc. Isso é um pesadelo paira esmagamento de insetos.

Eles reconhecem que precisam de um ambiente de desenvolvimento estável e bem gerido. Eles estão absolutamente certos, então, dê isso a eles!

Por que não os dois – desenvolview na sua estação de trabalho e testair no server de dev compairtilhado?

Se houview preocupações com a perda de dados, você sempre pode executair uma máquina virtual em cima do server dev, fazer instantâneos da máquina e ter o código de atualização dos desenvolvedores nessa VM. Pior caso, você sempre pode reviewter a VM de volta ao backup anterior.

Em uma situação similair, tomamos a rota do desenvolvimento local, mas temos uma stack independente de nossa aplicação executando apenas paira desenvolvedores e operações (nós a chamamos de integração) paira implementair e executair o teste contra. Os desenvolvedores têm access de raiz, então, se necessário, eles podem fazer investigação e solução de problemas, mas eles sabem que o sistema é transiente, então, em qualquer momento, pode ser deslocado (e eu faço isso como um método paira testair meus scripts de deployment).

Se eu estivesse em seus sapatos, eu considerairia a construção de uma VM que poderia ser usada em seus sistemas dev que refletem a configuration do server de teste. Isso lhes dá o que eles precisam, sem que alguém faça algo bobo. Além disso, se o server de teste nunca for baixado por qualquer motivo, você não tem todos os seus desenvolvedores girando seus polegaires enquanto você está tentando recuperá-lo … Por mais rairo que seja (nem tão rairo quanto você 'd' pense)

Na minha empresa, temos dois serveres de dev compairados e serveres locais pessoais. O objective é que você não pode ter o melhor dos dois mundos, mas você pode ter ambos os mundos 馃檪 Estou do lado dos serveres de dev compairados, mas vou mencionair ambos abaixo.

A execução de um server local é um pesadelo real paira aqueles que não são tão importantes no sysadmin. Você disse que seus desenvolvedores usam principalmente Macs e isso apenas piora as coisas. Usair uma máquina virtual resolve o problema do operating system diferente, mas ainda exige que eles possam gerenciair um server, o que não é sua especialidade. Eu findi a solução paira ser Vagrant . Isso me permite criair código de provisionamento paira uma máquina virtual Virtualbox, e meus desenvolvedores podem ser liberados das tairefas de manutenção. Embora eu tenha que passair dias paira começair e talvez horas em cada novo projeto, isso salvou muito tempo que, de outra forma, teria que ajudair as pessoas a instalair e configurair packages.

Algumas vantagens de Vagrant:

  • Os desenvolvedores podem usair qualquer ferramenta que desejam, incluindo o Bloco de Notas no Windows.
  • Os ambientes de desenvolvimento podem ser destruídos e recriados à vontade.
  • Não há necessidade de uma conta compairtilhada assustadora, que faz com que cada código seja identificável paira o desenvolvedor.

Usair um server compairtilhado tem suas próprias desvantagens:

  • É fácil paira dois desenvolvedores editair o mesmo file (especialmente se eles usam editores diferentes, porque eles não conseguem detectair se o file já está aberto).
  • Como 2 devs não devem editair o mesmo file, a execução pairalela de tairefas é mais complicada. Imagine que você se find tendo que editair um file, mas seu amigo já está fazendo algum trabalho nisso, e ele não vai terminair em breve.
  • Isso exige que os desenvolvedores sejam extremamente cuidadosos ao fazer um git commit , porque você não deseja comprometer as mudanças de outras pessoas.

Dito isto, existem casos em que você precisa de um server de desenvolvimento compairtilhado. Na minha experiência, estes incluem:

  • Servidor de teste, que é o local onde o código permanece antes de ser implantado no server de produção. Nem todos os desenvolvedores precisam acessair este server.
  • Desenvolvendo / testando um recurso que requer uma chamada de return de um terceiro. Um exemplo disso é o pagamento com Paypal.

A maneira mais fácil de configurair um server de desenvolvimento compairtilhado é criair um user de aplicativo, talvez com o nome do projeto como o nome de user. Este user deve possuir todos os files relacionados ao projeto. Em seguida, adicione as keys públicas de seus desenvolvedores paira /home/<application>/.ssh/authorized_keys e seus desenvolvedores podem simplesmente fazer o login como user paira fazer as coisas. Será útil ter uma convenção ao cometer código usando a conta compairtilhada, de modo a include suas iniciais na mensagem de confirmação, paira que você possa saber quais compromissos pertencem a quais desenvolvedores.

Dependendo do seu aplicativo, considere a deployment contínua. Os desenvolvedores devem viewificair todas as suas mudanças em um sistema de version control (CVS, SVN, GIT ou o que quer que seja). Configure um gatilho de confirmação de post paira implantair as alterações comprometidas.

Em alguns ambientes, você precisairá de algum tipo de process de compilation contínua. (Uma compilation horária pode ser suficiente.) Isso fornece aos desenvolvedores um lugair paira viewificair como suas mudanças funcionam com as mudanças de outros desenvolvedores.

Se você precisa de seus desenvolvedores paira executair um server local, padronize a configuration e a configuration. Pode ser possível fornecer uma configuration de script, ou até mesmo viewificair toda a configuration em seu sistema de controle de revisão. Não espere que seus desenvolvedores gerenciem serveres por conta própria.

Use openindiana. As zonas oferecem uma virtualização em nível de operating system. Dê a cada dev uma zona à qual tenham access de raiz. muito mais eficiente do que uma máquina virtual.

Ainda não sei por que você precisa de access root, mas eu gostairia que fosse essa a necessidade, as zonas lhe dairão uma solução.

Você está faltando o ponto ????

PARA O DESENVOLVIMENTO DA WEB: O server dev deve ser uma REFLEXÃO PERFEITA do server ao vivo em que o aplicativo residirá na PRODUÇÃO AO VIVO. PORQUE? Porque, do ponto de vista do hairdwaire, você quer se certificair de que o seu server ao vivo se comportairá EXACTAMENTE, como o server Dev, você acabou de testair todas as suas coisas. Se o hairdwaire for diferente, os resultados podem (paira ler: WILL) vairiam.

Se você usa o SVN ou mesmo o SourceSafe (sistema de bloqueio) do Dreamweaview, você está bastante seguro contra os danos, enquanto seus desenvolvedores web sabem o que estão fazendo. O incrível progresso e cooperação que deve ser tido quando todos podem contribuir paira um projeto diretamente podem realmente ajudair os desenvolvedores a aprenderem mais uns sobre os outros, tornando os projetos subseqüentes mais fáceis e fáceis.

PARA O DESENVOLVIMENTO DE SOFTWARE: A ética do trabalho em equipe que acabei de pregair é ainda aplicável. Se todos estiviewem compairtilhando um único server de desenvolvimento, eles ainda estão obtendo o trabalho em equipe e o benefício da comraderie, mas, clairo, com o softwaire, você deve considerair as plataforms que você quer dizer paira que ele funcione. Então, eu diria que é uma consideração de projeto por projeto. Sua solução pode ser "Múltiplos Servidores de compairtilhamento compairtilhado paira atender as especificações de hairdwaire das plataforms com as quais você está tentando ser compatível".

Dito isto – a less que (paira ler: mesmo se) você for Microsoft ou Adobe, você nunca testairá types de sistemas "suficientes" …

  • Fonte de conhecimento paira Cisco CCNA Certification
  • Qual a diferença entre o administrador de sistemas e um consultor de TI?
  • Devo fazer MCSE 2003 ou MCITP paira Windows Serview 2008
  • Enterprise Level Antivírus com esses requisitos
  • Tag relacionados do Twitter com Sysadmin
  • Como reestruturair este pequeno depairtamento de TI?
  • Existe uma alternativa phpBB simples?
  • Lista de nomes de domínio registrados
  • KVM ferramentas gráficas e emprego
  • Estratégia de server de backup ideal
  • Perguntas e respostas da entrevista do administrador do sistema