Sono Contenitori che vale la Pena il mal di testa?

0
157

I contenitori sono Unix concetto che permette alle applicazioni di essere imballato con tutte le loro dipendenze necessarie in uno facile da eseguire immagine. Questo è clamoroso benefici per DevOps flusso di lavoro, ma vale la pena l’extra fastidio?

Contenitori di Sincronizzare Dev e Prod Ambienti

Con i contenitori, la cui idea di base è che il pacchetto di tutto il necessario per eseguire il tuo codice in un punto facilmente distribuibile immagine. Questo significa che tutto ciò che è necessario per eseguire l’immagine è quella di scaricare ed eseguire finestra mobile di esecuzione.

Sono finiti i giorni di “non funziona sulla mia macchina.” Con i contenitori forniti da ognuno di noi ha la finestra Mobile installato correttamente e sa come usarlo—il contenitore deve essere eseguita molto vicino a esattamente la stessa macchina come tutti elses.

Inoltre, questo vale anche per il vostro ambiente di produzione pure. Si potrebbe attivare un qualche dev caratteristiche nelle build di sviluppo, ma per la maggior parte, i contenitori potranno essere inviati per i server di produzione. Non dovresti avere molti problemi con l’hosting di contenitori.

Contenitori Consentono Di Scala Efficiente

Becaue è così facile eseguire un contenitore, ci sono un sacco di servizi che verranno eseguiti per voi. Questi sono di solito indicati come strumenti di orchestrazione—strumenti per gestire l’esecuzione di più istanze di contenitori in molti server.

AWS è il loro Elastico Servizio Container, che gestisce l’esecuzione dei contenitori su una flotta di istanze EC2, o sulla propria Fargate servizio. Kubernetes è open source, e molti fornitori di cloud fornire integrazioni utilizzo.

Ogni orchestrazione del servizio sarà in grado di monitorare lo stato di salute delle vostre istanze e spin up di nuove quando il traffico è elevato. Questo consente di scala efficiente, che si può risparmiare un sacco di soldi in costi di hosting (fino al 90% su AWS con Scala Automatica e Posto Istanze), e significa che non dovete preoccuparvi troppo di superare la vostra infrastruttura.

Inoltre, i contenitori non avere la stessa esperienza di un degrado delle prestazioni che viene fornito con le macchine virtuali in esecuzione, in quanto non è necessario eseguire un sistema operativo guest per ogni app. Questo rende il contenitore di hosting più economico in generale, e molto più efficiente.

E tutto ciò è reso possibile a causa della natura dei contenitori, con nessun lavoro aggiuntivo necessario. Si può fare la stessa cosa su AWS personalizzati utilizzando AMIs, ma sono molto più difficili da gestire rispetto ai contenitori, e vi ritroverete a fare lo stesso lavoro comunque.

Contenitori Di Controllo Di Versione Del Tuo SysAdmin

Forse la più bella conseguenza di contenitori è che si mettono tutti i vostri server di configurazione di tuo amministratore di testa e su git, dove possono essere gestiti e monitorati. Perché ogni nuovo pacchetto, file di configurazione, script di installazione, e la dipendenza si trova all’interno della cartella creata per il contenitore, è banale gancio fino a che il controllo del codice sorgente.

Contenitori di integrare in modo particolare per le Operazioni sul lato di DevOps flusso di lavoro. Essi consentono di utilizzare la stessa versione di gestione e sistemi di collaudo per gestire il vostro server di architettura. E poiché ognuno di noi è in sync utilizzando lo stesso ambiente per sviluppare, costruire e testare, dovrebbe scorrere senza intoppi.

Inoltre, la finestra Mobile funziona bene con la continua integrazione di sistemi. Mobile versioni sono facili da automatizzare, soprattutto se si sta utilizzando Azure Gasdotti. Spingendo un Pannello di immagine per la vostra flotta di server è semplice come aggiornare l’immagine nel repository. Si può anche distribuire un nuovo contenitore su un sottoinsieme di server per monitorare il suo stato di salute prima della distribuzione di tutta la flotta, qualcosa di non banale da implementare, senza contenitori.

Il Rovescio Della Medaglia: Il Mal Di Testa È Reale

Cerchiamo di essere reale contenitori sono certamente la soluzione più elegante, ma sono il modo più difficile da impostare e utilizzare, anche solo rispetto a cottura fino a un nuovo Linux box e passare un’ora di installare il software. Ognuno di noi ha fatto l’ultimo, ma il primo tempo si impiega molto più tempo di investimento complessivo. (Anche se, se si esegue un sacco di server, Mobile ha solo bisogno di essere configurato una sola volta.)

Se il vostro compito non è particolarmente complicato, o non avete un sacco di domanda, di attuazione con contenitori può essere eccessivo. Non c’è nessuna vera ragione per containerize nginx e il nodo, se sei solo in esecuzione in una sola istanza.

E mentre i contenitori di rendere più semplice per gestire tutte le dipendenze che possono venire con l’esecuzione di app, è anche molto di più di un dolore per eseguire Mobile e associare le porte ogni volta che si desidera testare la tua app, rispetto ad appena il npm avviare o qualcosa di simile nella directory del progetto. Questo può sicuramente essere mitigato con gli script di avvio, ma se siete su macOS o Windows, siete ancora in esecuzione un intero VM solo per caricare la tua web app.

Alla fine della giornata, se sei un fan di Mobile e i suoi concetti, nulla ti impedisce di utilizzarlo per i tuoi progetti personali. Ma i vantaggi di Mobile solo iniziare davvero a superare il mal di testa una volta, stiamo operando in una grande squadra. In un ambiente della squadra, portando tutto ciò che circonda la tua app in versione sistemi di gestione e DevOps flusso di lavoro consente la produzione di fluire senza intoppi.