Quale ruolo svolgono gli strumenti di gestione della configurazione in un'infrastruttura immutabile?


12

Se sto usando server / container immutabili , ho bisogno di strumenti come Chef, Puppet, Ansible o Salt? Tali strumenti di gestione della configurazione sono progettati per stabilire una configurazione e quindi mantenerla.

Se sto distribuendo server immutabili, dovrei usare gli strumenti di gestione della configurazione solo per il provisioning iniziale?

Risposte:


12

Ci sono alcune risposte a questo:

  1. Qualcosa deve costruire quelle immagini immutabili. È certamente più facile usare gli script procedurali di vecchia scuola per costruire qualcosa quando si parte da uno stato iniziale noto ma questo può ancora diventare molto ingombrante nel tempo (ad esempio Dockerfile), specialmente quando si finisce per desiderare una grande matrice di immagini diverse per cose come diverse versioni di software, ambienti diversi, ecc. Packer e altri strumenti per la creazione di immagini si integrano perfettamente con Chef, Ansible, Puppet, Salt e altro.

  2. L'immutabilità è uno spettro, non un binario. Anche in una distribuzione "molto immutabile" non è raro avere alcuni file di configurazione che richiedono la gestione del runtime. Questo è anche un luogo in cui è possibile utilizzare gli strumenti CAPS, sebbene le opzioni più leggere come i modelli di console o etcd possano avere più senso a seconda dell'infra generale. Se stai eseguendo server di app immutabili ma i tuoi server di database sono gestiti in modo più tradizionale utilizzando Chef, potrebbe avere senso utilizzare Chef anche sul lato immutabile per attività di gestione minori.

  3. Gestione zero-day. L'immutabilità è buona, ma cosa farai quando il prossimo giorno OpenSSL scenderà? Se hai la tua pipeline di build in grado di creare immagini di hotfix immediate e distribuirle, allora è fantastico. Ma molte persone probabilmente non avranno quel tipo di abilità a virata rapida.

  4. Cose che non possono essere immutabili. La non risposta, ma un'intera informazione raramente è immutabile al 100%. Cose come server di database e stazioni di lavoro per sviluppatori (sì, quelli fanno parte della tua infra) sono a metà strada tra difficili e impossibili da rendere immutabili.


Stai facendo molte ipotesi su "molte persone". Coloro che non possono generare immagini per la loro infrastruttura immutabile, molto probabilmente non hanno l'infrastruttura immutabile per cominciare.
Evgeny

Esiste un grande divario tra "può distribuire utilizzando contenitori immutabili" e "può ricostruire e ridistribuire ogni contenitore entro 6 ore anche con altre distribuzioni in corso".
coderanger

E nella mia esperienza, quando hai quel divario (di 6 ore), non sei in grado di avere un'infrastruttura immutabile. Avere server immutabili e costruire server immutabili rapidamente non sono capacità identiche, ma sono strettamente correlate.
Evgeny

Molte persone che affermano che "gestiamo contenitori immutabili" non rientrano in quella categoria. Quindi, sottolineando che è un problema da affrontare, che era il punto centrale della domanda.
coderanger

È possibile definire "immutabile" per significare "Nessuno SSH di dentro e apporta modifiche manuali", perché non può significare tutto immutabile, come cambiano se stessi durante le normali operazioni. Anche scrivere un pidfile è una mutazione.
Gaius,

0

L'ambiente assolutamente immutabile è una cattiva idea, penso.

Strumenti CM come Ansible, Chef, Puppet possono essere utili in molti casi incluso il tuo.

Sto usando ansible per il provisioning iniziale delle istanze di VM in GCP.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.