Cosa sono i team di build, le farm di build e i server di compilazione?

1

Stavo guardando questo video per informazioni su come utilizzare Docker e Jenkins.

Questo ragazzo ha immediatamente iniziato a parlare di concetti che non ho mai sentito prima (beh, sono ancora al college), che ha attirato la mia attenzione.

Ho scoperto che un Build Server è fondamentalmente un server CI, di cui sono a conoscenza. Non sono riuscito a trovare molto su build farm e build team, ma ecco le mie ipotesi e domande su questi concetti:

  • Crea server : un server che esegue un'applicazione CI come Jenkins.
  • Build Farm : un gruppo di build server?
  • Crea team : ritengo che questa sia la parte importante.
    • I team di sviluppo si occupano di configurare i server di build per gli sviluppatori?
    • Che cosa stanno configurando? Jenkins? Perché gli sviluppatori non possono farlo?
    • Che cosa significa che un team Dev ha chiesto al team di Build di creare un ambiente di build in modo che possano funzionare?
    • La configurazione di un ambiente di generazione è come creare un contenitore con Python, quindi gli sviluppatori possono eseguire Lavori Jenkins relativi a Python?
    • Perché è necessario un team specifico per questo?
      • A causa delle risorse limitate necessarie?
      • Perché l'ambiente di sviluppo deve essere distribuito su server specifici e solo il team di sviluppo ha accesso a quelli per salvare risorse da sviluppatori abusivi?
      • Perché è troppo difficile distribuire in remoto un ambiente di compilazione su un contenitore docker su un server?

Qualche idea su cosa sia giusto o sbagliato in merito a queste ipotesi? Qualcos'altro da aggiungere qui? Non ho bisogno di rispondere a tutte le domande. Ho solo bisogno di una contestualizzazione sull'argomento, niente di troppo profondo.

    
posta AFP_555 28.07.2017 - 06:02
fonte

1 risposta

4

Build Server: a server running a CI application such as Jenkins.

Questo è il server che sta effettivamente eseguendo la build. Lo schiavo di costruzione. Jenkins e altri prodotti CI non eseguono sempre il software di coordinamento (interfaccia utente Jenkins) sullo stesso server, quindi penso che ci sia una distinzione

Build Farm: a bunch of build servers?

Si

Build teams take care and configure build servers for developers?

Sì. Stanno creando un ambiente in grado di creare ripetutamente e automaticamente il software ed eseguire test. Il test è probabilmente la parte più difficile perché spesso i test hanno dipendenze esterne che devono essere disponibili. Questo può diventare piuttosto complesso, specialmente se si utilizzano strumenti primitivi, quindi è naturale che una grande organizzazione crei un team di "ingegneri di build" dedicati a mantenere le build mantenute su tutti i loro prodotti.

What are they configuring? Jenkins? Why can't developers do it?

Se viene utilizzato Jenkins, probabilmente sarà responsabile della sua configurazione, ma saranno anche tutti gli altri dettagli della build e i test automatici che dovranno essere progettati, implementati e mantenuti. Molti sviluppatori probabilmente possono farlo, e in piccole organizzazioni probabilmente lo faranno , ma teoricamente un ingegnere di costruzione ha più esperienza con le build del tuo sviluppatore di software medio e probabilmente ha devops e esperienza di sysadmin.

What does it mean that a Dev team asked the Build team to create a build environment so they can work.

Gli sviluppatori potrebbero finire a utilizzare lo stesso ambiente di build per sviluppare il proprio software durante lo sviluppo. Io uso le stesse immagini di finestra mobile per distribuire il mio software e testarlo localmente che CI usa per costruire ed eseguire test automatici. Inoltre, il processo del software si basa sul fatto che la CI funzioni prima che possa uscire una versione. Il processo è impedito se la build non funziona, quindi ha senso che gli sviluppatori dipendano dal team di build.

Is configuring a build environment kinda like creating a container that has python, so developers can run Jenkins Jobs related to python on it?

Per le build containerizzate, questo sarebbe un componente della build, ma potrebbe essere necessario un intero stack di dipendenze necessarie per eseguire i test automatici (ad es. database, motore di ricerca, altri servizi, cache, frontend, selenio, carico -testing service, ecc.)

Why is a specific team needed for this?

Nelle organizzazioni più grandi hanno team per un sacco di cose che gli sviluppatori potrebbero probabilmente fare abbastanza bene da sé (es. installatori, documentazione, interfaccia utente, operazioni), ma organizzando un team dedicato alle build che ottieni (idealmente):

  • Standardizzazione / uniformità tra le generazioni
  • Conoscenza condivisa
  • Best practice
  • Ricchezza di esperienza
  • Migliora il tempo di attività
  • Processo di sviluppo più fluido
risposta data 28.07.2017 - 06:33
fonte

Leggi altre domande sui tag