Il cloud computing: Problematiche nella configurazione del cloud

La selezione, la configurazione e le prestazioni delle applicazioni basate su cloud avranno conseguenze significative sulle prestazioni.

Dan Marinescu

Adattato da "il Cloud Computing: Teoria e pratica"(Elsevier Science & Libri di tecnologia)

Lo sviluppo di applicazioni cloud efficiente è dotato di molte delle stesse sfide dei squilibri naturali trovati in informatica, larghezze di banda i/o e di comunicazione dei sistemi fisici. Queste sfide sono notevolmente amplificate dalla scala del sistema, la natura distribuita e il fatto che praticamente tutte le applicazioni sono dati in modo intensivo.

Anche se qualsiasi infrastruttura di cloud computing idealmente tenta automaticamente di distribuire e bilanciare i carichi di elaborazione, sei ancora lasciato con la responsabilità di immissione dei dati nei pressi del sito di elaborazione e identificando la sua strategia di conservazione ottimale. Uno dei principali vantaggi del cloud computing — l'infrastruttura condivisa — può anche essere uno svantaggio.

Isolamento di prestazioni sono quasi impossibile da raggiungere in un sistema reale, soprattutto quando il sistema viene caricato pesantemente. Questo è ancora più difficile con il cloud computing. Le prestazioni delle macchine virtuali (VM) oscilla basato sul carico, servizi di infrastruttura, ambiente e numero di utenti. Isolamento di sicurezza è un altro fattore stimolante per identificare su sistemi multi-tenant.

Affidabilità è anche delle principali preoccupazioni. Ci si può aspettare fallimenti nodo ogni volta che un gran numero di nodi di competere per calcolare le risorse. La scelta di un'istanza ottima (in termini di isolamento di prestazioni, affidabilità e sicurezza) da quelli offerti dall'infrastruttura cloud è un fattore critico. Considerazioni di costo anche giocare un ruolo nella scelta del tipo di istanza.

L'esperienza di app

Molte applicazioni sono costituite da più fasi. Ogni fase può coinvolgere più istanze in esecuzione in parallelo i sistemi cloud e le comunicazioni tra di loro. Scalabilità di efficienza, la coerenza e la comunicazione sono quindi maggiori preoccupazioni per gli sviluppatori. A causa di reti condivise e topologia sconosciuto, infrastrutture cloud esibiscono latenza internodo e fluttuazioni di banda che spesso colpiscono le prestazioni dell'applicazione.

Archiviazione dei dati svolge un ruolo critico nell'esecuzione di qualsiasi applicazione di uso intensivo di dati. Organizzare l'archiviazione, scegliendo il percorso di archiviazione e gestione della larghezza di banda di memoria devono tutti essere attentamente analizzati per prestazioni ottimali di applicazione. Nuvole supportano molte opzioni di archiviazione, tra cui storage cloud fuori-istanza, montabile su blocco off-istanza deposito e archiviazione persistente per la durata dell'istanza.

Molte applicazioni a uso intensivo di dati utilizzano i metadati associati al record di dati individuali. Ad esempio, i metadati per un file audio MPEG potrebbero includere il nome della canzone, il cantante, la registrazione di informazioni e così via. Metadati devono essere conservati per un facile accesso e archiviazione deve essere scalabile e affidabile.

Registrazione di un'altra importante considerazione per le prestazioni dell'applicazione. È un delicato equilibrio. Considerazioni sulle prestazioni limitare la quantità di dati di registrazione, considerando che la capacità di identificare la fonte di errori e risultati imprevisti è aiutata da frequenti registrazione. Registrazione viene in genere effettuata mediante archiviazione istanza conservati solo per la durata dell'istanza. Così, si dovrebbero sempre prendere misure per conservare i log per un'analisi post mortem.

Opportunità di applicazione

