Eu estava curioso para saber até onde os administradores de sistema vão na configuração dos fluxos de trabalho para os desenvolvedores

2

Pergunta:

Estou à procura de links ou contas pessoais de lições & experiências na configuração de conjuntos de servidores \ sistemas para desenvolvedores. Em particular, estou interessado na quantidade de automação e se ela se revelou mais trabalho do que vale a pena ou um envio de deus. Eu percebo que dependendo da natureza dos produtos desenvolvidos, isso pode ser mais simples ou mais complexo. Eu também sou novo nesta área (< 4 meses) por isso a minha perspectiva é muito limitada :( A seguir estão pontos que eu estou mais interessado em:

  • Controle de versão que você usa e por quê?
  • Existe alguma coisa automatizada?
    • Você tem desenvolvedores trabalhando com o repositório diretamente para uso diário geral ?
    • Você aproveita os ganchos com script de repositório?
    • Você vincula suas ferramentas ou as integra de alguma forma ?
  • Os desenvolvedores usam ferramentas gráficas ou baseadas em console?
  • Qual é sua prioridade número 1 quando você está atualizando a infraestrutura ou melhorando as coisas?

Minha experiência limitada

No meu caso, a equipe desenvolve aplicações web utilizando MySQL e PHP. A infraestrutura atualizada em que estou trabalhando dá a eles o controle de versão com o Mercurial e o sistema de gerenciamento de projetos Redmine. Também temos servidores de desenvolvimento, teste e produção para o site, bem como um servidor de banco de dados. Eu combino o controle de versão e o gerenciamento de projetos em um servidor.

De uma perspectiva de usabilidade estrita, o que está acima em seus próprios servidores é suficiente, mas tenho trabalhado em abordagens usando ganchos pós-commit para enviar as mais recentes confirmações recebidas para o servidor dev automaticamente, processamento de script (como minimizar CSS e JS arquivos), e integrando os gatilhos de publica para testar e dev para as Redmine UIs com controle de permissões. Eu também adicionei ganchos no Redmine para fazer a criação e exclusão do Repository customizado (com ganchos customizados).

Eu também experimentei plugins personalizados do Dreamweaver para pegar mensagens de commit de desenvolvedores e lidar automaticamente com o processo de commit (minimizando o tempo gasto trocando janelas e clicando no TortoiseHg).

Como ainda estou testando, não sei ao certo qual será o produto final. Eu estava apenas curioso sobre o que os outros fizeram até o ponto em que eles correram.

    
por Joshua Enfield 17.04.2014 / 16:03

1 resposta

7

Minha resposta para essa pergunta sempre seria: pergunte aos usuários, no seu caso, os desenvolvedores. Os sistemas de TI não têm um valor próprio intrínseco, eles sempre cumprem um papel dentro do contexto do negócio em que são usados. Portanto, quanto melhor você puder fazê-los fazer o que é necessário nesse contexto, melhor para o negócio.

Algumas respostas mais específicas:

Controle de versão: usamos svn, cvs e git (motivos herdados, há movimentos em andamento para consolidar isso apenas no git).
Automação: . Cada um desses sistemas tem vários scripts de gancho. Devido ao fato de que os requisitos continuam mudando, as equipes de engenharia realmente têm um "fabricante de ferramentas", ou seja, um engenheiro de software específico que não faz nada além de fornecer e melhorar as ferramentas para todos os outros. A equipe de TI não se envolve com isso, nos concentramos nos servidores como tal (hardware, sistema operacional, atualizações, desempenho, rede, etc.)
Console vs. GUI: Qualquer coisa serve. E nós na TI realmente não nos importamos com o que eles usam desde que funcione, pode ser instalado / atualizado através do gerenciamento de pacotes (também temos nosso próprio repositório de pacotes para nossas ferramentas internas) e não viola nenhuma lei ou infringe qualquer direito autoral.
A prioridade número 1 é sempre serviço ininterrupto para todos os usuários.

    
por 21.08.2010 / 20:59