La containerizzazione in rete era, fino a poco tempo fa, una tecnologia relativamente oscura che era conosciuta e padroneggiata solo da pochi specialisti altamente qualificati . Avanti veloce fino ad oggi e le cose sono cambiate, molto. La containerizzazione nel networking, da non confondere con la containerizzazione nel trasporto, anche se ci sono ovvie somiglianze, è ormai diventata mainstream e ogni professionista del networking ha bisogno di avere almeno una conoscenza di base di questa straordinaria, sebbene complessa tecnologia.
Il nostro obiettivo non è in alcun modo rendervi esperti di containerizzazione, ma piuttosto fornirvi informazioni sufficienti per capire cos'è la tecnologia, come funziona, quali prodotti sono disponibili e come può essere monitorata.
Inizieremo descrivendo brevemente la containerizzazione e come si differenzia dalla virtualizzazione, un'altra tecnologia con obiettivi simili. Discuteremo quindi i pro ei contro della tecnologia e daremo una rapida occhiata a come può essere utilizzata nei contesti di BYOD, Saas e MDM. Successivamente, esploreremo quale software di containerizzazione è disponibile prima di esaminare alcuni dei migliori strumenti che puoi utilizzare per monitorare il tuo ambiente di containerizzazione.
Containerizzazione in poche parole
La containerizzazione delle applicazioni è un metodo di virtualizzazione a livello di sistema operativo utilizzato per distribuire ed eseguire applicazioni distribuite senza la necessità di avviare un'intera macchina virtuale per ciascuna applicazione. Più applicazioni o servizi isolati possono quindi essere eseguiti su un singolo host e accedere allo stesso kernel del sistema operativo.
I contenitori delle applicazioni includono i componenti di runtime, come file, variabili di ambiente e librerie, necessari per eseguire il software desiderato. I contenitori delle applicazioni in genere consumano meno risorse rispetto a una distribuzione comparabile su macchine virtuali perché i contenitori condividono le risorse senza la necessità di un sistema operativo completo per supportare ogni ambiente. Il set completo di informazioni da eseguire in un contenitore è chiamato immagine e i motori del contenitore distribuiscono queste immagini sugli host. I container possono funzionare su sistemi bare metal, istanze cloud e macchine virtuali, nonché su sistemi Linux, Windows e Mac OS.
La containerizzazione delle applicazioni, come viene spesso chiamata, funziona con microservizi e applicazioni distribuite con ogni contenitore che opera indipendentemente dagli altri e utilizza risorse minime dall'host. Ogni microservizio comunica con gli altri tramite interfacce di programmazione delle applicazioni, con il livello di virtualizzazione del contenitore in grado di scalare i microservizi per soddisfare la domanda di un componente dell'applicazione e distribuire il carico.
In che modo la containerizzazione differisce dalla virtualizzazione?
Sebbene la containerizzazione e la virtualizzazione abbiano entrambe uno scopo simile, sono molto diverse nel modo in cui operano. Nella virtualizzazione, ad esempio, l'essenza del sistema operativo viene eseguita come un'applicazione mentre appare come un host virtuale distinto. Questo sistema operativo è, a sua volta, disponibile per qualsiasi applicazione installata sull'host virtuale. Al contrario, i contenitori raggruppano le parti del sistema operativo con ciascuna applicazione e solo gli elementi, le librerie e i moduli necessari per ciascuna applicazione vengono raggruppati con esso.
Un altro modo per vederlo è che le macchine virtuali impostano identità separate per un host e gli consentono di apparire come se fossero più macchine fisiche. La virtualizzazione crea un'astrazione dell'hardware. Con la containerizzazione, invece, sono le applicazioni ad essere astratte. Nel complesso, entrambe le tecnologie forniscono un certo grado di isolamento tra gli ambienti, ma lo ottengono in un modo molto diverso.
Nella containerizzazione, il contenitore e il suo sistema operativo formano essenzialmente una sorta di rete, consentendo a un'applicazione di essere consegnata a una macchina altrimenti incompatibile. Ma contrariamente a quanto accade nella virtualizzazione, le applicazioni possono condividere contenitori ed è necessaria una sola istanza del sistema operativo.
I pro ei contro della containerizzazione
Uno dei maggiori vantaggi della containerizzazione rispetto alla virtualizzazione è che non è necessario installare in modo permanente quel livello aggiuntivo del sistema operativo virtuale sulla macchina ricevente. Di conseguenza, un'applicazione containerizzata è in genere molto più portabile in quanto rimuove i requisiti per software, servizi o sistemi operativi preinstallati sul computer di destinazione. Inoltre, le applicazioni containerizzate possono essere eseguite su host bare metal e server remoti o cloud con ambienti sconosciuti.
Un'altra cosa grandiosa della containerizzazione è come la vicinanza dei servizi del sistema operativo alle applicazioni che ne hanno bisogno all'interno del contenitore spesso significa che può fornire tempi di risposta più rapidi agli utenti finali rispetto a una tipica macchina virtuale. E ci sono anche molti meno recuperi sulla rete necessari per fornire un'applicazione containerizzata rispetto a far funzionare una macchina virtuale a cui si accede in remoto. E, ultimo ma certamente non meno importante, la containerizzazione presenta numerosi vantaggi rispetto al software distribuito. In effetti, è proprio quella categoria di servizi di rete che è stata la ragione principale del recente boom della containerizzazione.
Ma i contenitori non hanno solo vantaggi e ci sono alcuni casi in cui potresti preferire evitarli. Per cominciare, sebbene la containerizzazione funzioni bene per i sistemi operativi Linux, non è supportata altrettanto bene su Windows. Inoltre, poiché i contenitori condividono il kernel del sistema operativo, se diventa vulnerabile, anche tutti i contenitori saranno vulnerabili.
Il networking è un'altra area che può rendere difficile lavorare con i container. Ad esempio, è necessario mantenere costantemente una buona connessione di rete mentre si cerca attivamente di mantenere isolati i contenitori. Allo stesso modo, anche il monitoraggio presenta una serie di sfide. Poiché la containerizzazione viene in genere utilizzata per creare infrastrutture a più livelli, con un'applicazione in un contenitore, devi monitorare più cose di quanto faresti se eseguissi tutte le applicazioni su un'unica macchina virtuale.
Containerizzazione e BYOD
Bring Your Own Device, o BYOD, è diventato molto popolare ultimamente e molte organizzazioni consentono ai propri dipendenti di utilizzare il proprio smartphone o persino laptop nel contesto del proprio lavoro. La containerizzazione può essere d'aiuto in quanto le applicazioni possono essere rese disponibili sulla rete per consentire ai dipendenti di accedere dai propri dispositivi personali. In queste situazioni, il contenitore funge da "immunizzatore", creando una barriera tra l'applicazione aziendale e il dispositivo di proprietà dell'utente. Questo, tuttavia, deve essere gestito con attenzione poiché il contenitore ha accesso al kernel del dispositivo dell'utente.
Tuttavia, la containerizzazione offre un ovvio vantaggio in termini di sicurezza per l'organizzazione che fornisce l'applicazione poiché elimina la necessità di fornire all'utente l'accesso diretto alla rete, riducendo così il rischio di infezione da virus per l'infrastruttura aziendale.
Un altro vantaggio della containerizzazione rispetto al BYOD ha a che fare con il controllo delle licenze software. Ad esempio, un'applicazione può essere facilmente ritirata dall'uso in qualsiasi momento. Poiché non è mai stato effettivamente installato sul dispositivo dell'utente, può essere sospeso se il proprietario del dispositivo lascia l'organizzazione o se il dispositivo viene rubato, consentendo il riutilizzo della licenza.
E, ultimo ma non meno importante, poiché la comunicazione tra applicazioni in esecuzione in contenitori separati può essere abilitata tramite API, l'effettiva quantità di integrazione e coordinamento o, all'altro capo della scala, isolamento, può essere facilmente controllata.
Containerizzazione e SaaS
Software as a Service (SaaS) è un'altra area in cui la containerizzazione può apportare un ovvio valore. Ad esempio, i contenitori possono essere limitati, semplificando il monitoraggio e il controllo dell'accesso al software da dispositivi remoti. Questo può rivelarsi molto utile per i provider che hanno bisogno di rendere disponibile il loro software dal cloud su abbonamento. In tali casi, il contenitore crea una partizione temporanea sul dispositivo host e tale partizione può essere sospesa a piacimento dal provider.
Inoltre, la possibilità di fornire software a dispositivi incompatibili senza la necessità di installare servizi di supporto è particolarmente utile per i servizi cloud in quanto espande il metodo di consegna di un'applicazione oltre l'uso dei browser.
Containerizzazione e gestione dei dispositivi mobili
La gestione dei dispositivi mobili (MDM) è un'altra area in cui la containerizzazione brilla. In poche parole, MDM è sostanzialmente la stessa cosa del BYOD, tranne per il fatto che i dispositivi mobili sono di proprietà e controllati da un'organizzazione piuttosto che dai suoi dipendenti. Ma le sfide sono le stesse. Ad esempio, la containerizzazione può essere un'ottima opzione per la distribuzione di applicazioni su dispositivi mobili poiché possono essere facilmente perse o rubate.
Software di containerizzazione
Diamo una breve occhiata ad alcuni dei più comuni software di containerizzazione attualmente disponibili.
Docker
Docker è di gran lunga il sistema di containerizzazione più conosciuto. A differenza della maggior parte degli ambienti di containerizzazione che verranno eseguiti solo sulla piattaforma Linux, questo verrà eseguito anche su Windows. E per rendere le cose ancora più interessanti, questo è un progetto open source che può essere assolutamente gratuito da usare anche se esistono versioni a pagamento. La versione gratuita è nota come Community Edition o Docker CE. Puoi scaricare il codice per Docker CE da un repository GitHub. Il software può essere installato su Fedora, Ubuntu, CentOS e Debian Linux ed è disponibile anche per Mac OS e Windows 10. Inoltre, se hai Windows Server 2016 e versioni successive, non dovrai nemmeno installare Docker in quanto è già in bundle con il sistema operativo. Su Windows e Windows Server, il sistema Docker si basa sui servizi di Hyper-V per l'esecuzione.
LXC
Il prossimo sulla nostra lista è LXC, l'abbreviazione di Linux Containers, uno dei più antichi sistemi di containerizzazione che, fino ad oggi, rimane ancora molto influente nonostante abbia perso popolarità a favore di Docker, lanciato circa tre anni dopo. Come probabilmente otterrai dal nome, questa piattaforma è disponibile solo per Linux. In effetti, è già in bundle in Ubuntu. Come nota a margine, avrai bisogno di un kernel Linux 3.8 o successivo per creare contenitori LXC. Questo prodotto è completamente gratuito. Ma con nient'altro che un ambiente a riga di comando come interfaccia di gestione, non è facile da imparare e utilizzare come Docker. Questo molto probabilmente spiega perché Docker è diventata la star del mondo della containerizzazione.
Kubernetes
In quanto emergente, Kubernetes è probabilmente l'unica alternativa a Docker che potrebbe avere la possibilità di diventare il sistema di containerizzazione numero uno. È un altro progetto open source ed è stato creato ed è gestito da Google. Fa parte della famiglia di prodotti Google Cloud e puoi contare sul suo background Google per aiutare la piattaforma a raggiungere grandi vette.
I container vengono creati utilizzando Google Kubernetes Engine (GKE), un ambiente basato su cloud. In alternativa, puoi ottenere una versione installata da eseguire sui tuoi host. Quello si chiama GKE On-Prem. Anche questo è un progetto open source, quindi il codice è disponibile per chiunque possa creare la propria versione dello strumento. Sorprendentemente, ciò è avvenuto principalmente attraverso varie integrazioni con strumenti front-end piuttosto che attraverso fork del codice originale in piattaforme concorrenti. C'è, ad esempio, il servizio Azure Kubernetes, disponibile sulla piattaforma cloud di Azure.
CoreOS rkt
CoreOS rkt (pronunciato CoreOS rocket) è un altro progetto di containerizzazione open source. Questo è stato avviato nel 2014 con l'obiettivo di fornire un sostituto per Docker nel più ampio sistema di containerizzazione chiamato Container Linux, che non deve essere confuso con i container Linux di cui abbiamo appena parlato. Il sistema CoreOS rkt si installa su Linux ed è progettato come metodo per fornire applicazioni da servizi basati su cloud. Container Linux era originariamente chiamato CoreOS Linux. È un sistema operativo leggero. Per quanto riguarda CoreOS rkt, è un sistema di containerizzazione che fornisce Container Linux sulle reti. Può, tuttavia, essere utilizzato anche su ArchLinux, Fedora, NixOS, CentOS, Ubuntu e OpenSUSE.
ApriVZ
L'ultimo della nostra lista è OpenVZ, l'abbreviazione di Open Virtuozzo. Questo sistema è stato introdotto nel 2005, rendendolo ancora più vecchio di LXC. È un pacchetto di containerizzazione che viene eseguito su Linux. La parte Virtuozzo del nome deriva dal precursore di questo sistema ancora oggi disponibile. Virtuozzo è stato sviluppato da un'azienda privata e rilasciato nel lontano 2000. È stata la prima vera implementazione di contenitori. Alcuni anni dopo, una versione gratuita e open source della tecnologia è stata resa disponibile come OpenVZ ed è ancora disponibile oggi.
Monitoraggio dei sistemi containerizzati
Il monitoraggio dei sistemi containerizzati è leggermente diverso dal monitoraggio delle macchine virtuali, ma spesso è possibile utilizzare gli stessi strumenti. Dopotutto, un sistema containerizzato è, alla sua base, un'applicazione in esecuzione su un server
1. SolarWinds Server & Application Monitor (PROVA GRATUITA)
Il SolarWinds Server e Application Monitor è stato progettato per i server amministratori aiutare a monitorare, i loro parametri di funzionamento, i loro processi, e le applicazioni che sono in esecuzione su di loro. Può facilmente scalare da reti molto piccole a reti di grandi dimensioni con centinaia di server, sia fisici che virtuali, distribuiti su più siti. Lo strumento può anche monitorare servizi ospitati su cloud come quelli di Amazon Web Services e Microsoft Azure, nonché la maggior parte delle varianti delle piattaforme di containerizzazione.
Questo prodotto è particolarmente adatto per il monitoraggio delle implementazioni Docker. La soluzione è progettata per monitorare qualsiasi applicazione che utilizza l'architettura del contenitore Docker per comprendere meglio la disponibilità e le prestazioni. È possibile utilizzare il monitoraggio Docker del prodotto per verificare che l'applicazione funzioni come previsto e che i servizi necessari dispongano di risorse appropriate. Può anche aiutarti a correlare e gestire le metriche delle prestazioni delle applicazioni insieme al monitoraggio dei container Docker e alle metriche degli host per visualizzare le prestazioni che possono aiutare nella risoluzione dei problemi di prestazioni.
Il SolarWinds Server e Application Monitor è molto facile da configurare e la sua configurazione iniziale è altrettanto semplice con l'aiuto del suo processo di rilevamento automatico. È un processo a due passaggi. Il primo passaggio rileverà i server e il secondo troverà le applicazioni. Questo può richiedere tempo, ma può essere accelerato fornendo allo strumento un elenco di applicazioni specifiche da cercare. Una volta che lo strumento è attivo e funzionante, la GUI intuitiva rende l'utilizzo un gioco da ragazzi. Puoi scegliere di visualizzare le informazioni in formato tabella o grafico.
I prezzi per SolarWinds Server e Application Monitor partono da $ 2 995 e variano in base al numero di componenti, nodi e volumi monitorati. Una versione di prova gratuita di 30 giorni è disponibile per il download, se desideri provare il prodotto prima di acquistarlo.
2. Gestore applicazioni ManageEngine
ManageEngine potrebbe non essere così noto come SolarWinds, ma è ancora un altro nome che gode di un'ottima reputazione tra gli amministratori di rete e di database. L' Application Manager di ManageEngine si occupa della gestione delle applicazioni. Probabilmente l'avevi capito da solo. Questo è, tuttavia, un nome un po' fuorviante in quanto è tanto una piattaforma di monitoraggio quanto uno strumento di gestione.
Questo strumento offre il monitoraggio integrato delle prestazioni delle applicazioni per tutte le esigenze di monitoraggio di server e applicazioni. Può anche farlo per i componenti dell'infrastruttura sottostanti come server applicativi, database, middleware e componenti di messaggistica, server Web, servizi Web, pacchetti ERP, sistemi virtuali e risorse cloud. In poche parole, questa è una piattaforma onnicomprensiva.
Il gestore dell'applicazione ManageEngineha un'estensione specifica per il monitoraggio dei contenitori Kubernetes e Docker. Ad esempio, la gestione Docker dello strumento non solo offre informazioni sull'integrità e sulle prestazioni dei container Docker, ma consente anche il monitoraggio dell'host Docker attraverso un solido motore di monitoraggio, avviso e analisi. Per quanto riguarda le sue capacità di monitoraggio del cluster Kubernetes, ti permetteranno di scoprire automaticamente le parti e mappare le relazioni tra gli oggetti nei nodi cluster-Kubernetes, negli spazi dei nomi, nelle distribuzioni, nei set di repliche, nei pod e nei contenitori. Inoltre, monitorerà le statistiche del cluster Kubernetes e identificherà facilmente i guasti e le loro origini. Usandolo, otterrai visibilità sui dati operativi come il numero di risorse utilizzate, gli spazi dei nomi per cluster e per pod e monitorerai la capacità e l'utilizzo delle risorse del tuo cluster e approfondirai parti specifiche del cluster.
Il ManageEngine Application Manager è disponibile in diverse edizioni. C'è un'edizione gratuita con funzionalità limitate e una versione a pagamento Professional ed Enterprise . Il prezzo parte da $ 945 e i dettagli possono essere ottenuti contattando ManageEngine. È disponibile anche una versione di prova gratuita di 30 giorni.
3. Monitor di rete PRTG
Il PRTG Network Monitor di Paessler AG è un altro ottimo prodotto. Sebbene sia, alla sua base, uno strumento di analisi di rete SNMP, racchiude molte più funzionalità, come stiamo per discutere. La sua velocità di installazione è un altro punto di forza del prodotto. Secondo Paessler, può essere configurato in un paio di minuti. E sebbene la tua esperienza possa variare, l'installazione è generalmente più veloce rispetto alla maggior parte dei concorrenti grazie in parte al motore di rilevamento automatico dello strumento. Il prodotto offre anche una scelta di interfacce utente. Puoi scegliere tra una console aziendale Windows nativa, un'interfaccia web basata su Ajax e app mobili per Android e iOS. Avvisi e report sono eccellenti e il prodotto vanta un'ampia gamma di report che possono essere visualizzati come HTML o PDF o esportati in CSV o XML per essere elaborati esternamente.
Grazie a un concetto piuttosto unico chiamato sensori, un tipo di plug-in di funzionalità già integrato nel prodotto, è possibile monitorare ulteriori metriche con PRTG Network Monitor . Ci sono circa duecento sensori disponibili con il prodotto per monitorare praticamente qualsiasi parametro di rete. Quando si tratta di monitorare i container, in particolare Docker, PRTG ha proprio ciò di cui hai bisogno nel suo Docker Container Status Sensor che, ovviamente, monitora lo stato di un container Docker. Questo sensore visualizzerà diversi parametri come lo stato generale del contenitore (creazione, esecuzione, pausa, riavvio, uscita), il tempo di attività, il codice di uscita, l'utilizzo della CPU e la memoria disponibile sia in byte che in percentuale.
Il PRTG Network Monitor è disponibile in una versione gratuita limitata al monitoraggio di non più di 100 sensori. Ogni parametro che si desidera monitorare conta come un sensore. Ad esempio, il monitoraggio della larghezza di banda su ciascuna interfaccia di un router a 4 porte utilizzerà fino a 4 sensori e il monitoraggio della CPU e della memoria sullo stesso router ne utilizzerà altri 2. Anche ogni sensore aggiuntivo che installi conta. Per più di 100 sensori, di cui molto probabilmente avrai bisogno, avrai bisogno di una licenza. I loro prezzi partono da $1 600 per un massimo di 500 sensori, incluso il primo anno di manutenzione. È disponibile anche una versione di prova gratuita di 30 giorni.
4. Dynatrace
Dynatrace è un'altra offerta SaaS (Software as a Service) basata su cloud. Può rilevare, risolvere e ottimizzare automaticamente le applicazioni. Per scoprire e mappare un complesso ecosistema di applicazioni è sufficiente installare Dynatrace OneAgent . Il servizio ti offrirà una visione ad alta fedeltà dell'intero stack di applicazioni, dalle prestazioni delle applicazioni, all'infrastruttura cloud e all'esperienza utente. Ti aiuterà a rilevare facilmente i problemi insieme al loro impatto sull'attività e alla causa principale.
Dynatrace afferma inoltre di avere la più ampia copertura di qualsiasi soluzione di monitoraggio in termini di lingue supportate, architetture applicative, cloud, on-premise o ibride, app aziendali, monitoraggio SaaS, containerizzazione e altro ancora. Lo strumento rileva e monitora automaticamente i microservizi dinamici in esecuzione all'interno dei contenitori. Ti mostra come stanno funzionando, come comunicano tra loro e ti aiuta a rilevare rapidamente i microservizi con scarse prestazioni. Una volta che ha finito di rilevare la tua infrastruttura, sarai in grado di visualizzare i processi containerizzati attraverso la dashboard dello strumento in tempo reale. Il software può anche monitorare le prestazioni di applicazioni e microservizi situati all'interno dei container.
L'analisi dei log è un'altra utile funzionalità fornita con Dynatrace . È possibile visualizzare tutti i messaggi di registro associati a un'applicazione all'interno di un file di registro. Ogni voce del registro fornisce informazioni aggiuntive che possono essere utilizzate per filtrare la ricerca. Ad esempio, le voci di registro mostreranno l'immagine del contenitore, l'ID che ha registrato il messaggio e l'output utilizzato.
Il prezzo di Dynatrace non è immediatamente disponibile, ma può essere ottenuto registrandosi per la prova gratuita di 15 giorni. Una volta che ti sei registrato per la prova, è solo questione di installare l'agente sui tuoi server e puoi iniziare a monitorare entro 5 minuti.
5. Logica del sumo
Sumo Logic è una soluzione di monitoraggio di applicazioni e log compatibile con piattaforme di containerizzazione come Docker. Il prodotto è stato creato per aggregare grandi volumi di dati di registro da praticamente qualsiasi fonte. Ma la raccolta dei dati di registro è solo l'inizio. Il servizio può anche aiutarti a utilizzare i dati raccolti per monitorare le prestazioni, migliorare le applicazioni e potenzialmente anche affrontare problemi di sicurezza e conformità.
Sumo Logic può monitorare i contenitori in tempo reale. La visualizzazione della dashboard è suddivisa in riquadri di metriche e grafici. In un dashboard è possibile visualizzare un grafico sui primi 10 container per consumo di CPU o sui primi 10 container per traffico inviato e ricevuto, nonché il numero di container creati e il numero di host. L'analisi avanzata è un'altra caratteristica che rende questo prodotto particolarmente forte. La sua capacità di analisi può rilevare automaticamente le anomalie nell'infrastruttura di containerizzazione e quindi automatizzare il processo di identificazione dei problemi di prestazioni.
Sumo Logic è disponibile in tre diversi piani. C'è il piano gratuito che si rivolge a individui e team che desiderano provare Sumo Logic per progetti più piccoli, per un periodo di tempo illimitato. Il prossimo è il piano Professional a $ 90/mese per 1 GB di dati di log giornalieri medi. E nella parte superiore, hai il piano Enterprise completo a $ 150 al mese per 1 GB di dati di registro giornalieri medi. Tieni presente che su entrambi i piani a pagamento è disponibile una prova di 30 giorni.
Avvolgendo
La containerizzazione potrebbe essere alquanto difficile da concettualizzare. Potrebbe, tuttavia, essere la risposta ai requisiti della tua infrastruttura per l'erogazione di servizi a dispositivi remoti. Speriamo di essere stati in grado di far luce su questo argomento complicato. Anche se potremmo non averti reso esperti, il nostro obiettivo era fornirti informazioni di base sufficienti per poter comprendere meglio la tecnologia quando inizi a esplorarla.