È possibile dividere le applicazioni cloud esistenti in diverse grandi categorie: pipeline di elaborazione, sistemi di elaborazione batch e applicazioni Web. Pipeline di elaborazione sono applicazioni data-intensive e spesso calcolo intensivo. Questi rappresentano un segmento abbastanza ampio di applicazioni attualmente in esecuzione sul cloud. Ci sono diversi tipi di applicazioni di elaborazione dati:

  • **Indicizzazione:**La pipeline di elaborazione supporta l'indicizzazione di grandi set di dati creato da motori crawler Web.
  • **Estrazione mineraria di dati:**La pipeline di elaborazione supporta la ricerca di grandi insiemi di record per individuare gli elementi di interesse.
  • Elaborazione immagini: Un certo numero di aziende consentono di archiviare immagini sul cloud, come Flickr e Google. Le pipeline di elaborazione delle immagini supportano la crittografia, la compressione e la conversione di immagini.
  • **Transcodifica video:**L'elaborazione della pipeline transcodifica da un formato video a altro (ad esempio, da AVI a MPEG).
  • **Elaborazione di documenti:**La pipeline di elaborazione converte le grandi collezioni di documenti da un formato a altro (ad esempio da Word a PDF) o Crittografa i documenti. Potrebbe anche usare il riconoscimento ottico dei caratteri (OCR) per produrre immagini digitali dei documenti.

Sistemi di elaborazione batch anche coprono un ampio spettro di applicazioni a uso intensivo di dati in elaborazione aziendale. Tali applicazioni sono in genere le scadenze. Incapacità di rispettare queste scadenze potrebbe avere gravi conseguenze economiche. Sicurezza è anche un aspetto critico per molte applicazioni di elaborazione batch. Include un elenco non esaustivo delle applicazioni di elaborazione batch:

  • Generazione di ogni giorno, settimanale, mensile e annuale di attività segnala per organizzazioni in altri settori economici, produzione e vendita al dettaglio.
  • Elaborazione, aggregazione e ricapitolando transazioni giornaliere per istituzioni finanziarie, compagnie assicurative e le organizzazioni sanitarie.
  • Gestione dell'inventario per grandi aziende.
  • Elaborazione paghe-registrazione e fatturazione
  • Gestione di sviluppo software (ad esempio aggiornamenti notturni di repository software).
  • Test automatico e verifica di sistemi hardware e software.

Infine, e di crescente importanza, sono applicazioni cloud per l'accesso Web. Varie categorie di siti Web hanno un periodico o una presenza temporanea, ad esempio i siti Web per conferenze o altri eventi. Ci sono anche siti Web che sono attivi durante una particolare stagione come le festività. Si potrebbe anche supportare un particolare tipo di attività, ad esempio IRPEF segnalazione con scadenza il 15 aprile di ogni anno. Tempo limitato siti Web utilizzati per attività promozionali "sonno" durante la notte e la scala automatica durante il giorno.

Ha senso economico per archiviare i dati nel cloud vicino dove viene eseguita l'applicazione. Il costo per GB è basso e l'elaborazione è più efficiente quando i dati vengono memorizzati nei pressi del server. Questo potrebbe portare a diverse classi di applicazioni cloud computing negli anni a venire. Per esempio, ci potrebbe essere una elaborazione batch per sistemi di supporto decisionale e altri aspetti di analisi business.

Un'altra classe di nuove applicazioni potrebbe essere elaborazione batch parallelo basato su astrazioni di programmazione. Mobile applicazioni interattive che elaborano grandi volumi di dati da diversi tipi di servizi che combinano più di una fonte di dati e sensori sono ovvi candidati per il cloud computing.

Scienza e ingegneria potrebbero beneficiare grandemente di cloud computing perché molte applicazioni in queste aree sono intensivo di dati e di calcolo. Analogamente, una nuvola dedicata all'educazione sarebbe estremamente utile. Software matematico come MATLAB e Mathematica potrebbe anche eseguire sul cloud.

Lo sviluppo di applicazioni, selezione, configurazione e ottimizzazione tutti delle prestazioni diventano essenziali attività quando un ambiente di cloud computing di bilanciamento. Avrai molte applicazioni in esecuzione in molti modi diversi, e quella pila di applicazione sarà necessario qualche monitoraggio e manutenzione.

Dan C. Marinescu

Dan C. Marinescu era un professore di informatica presso l'Università di Purdue dal 1984 al 2001. Poi si unì al dipartimento di informatica presso la University of Central Florida. Ha ricoperto incarichi di facoltà visita presso l'IBM T. J. Watson Research Center, l'Istituto di scienze informazioni a Pechino, la divisione di sistemi scalabili di Intel Corp, Deutsche Telecom AG e INRIA Rocquencourt in Francia. Suoi interessi di ricerca copertura parallelo e sistemi distribuiti, cloud computing, calcolo, quantum computing e quantistica informazioni teoria scientifica.

Per ulteriori informazioni su questo e altri titoli di Elsevier, check out Elsevier Science & Libri di tecnologia.

Contenuti correlati