Quali sono i pro e i contro dei server SnowFlakes, dei server Phoenix e dei server immutabili?


15

Sono curioso di conoscere una matrice come il confronto sulla sicurezza / facilità di gestione / capacità forense per ogni tipo di server. Potrei anche dimenticare alcune altre caratteristiche chiave di ogni tipo.

Ho un'idea generale dei tipi, ma una matrice di riferimento sarebbe di aiuto quando si sceglie tra loro in alcuni casi (ad esempio quando l'automazione diventa complessa per l'applicazione).

Per evitare la preoccupazione che sia troppo ampia, ritengo che suddividerla in domande multiple spargerebbe le informazioni e che una domanda sul confronto di sicurezza dovrebbe confrontare anche ogni tipo.

Risposte:


15

Il termine Phoenix Server fu coniato da un collega di Martin Fowler, e tutti e tre i termini descritti in brevi articoli sul bliki di Martin.

I pro ei contro di ciascuno di questi server sono descritti negli articoli. La differenza principale sta nella gestione del server.

I server esistono per svolgere il ruolo di contenitore per alcune applicazioni. Poiché le applicazioni cambiano spesso, è spesso necessario modificare alcuni attributi del contenitore - come pacchetti, configurazione, ecc. Talvolta è anche necessario modificare gli attributi del contenitore stesso a causa di motivi esterni, come le vulnerabilità di sicurezza che richiedono patch per essere installato.

Esistono diversi modi per modificare un server esistente:

  1. Crea manualmente il server inizialmente, quindi continua a modificarne il contenuto (mutando) ogni volta che è necessaria una modifica.
  2. "Crea" un'immagine per un server basata su una ricetta, di solito in modo automatizzato (non manualmente). Quindi creare server da quell'immagine. E ripeti questo processo su ogni modifica.

Il primo si chiama Snowflake, mentre il secondo è una pratica che consente i tipi di server Phoenix e Immutable. Laddove Immutable afferma che non vengono apportate modifiche a un server esistente una volta creato, e Phoenix indica che un server viene completamente distrutto e ne viene utilizzato uno nuovo per sostituirlo durante il processo di modifica.


9

Dato che stavo pensando di più a un elenco di vantaggi e svantaggi di ciascun tipo, ecco la mia opinione (non esaustiva, secondo me sono quelli operativi importanti):

  1. Server di fiocchi di neve

    • Cosa sono : i sistemi con la loro configurazione specifica, nessun altro server nel data center ha gli stessi parametri. Di solito sono amministrati manualmente.

    • Vantaggi :

      • Adattato alle esigenze di ciò che sta funzionando su di loro.
      • Di lunga durata, gli aggiornamenti sono in genere corti.
      • Adattato a casi speciali in cui le modifiche sono ben documentate dal prodotto ospitato.
    • Svantaggi :

      • A volte gli aggiornamenti lasciano file inutilizzati, la pulizia potrebbe essere complessa.
      • Quando è necessario apportare modifiche a macchine multiple, ci vuole un po 'di tempo.
      • Nulla impedisce il cambiamento non documentato.
      • In caso di corruzione, è necessario ricostruire un sistema operativo di base e ripristinarlo, alcune modifiche del sistema operativo non possono essere ripristinate e dovrebbero essere riapplicate, è facile scivolare su una linea e dimenticare una modifica importante.
      • Solitamente lungo il provisioning a causa della configurazione manuale.
  2. Server Phoenix

    • Cosa sono : configurati automaticamente da un codice.
    • Vantaggi :

      • Definito da codice, abilitato alla versione.
      • Facilmente replicabile in un determinato momento.
      • Anche aggiornamenti brevi e di lunga durata.
      • Le modifiche ai file controllati sono documentate e non possono essere dimenticate.
    • Svantaggi :

    • A volte gli aggiornamenti lasciano file inutilizzati, la pulizia potrebbe essere complessa.
    • Non tutto è sotto la gestione del codice, alcune modifiche da parte di un essere umano possono essere perse se non incluse nell'automazione.
  3. Server immutabili

    • Cosa sono :
      • Provisioning automatico una tantum da un'immagine master senza accesso.
    • Vantaggi :

      • Definito da codice, abilitato alla versione.
      • Facilmente replicabile in un determinato momento.
      • Superficie d'attacco ridotta grazie alla solita rimozione dell'accesso remoto.
      • Configurazione fissa, nessuna modifica può interrompere qualcosa
      • Facilmente scalabile "su richiesta" dall'immagine principale.
    • Svantaggi :

      • Sono immutabili, devi assicurarti di poter eseguire rapidamente un aggiornamento nel caso in cui un difetto di 0 giorni ti colpisca.
      • Non tutte le applicazioni si adattano bene a questo modello (i database, ad esempio, non è sempre possibile sostituire completamente gli stessi dati, c'è una migrazione da gestire).
      • Porta alcune nuove sfide per l'analisi forense della gestione degli arresti anomali e dei registri.

Nessuno di questi schemi è esclusivo, devi scegliere il migliore in base alle tue reali esigenze. I fiocchi di neve destano molte preoccupazioni in caso di recupero dopo un disastro, quindi la scelta è di solito più tra Phoenix e Immutable.


2

Tutti e tre sono modelli di sorta, non è un caso di scegliere e scegliere quale utilizzare in qualsiasi circostanza specifica, ma un caso di sapere quando riconoscere i modelli che possono aiutarti o ferirti.

Snowflake Server

Un Snowflake Server è un anti-pattern che rappresenta il caso in cui un server si evolve in modo incontrollato al punto da non poter essere facilmente riprodotto.

Ho avuto numerosi run-in con questo tipo di server in produzione, sono abbastanza facili da individuare in quanto di solito c'è un gran numero di modifiche e commenti falliti come "esso [il cambiamento] ha funzionato in Sviluppo / Test / UAT / Staging ".

Phoenix Servier

Un Phoenix Server è più un principio che un modello, come afferma Martin Fowler:

Un server dovrebbe essere come una fenice, che si alza regolarmente dalle ceneri. [un]

Se dovessi applicare IT Service Management (ITSM) o lingua ITIL alla stessa situazione, probabilmente lo chiameresti un piano di continuità del servizio IT o un piano di recupero:

Un piano separato per ciascun servizio dovrebbe fornire procedure dettagliate e linee guida dettagliate per ogni fase di un incidente in modo che le squadre di recupero siano in grado di ripristinare i servizi e quindi di soddisfare il processo concordato e gli RTO componenti.

Server immutabile

Un server immutabile o infrastruttura immutabile è il processo mediante il quale trattiamo tutte le infrastrutture, la configurazione e il codice distribuiti come assolutamente immutabili, ovvero immutabili. Quando distribuiamo qualcosa di nuovo, creiamo una nuova infrastruttura e distribuiamo il codice a questo. È interessante notare che questo soddisfa principalmente le esigenze tradizionalmente soddisfatte da Evergreening .


Appunti

  • a: Il collega Martin, Kornelis Sietsma, trovò il termine "Phoenix Server" in una lista di discussione interna.
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.