GNU/Linux >> Linux Esercitazione >  >> Linux

In che modo applichi pratiche di sviluppo come il controllo della versione, i test e l'integrazione/distribuzione continua all'amministrazione del sistema?

Soluzione 1:

Disclaimer:sono uno degli sviluppatori di Puppet.

Il modo ovvio è semplicemente applicare i concetti:definire un ciclo di sviluppo/test/produzione e spingere i cambiamenti attraverso di essi. Utilizza il controllo della versione per tenere traccia dei sistemi.

In breve tempo, iniziare questo percorso porta a scoprire che vuoi davvero strumenti che automatizzino quelle cose - essenzialmente, che vuoi automatizzare l'amministrazione dei sistemi, in modo da non usare quelle tecniche sulle macchine, le usi sul sistema che gestisce le macchine.

Strumenti come Chef, Puppet, Salt e CFEngine sono tutti strumenti popolari per soddisfare questa seconda esigenza. Funzionano nella direzione generale di trasformare l'amministrazione dei sistemi in una soluzione centrale che puoi controllare e testare la versione.

Il movimento DevOps è un'altra fonte di buone informazioni su come farlo. Sebbene il precetto sia una migliore cooperazione tra gli sviluppatori e il personale operativo, tende anche nella stessa direzione.

Soluzione 2:

La risposta breve è "Gestione della distribuzione del sistema operativo", "Gestione della configurazione" e "Pacchetti software". Segue una lunga risposta.

Vorrei aggiungere alla risposta di Daniel Pittman un'analisi di ciò che costituisce un "sistema" nell'amministrazione dei sistemi.

Un sistema o un ambiente comprenderà:

  • Server
  • Sistema operativo
  • Configurazione
  • Pacchetti del fornitore; e
  • Pacchetti locali

Ad avvolgerli saranno processi come:

  • Distribuzione o imaging del sistema operativo
  • Gestione della configurazione
  • Gestione dei pacchetti software
  • Controllo/registrazione
  • Monitoraggio
  • Backup

E ti piacerebbe che questi si combinassero insieme per aiutarti a raggiungere obiettivi non funzionali come:

  • Ripetibilità
  • Manutenibilità
  • Misurabilità
  • Prestazioni
  • Tracciabilità
  • Testabilità
  • Modificabilità

Questa è una rapida discarica cerebrale. Sono sicuro che se ne potrebbero aggiungere altri a tutte le liste.

La tua domanda tocca alcuni di questi senza usare le parole specifiche. Ad esempio, vuoi essere in grado di distribuire facilmente e tornare indietro, ovvero vuoi manutenibilità; vuoi farlo in un ambiente di test e testare finché non passa, cioè ripetibilità, testabilità e misurabilità; stai pensando di inserire le immagini VM nel controllo della versione perché desideri la ripetibilità del sistema operativo e le distribuzioni della configurazione.

Ci sono molti strumenti per aiutarti in questo, alcuni dei quali menzionati da Daniel. Alcuni altri sono:

  • Kickstart (basato su RedHat), Preseed (basato su Debian), WDS (MS Windows) per la distribuzione di ambienti OS noti
  • Spacewalk/Satellite (basato su RedHat), Criteri di gruppo (MS Windows) per la configurazione e la gestione dei pacchetti
  • Sistemi di packaging YUM e APT per la generazione, l'implementazione, l'aggiornamento e la rimozione di pacchetti (insiemi di file binari, dati e configurazione che comprendono un software)
  • Nagios, OpenNMS e SCOM per il monitoraggio
  • Amanda, Bacula e Windows Backup Server per i backup
  • Munin, PCP e Hyperic per il monitoraggio delle prestazioni
  • CVS, SVN, GIT o Bazaar per il controllo della versione
  • Hudson e Jenkins per la gestione delle build
  • Selenio e robot per i test
  • Bugzilla, Request Tracker e Jira per la registrazione, la comunicazione e il tracciamento

Ancora una volta, questo non è un elenco completo, ma qualcosa che tengo in mente per guidarmi e spero che possa aiutare anche te.


Linux
  1. Test di integrazione continui per il kernel Linux

  2. Come controllare la versione del kernel su Linux

  3. Cos'è Content Curation e come dovresti farlo?

  4. Procedura:replica e configurazione DRBD

  5. Come creare e applicare la patch SVN?

Come installare e utilizzare Git nel sistema Linux

Come controllare i dettagli della versione di Ubuntu e altre informazioni di sistema

Come ottenere l'ultima versione (beta e sviluppo) di Chromium?

Come installare e configurare Redis su un sistema Linux

Come installare lo strumento di fornitura e gestione della configurazione di Foreman su CentOS 8

Come tracciare e tracciare un processo Linux