Cosa sono e differenza tra Cloud-Awaree e Cloud-Agnostic in informatica

Cosa sono e differenza tra Cloud-Awaree e Cloud-Agnostic in informatica

Definizione di Cloud Computing

Il cloud computing si basa principalmente sulla nozione di servizio. I servizi sono componenti computazionali autonomi, indipendenti dalla piattaforma, che possono essere pubblicati e composti ottenendo reti di applicazioni distribuite. L’applicazione così ottenuta diventa a sua volta un servizio disponibile sulla rete. A questo punto i fornitori non venderanno più software da installare su sistemi proprietari del cliente, ma metteranno a disposizione online determinate risorse, che possono essere o vere e proprie applicazioni o addirittura risorse fisiche come CPU o dischi fissi per storage. Non a caso l’essenza del cloud computing è X as a Service, che può essere tradotto con “Tutto è Servizio”. Infatti tale acronimo si riferisce al fatto che un numero sempre più alto di servizi viene rilasciato su Internet piuttosto che sui PC in locale.

Oltre a questo, molto importante è il concetto di virtualizzazione. Con tale termine si intende la possibilità di astrarre le componenti fisiche, come l’hardware, degli elaboratori al fine di renderle disponibili al software in forma di risorsa virtuale. Uno dei principali vantaggi è la razionalizzazione e l’ottimizzazione delle risorse hardware grazie ai meccanismi di distribuzione delle risorse disponibili di una piattaforma fisica. Si può quindi ottenere che più macchine virtuali possono girare contemporaneamente su un sistema fisico condividendo le risorse della piattaforma. Le eventuali contese di risorse vengono gestite dai software di virtualizzazione che si occupano della gestione dell’ambiente. Grazie a queste tecniche è quindi possibile allocare dinamicamente risorse sulla base delle richieste dei clienti, aumentando o diminuendo il loro quantitativo a seconda di carichi computazionali maggiori o minori.

Inoltre, nel cloud computing gli utenti accedono a dati, applicazioni o qualsiasi altro servizio con l’aiuto di un browser a prescindere dal dispositivo utilizzato e dal luogo in cui si trova l’utente. L’infrastruttura, che è generalmente fornita da terze parti, è accessibile con l’aiuto di Internet. Per questo motivo il costo è molto ridotto rispetto alle soluzioni tradizionali. Infatti non è necessario acquistare nuove risorse per far fronte a carichi computazionali occasionali.

Cosa sono e differenza tra Cloud-Awaree e Cloud-Agnostic in informatica

Architettura del Cloud

Il sistema del cloud computing può essere suddiviso in due parti: il frontend e il backend. Entrambi sono connessi tra di loro attraverso la rete, solitamente Internet. Il frontend è ciò che l’utente vede e, per essere visualizzato, è necessario che il computer dell’utente e l’applicazione possano accedere al cloud. Il backend è invece il cloud vero e proprio ed è quindi composto da tutti quei dispositivi come computer, server e dispositivi di memorizzazione dei dati.

Il monitoraggio del traffico di rete, l’amministrazione del sistema e le richieste degli utenti sono gestite da un server centrale. Questo segue determinate regole (i cosiddetti protocolli) e sfrutta un software speciale chiamato middleware che dà la possibilità ai computer nella rete di comunicare tra di loro.

Differenza tra Cloud-Awaree e Cloud-Agnostic

Analizzando gli approcci di sviluppo di un’applicazione cloud, si possono suddividere in due macrocategorie.

  • Cloud agnostic: in questo approccio non ci si cura del fatto che l’applicazione sia realizzata sul cloud dove le risorse computazionali richieste dal software sono virtuali. Per questo la maggior parte decide di seguire le stesse linee guida e le stesse tecniche di sviluppo di una tradizionale applicazione non residente in ambiente cloud.
  • Cloud aware: questo approccio prende in considerazione il fatto che le risorse computazionali relative all’applicazione sono virtuali e possono essere scalate e manipolate in modo differente rispetto a quello tradizionale.

Quando si dice che il software è a conoscenza della natura virtuale della piattaforma sottostante, non significa che l’applicazione abbia la necessità di invocare alcune API speciali fornite dalla virtualizzazione di basso livello in modo da ottenere servizi dalla piattaforma cloud. Piuttosto ciò significa che prima di tutto lo sviluppatore deve conoscere l’architettura della piattaforma sottostante che è altamente distribuita e virtuale; successivamente egli stesso deve cercare di sfruttare una piattaforma così distribuita, virtuale e flessibile per soddisfare i requisiti non funzionali desiderati dall’applicazione in questione.

Ci sono però alcuni aspetti da tenere in considerazione in entrambi gli approcci. Il primo di questi riguarda i costi delle risorse. Risorse come CPU, storage e banda di rete sono calcolate sulla base dell’utilizzo ed ognuna può avere un costo differente. Altro aspetto sono gli scambi tra CPU, storage e rete che giocano un importante ruolo nell’ottimizzazione del costo di esecuzione di un’applicazione sulle piattaforme cloud. Infine è importante dire che prevedere la capacità di vendita sul cloud non è del tutto simile ad un ambiente non-cloud.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *