Quando SQL non è abbastanza: controlli per nuovi enormi data center

Autore: Judy Howell
Data Della Creazione: 3 Luglio 2021
Data Di Aggiornamento: 22 Giugno 2024
Anonim
Quando SQL non è abbastanza: controlli per nuovi enormi data center - Tecnologia
Quando SQL non è abbastanza: controlli per nuovi enormi data center - Tecnologia

Contenuto



Porta via:

Gli sviluppatori e gli ingegneri devono lavorare continuamente per accelerare e migliorare i servizi su piattaforme che sono cresciute ben oltre i loro archetipi classici degli anni '90.

Con tutto il trambusto di enormi data center NSA che contengono migliaia di bit di dati sulla nostra vita privata, c'è una cosa di cui non si è parlato molto, almeno sulla CNN. Implica un problema di ingegneria che è emerso insieme alla tecnologia cloud, ai big data e agli impressionanti centri di archiviazione dei dati fisici che ora vengono costruiti in tutto il mondo. Quindi, cos'è? Bene, indipendentemente da chi amministri uno dei giganteschi sistemi IT che gestiscono queste strutture, c'è bisogno di sistemi software che aiutino tutti questi dati a entrare e uscire rapidamente dalla pipeline. Questa esigenza rappresenta una delle domande o dei puzzle IT più interessanti che i professionisti devono affrontare oggi.


Come molti esperti sottolineano, l'estrema richiesta odierna per l'elaborazione dei dati va ben oltre gli approcci tradizionali. In poche parole, l'utilizzo di semplici strutture e strumenti di database come l'interfaccia di query SQL non fornirà abbastanza potenza di elaborazione o funzionalità per artisti del calibro di sistemi proprietari che si sono sviluppati negli ultimi anni. Gli archivi delle grandi aziende tecnologiche di oggi necessitano di una tecnologia estremamente scalabile. Hanno bisogno di strumenti di elaborazione dei dati in grado di immettere e produrre risultati in volumi molto più elevati rispetto a quelli che un singolo server può facilitare. Hanno bisogno di soluzioni che possano essere rapidamente accelerate per la crescita, soluzioni che includono livelli complessi di intelligenza artificiale, soluzioni progettate per una facile gestione da parte di un dipartimento IT.

La domanda è: in che modo le aziende e le agenzie governative superano i limiti del tradizionale percorso di gestione dei dati? Qui diamo un'occhiata a un'opzione molto promettente: il software che gestisce i big data e l'amministrazione di più data center.


File system di Google: un grande caso di studio

La tecnologia proprietaria che Google utilizza per accedere ai suoi data center è uno dei migliori esempi di modelli comuni per la gestione dei big data e l'amministrazione di più data center. Il Google File System (GFS), sviluppato nel 2003, è progettato per supportare l'enorme volume di modifiche ad alta velocità ai sistemi di dati che fanno parte di ottenere così tante nuove informazioni dentro e fuori da una singola piattaforma mentre milioni di utenti fanno clic su lo stesso tempo. Gli esperti si riferiscono a questo come a un file system distribuito e usano il termine "archiviazione di oggetti di dati" per descrivere queste tecniche altamente complesse. In realtà, tuttavia, questi termini non graffiano nemmeno la superficie in termini di descrizione di ciò che è al lavoro.

Individualmente, le funzionalità e i componenti che compongono un sistema come GFS potrebbero non essere più innovativi, ma sono complessi. Molti di questi sono stati trattati in questo sito come innovazioni relativamente nuove che fanno parte delle basi per un nuovo sistema IT globale, sempre attivo e sempre connesso. Collettivamente, un sistema come GFS è molto più della somma delle sue parti: è una rete in gran parte invisibile ma estremamente complessa brulicante di singoli pezzi di dati che vengono lanciati in questo modo e che in un processo che, se completamente modellato visivamente, sembrerebbe caos. Capire dove stanno andando tutti i dati richiede molta energia e impegno, come ammetteranno prontamente coloro che gestiscono le stazioni di battaglia di questi sistemi.

"Ci sono troppi dettagli che hanno un profondo impatto su aree di usabilità - tra cui frammentazione interna ed esterna, aggiornamenti basati sul registro vs. aggiornamenti sul posto e livelli di coerenza delle transazioni - per riassumere il modo in cui funziona in una singola frase succinta ", afferma Momchil Michailov, CEO e co-fondatore di Sanbolic.

"Un file system distribuito è un aggregatore distribuito di spazi dei nomi locali e spazi liberi dei nodi partecipanti o un file system locale che viene eseguito su più nodi accedendo allo spazio di archiviazione condiviso con l'aiuto di un componente di gestione blocchi distribuito", ha affermato.

Kerry Lebel è senior product manager di Automic, una società nota per le sue piattaforme di automazione scalabili. Lebel afferma che, sebbene sia preciso descrivere un DFS come un sistema che assegna semplicemente i carichi di lavoro ai server collegati a componenti hardware a basso costo, ciò non racconta davvero l'intera storia.

Nessun bug, nessuno stress: la tua guida passo passo alla creazione di software che ti cambia la vita senza distruggere la tua vita

Non puoi migliorare le tue capacità di programmazione quando a nessuno importa della qualità del software.

"Quello che ti manca è tutto il fattore interessante di Come fanno quello che fanno ", ha detto Lebel.

Quando ti allontani dai dettagli tecnici e pensi solo all'idea alla base del file system distribuito, il "fattore interessante" di cui parla Lebel è evidente. Questi sistemi di gestione dei big data sostituiscono i vecchi sistemi di file / cartelle con strutture che coinvolgono non solo più sistemi di consegna, ma un approccio "orientato agli oggetti", in cui un vasto numero di unità viene fatto qua e là per evitare colli di bottiglia.

Pensa, ad esempio, a un sistema autostradale all'avanguardia, in cui centinaia di migliaia di auto non vengono semplicemente incanalate lungo una multilinea immediatamente, ma raccolte in una piccola foglia di trifoglio o affluenti di bufali, che vengono fatti girare e inviati verso le loro destinazioni su una varietà di deviazioni. Dal cielo, tutto sembra coreografato come un orologio svizzero. Questo è il tipo di modello visivo che gli ingegneri osservano quando escogitano nuovi modi per instradare le informazioni intorno alle limitazioni "calciandole" a diversi livelli di uno schema di contenimento dei dati a più livelli. Lasciando da parte le specifiche, questo è l'obiettivo di primo livello di un sistema di gestione: mantenere quegli oggetti autonomi con i loro metadati incorporati che si spostano alla massima velocità dove devono essere, per raggiungere obiettivi di coerenza, soddisfare un utente finale o anche per informare un'osservazione o un'analisi di alto livello.

Uno sguardo alla tecnologia di base

Un articolo di Sean Gallagher che è apparso su Ars Technica suddivide il design GFS in parti un po 'più gestibili e suggerisce ciò che c'è sotto il foglio di Google.

GFS inizia con un modello ridondante e tollerante agli errori per la lettura e la scrittura dei dati. L'idea qui è che invece di scrivere un aggiornamento specifico su una singola unità, i nuovi sistemi scrivono blocchi di dati su più destinazioni. In questo modo, se una scrittura fallisce, altre rimarranno. A tale scopo, un componente di rete primario esegue la gestione dei dati verso altre unità subordinate, aggregando nuovamente i dati quando un client lo "chiama". Tutto ciò è reso possibile da un protocollo di metadati che aiuta a identificare dove si trovano determinati aggiornamenti e risultati di trasmissione all'interno del sistema più grande.

Un altro aspetto molto importante di ciò è il modo in cui questi sistemi duplicati pesanti impongono la coerenza dei dati. Come osserva Gallagher, il design di GFS sacrifica un po 'di coerenza pur "applicando l'atomicità" o proteggendo il principio di come i dati vengono aggiornati su più unità di archiviazione per adattarsi nel tempo. Il "modello di coerenza rilassato" di Google sembra seguire la teoria essenziale del modello BASE, che offre maggiore flessibilità in cambio di un arco di tempo più lungo per l'applicazione della coerenza.

In che modo altri grandi sistemi ottengono questo risultato?

