Cosa forniscono gli strumenti SCM (Ansible, Puppet, Chef, ecc.)?

7

Ho letto parecchio su Software Configuration Management (su Internet e anche SWEBOK), ma non ho chiaro quale sia lo scopo degli strumenti SCM. O, meglio dire, che cosa questi strumenti forniscono che altri strumenti non lo fanno.

Diciamo che ho un ambiente con i seguenti strumenti:

  • Jenkins per l'integrazione continua.
  • Ant come strumento di creazione.
  • Git come sistema di controllo della versione.
  • GitLab per la gestione dei repository Git e anche per il monitoraggio dei problemi.
  • Strumenti per l'analisi e il test del codice sorgente, come Sonar e JUnit.

Quindi, la mia domanda è, cosa fornirebbero quegli strumenti SCM? In che modo sarebbero utili?

    
posta Julen 02.11.2015 - 09:54
fonte

1 risposta

8

Tutti gli strumenti che hai menzionato (Jenkins, formica, git) aiutano a costruire e testare effettivamente il tuo artefatto. Nel mondo java di solito questo può essere guerra, orecchio o semplicemente zip con l'applicazione all'interno. A volte per applicazioni complicate può essere più di un artefatto. Per altre piattaforme di programmazione può variare, DLL, binari per più piattaforme diverse e così via.

Ora diciamo che vuoi implementare la tua applicazione. Se hai un server puoi farlo manualmente o con qualche script homegrown. Fin qui tutto bene:)

Ma se ci sono un sacco di farm (gruppi di macchine), le diverse farm dovrebbero avere implementazioni con configurazioni diverse (database, diverse posizioni geografiche) E se la tua applicazione può scalare orizzontalmente in modo tale da aggiungere un paio di nuovi nodi al la fattoria dovrebbe essere un compito banale. Il tuo team addetto al QA potrebbe semplicemente chiedere un nuovo ambiente per eseguire i test, il team delle prestazioni può chiedere un nuovo ambiente o aggiungere nodi alla farm per eseguire stress test e così via. Ora gestire tutte queste cose sembra essere complicato. È qui che entrano in gioco strumenti come ansible, chef, sale, burattini e altri.

In realtà stanno aiutando ad automatizzare la distribuzione. Possono fornire ricette di implementazione, installare dipendenze mancanti (per eseguire il progetto potrebbe richiedere jre, tomcat di una versione specifica e nginx per contenuto statico). Tutto questo a livello di fattoria.

So che la risposta è troppo generica e potrebbe sembrare meno ovvia per lo sviluppatore java (io sono uno di quelli). Ma se hai una squadra di sistema / devops ragazzi dovrebbero subito puntare sui vantaggi di questi strumenti.

    
risposta data 02.11.2015 - 11:48
fonte

Leggi altre domande sui tag