"Quando si raggiunge una scala sufficientemente ampia, le incoerenze o le corruzioni nei dati diventano inevitabili", afferma Michailov. "Pertanto, un obiettivo primario dei file system distribuiti dovrebbe essere la capacità di eseguire il maggior numero possibile di operazioni in presenza di corruzione, fornendo al contempo metodi efficienti per gestire la corruzione contemporaneamente". Michailov menziona anche la necessità di preservare le prestazioni attraverso un'attenta implementazione della ridondanza.

"Ad esempio, la creazione di metadati (dati relativi ai dati) su ciascun disco consente a quel disco di ricostruire la propria struttura di dati corretta se la sua copia mirror è danneggiata", ha detto Michailov. "Inoltre, i livelli RAID possono essere utilizzati per combattere gli errori di archiviazione a livello di aggregatore di file system o di gestore di volumi condivisi."

Discutendo di un altro modello di coerenza, Lebel si concentra su un sistema chiamato file system distribuito Hadoop (HDFS), che definisce uno "standard di fatto del settore".

In HDFS, afferma Lebel, ogni blocco di dati viene replicato tre volte su nodi diversi e su due rack diversi. I dati sono controllati end-to-end. Gli errori vengono segnalati a NameNode, un gestore dati che elimina i blocchi corrotti e ne crea di nuovi.

Tutto ciò supporta i tipi di "dati puliti" che sono così importanti per l'integrità di uno di questi sistemi di dati di massa.

Mantenimento di un DFS

Un altro aspetto molto diverso di GFS proviene da un articolo di ottobre 2012 dello scrittore Wired Steven Levy. È molto più breve nel caratterizzare l'approccio software per la gestione collettiva della rete dall'alto verso il basso di Google.

"Nel corso degli anni", scrive Levy, "Google ha anche creato un sistema software che gli consente di gestire i suoi innumerevoli server come se fossero un'unica entità gigante. I suoi sviluppatori interni possono agire come burattinai, inviando migliaia di computer per esibirsi attività facilmente come l'esecuzione di una singola macchina. "

Ciò comporta anche tonnellate di cyber-based e manutenzione ambientale, da team di test dedicati che cercano di "rompere" i sistemi server, a temperature attentamente controllate attraverso le sale della cripta dei dati.

Levy menziona anche tecnologie supplementari per GFS, come MapReduce, uno strumento di applicazione cloud e Hadoop, un motore di analisi che condivide alcuni principi di progettazione con GFS. Questi strumenti hanno il loro impatto sul modo in cui i sistemi di gestione dei grandi data center vengono progettati e sulle probabilità che emergeranno in futuro. (Ulteriori informazioni su queste tecnologie in The Evolution of Big Data.)

Michailov ritiene che MapReduce abbia il potenziale per supportare sistemi di data center sempre più grandi e parla di una "singola implementazione" di file system condivisi e aggregati che potrebbero "mantenere i nodi dei nomi di un file system aggregato in un cluster condiviso con SSD per l'archiviazione ".

Da parte sua, Lebel vede un passaggio dall'elaborazione batch (il metodo supportato da Hadoop) all'elaborazione in streaming, che porterà queste operazioni di dati più vicine al tempo reale.

"Quanto più velocemente siamo in grado di elaborare i dati e renderli disponibili ai decisori aziendali o ai nostri clienti, tanto più ci sarà un vantaggio competitivo", afferma Lebel, che suggerisce anche di sostituire la suddetta terminologia di elaborazione con termini che si concentrano sul utente finale. Pensando alle attività "sincrone" o alle attività sincronizzate con le azioni dell'utente finale e alle attività "asincrone" più flessibili in termini di implementazione, Lebel afferma che le aziende possono utilizzare gli SLA e altre risorse per definire il funzionamento di un determinato sistema di servizi .

Ciò che si riduce a, in un certo senso, è che sviluppatori e ingegneri hanno bisogno di lavorare continuamente per accelerare e migliorare i servizi su piattaforme che sono cresciute ben oltre i loro archetipi classici degli anni '90. Ciò significa guardare criticamente alla macchina dei dati e superare i colli di bottiglia in modi che supportano non solo una popolazione in crescita, ma quel cambiamento esponenziale che sta avvenendo a velocità vertiginosa che gli esperti chiamano "la prossima rivoluzione industriale". È probabile che coloro che apriranno la strada su questi fronti finiranno per dominare i mercati e le economie del futuro.