Le appliance virtuali sono il concetto chiave nel modello di applicazione.
Un'appliance virtuale è un oggetto non stanziabile che consiste in un limite e in un interno. Il limite include ogni elemento necessario per la configurazione dell'appliance, per associarla a dati su volumi di archiviazione esterni e collegarla ad altre appliance. L'interno è costituito da un computer virtuale e da un volume di avvio che contiene il sistema operativo, i file di configurazione e il software delle applicazioni che sono in esecuzione nell'appliance.

La figura qui sopra mostra nel dettaglio l'anatomia di un'appliance virtuale tipica. Il limite dell'appliance è costituito dai seguenti elementi:
L'interno dell'appliance è costituito da un computer virtuale e da un volume di avvio. Il volume di avvio è configurato con una versione appropriata di Linux e con tutti gli altri pacchetti software e gli script richiesti per il funzionamento dell'appliance. Il computer virtuale è configurato per l'avvio dal volume di avvio e dispone di numerose schede di interfaccia di rete virtuale.
La vNIC eth0 è sempre impostata come interfaccia predefinita, il che offre la possibilità di accedere all'appliance, di installare il software e di risolvere i problemi relativi ad essa, come per un qualsiasi server remoto.
Inoltre, CA AppLogic® crea un vNIC separata per ogni terminale (di input o output) definito nel limite dell'appliance. Oltre a rendere possibile l'indirizzamento di tutto il traffico in entrata e in uscita dall'appliance tramite una sola vNIC, la possibilità di disporre di una vNIC separata per ogni terminale semplifica per CA AppLogic® la definizione e il monitoraggio del traffico di rete, l'attuazione dei protocolli di connessione e il miglioramento della protezione.
Il limite contiene un insieme di proprietà specifiche dell'appliance o parametri che puoi utilizzare per configurare l'appliance. All'avvio dell'appliance, CA AppLogic® crea automaticamente una variabile di ambiente per ogni proprietà e la inizializza con il valore assegnato a tale proprietà. Inoltre, CA AppLogic® propaga i valori di proprietà in uno o più file di configurazione contenuti nel volume di avvio. Ciò rende più facile l'utilizzo di proprietà come meccanismo primario per la configurazione delle appliance.
Il limite può contenere anche uno o più placeholder (segnaposto) di volume. Un segnaposto è una slot predefinita per un volume di archiviazione. Per riempire la slot, è necessario configurare l'appliance con il nome di un volume da aggiungere. Ciò fornisce l'equivalente virtuale di un disco rimovibile. Molte delle appliance utilizzano questo meccanismo per accedere a contenuti quali pagine HTML, codice personalizzato o database.
Inoltre, CA AppLogic® assegna a ogni appliance un budget di risorse hardware comprendente un insieme di tre intervalli che definiscono l'utilizzo minimo e massimo della CPU, l'uso della memoria e l'uso della larghezza di banda per quell'appliance.
Infine, CA AppLogic® associa a ogni appliance un insieme di attributi di esecuzione che determinano il modo in cui il sistema pianifica ed esegue l'appliance. In particolare, due di questi attributi vengono utilizzati con maggiore frequenza: il valore dell'ordine di avvio e il contrassegno migrabile. L'ordine di avvio consente di specificare e modificare l'ordine in cui le appliance della stessa applicazione iniziano a riconoscere le eventuali dipendenze tra loro. Il contrassegno migrabile è impostato su vero per impostazione predefinita e indica a CA AppLogic® che la migrazione dell'appliance da un server all'altro è possibile a discrezione del pianificatore. L'impostazione di questo contrassegno su "false" consente invece di mantenere l'appliance su un server specifico.
CA AppLogic® considera le appliance virtuali come oggetti componente di prima classe. Quando si crea un nuovo tipo di appliance, si sta creando effettivamente una classe di appliance, che indica a CA AppLogic® come fabbricare tali appliance (istanze con nome della classe) su richiesta. Poiché le classi di appliance sono template per creare istanze, esse non possono essere eseguite. Un'applicazione in esecuzione in questo momento contiene solo istanze, configurate e interconnesse tra loro in modo da funzionare congiuntamente.

La figura qui sopra mostra come CA AppLogic® crea istanze di classi. Ogni classe ha un descrittore di classe associato, che consente di definire:
La definizione completa di una classe comprende il descrittore di classe e l'insieme completo dei volumi di classe identificati nel descrittore, compreso il loro contenuto: ovvero, il sistema operativo, il software delle applicazioni e gli script che definiscono insieme il comportamento dell'appliance.
Le classi di appliance normali possono produrre un numero qualsiasi di istanze. I singleton sono classi limitate a una singola istanza per volta. I singleton sono utili quando è necessario modificare o risolvere problemi relativi a una classe. Poiché sul sistema è possibile eseguire solo istanze, è richiesta sempre un'istanza per mettere alla prova e risolvere i problemi relativi alla classe. I singleton rendono questo processo più semplice. Consentono di mettere alla prova e risolvere i problemi relativi all'istanza e quindi di generare automaticamente una nuova classe dall'istanza di lavoro.
La definizione di classe non è sufficiente per creare un'istanza in esecuzione utilizzabile. Per far ciò, CA AppLogic® ha bisogno di conoscere anche le impostazioni dell'istanza, cioè l'insieme di parametri che definiscono il modo in cui l'istanza deve essere connessa, configurata ed eseguita. Le impostazioni dell'istanza sono costituite da valori specifici per le risorse hardware, gli attributi di esecuzione, le connessioni di terminali, le proprietà delle appliance e i nomi dei volumi esterni.
Per creare un'istanza, CA AppLogic® interpreta il descrittore di classe e crea un computer virtuale con un adattatore di rete virtuale per ogni terminale e una periferica blocco virtuale per ogni volume. Quindi crea un'istanza dell'interfaccia di rete virtuale per ciascuno degli adattatori ed effettua l'associazione all'adattatore appropriato.
Successivamente, il sistema crea un'istanza di volume virtuale per ogni volume specificato nel descrittore replicando il volume di classe appropriato ed effettua l'associazione alla periferica blocco corrispondente.
L'istanza appena creata viene configurata utilizzando i valori di proprietà, in genere modificando i file di configurazione identificati nella definizione di classe e che si trova in uno o più dei volumi da cui sono state create istanze. Poiché ogni volume di istanza è una copia del rispettivo volume di classe, tali modifiche riguardano solo l'istanza.
A questo punto, CA AppLogic® avvia il computer virtuale che produce l'avvio del sistema e l'avvio dei vari servizi configurati nell'appliance. Utilizza le risorse hardware e gli attributi di esecuzione per il controllo dell'avvio, posizione, pianificazione e migrazione dell'istanza appena coniata.
CA AppLogic® separa i dati di configurazione e connessione specifici di ogni istanza dalle informazioni comuni a tutte le appliance di una data classe, compreso il codice del sistema operativo, il codice del motore dell'applicazione e i parametri di configurazione richiesti per funzionare congiuntamente.
A differenza degli attributi di esecuzione che possono essere applicati a qualsiasi appliance, è possibile definire parametri di configurazione specifici per ogni classe di appliance. CA AppLogic® fornisce un meccanismo di proprietà per la definizione e modifica di un insieme di parametri di configurazione tramite un'interfaccia proprietà universale.
Per sfruttare il meccanismo di proprietà, è necessario definire le proprietà specificando il loro nome, i tipi di dati e i valori predefiniti come parte di una definizione di classe. È possibile inoltre selezionare uno o più file di configurazione posizionati sui volumi dell'appliance come target per i valori di proprietà.
All'interno di un'istanza di appliance, è possibile accedere a un valore di proprietà in uno dei due seguenti modi:
Per ogni proprietà sul limite dell'appliance, CA AppLogic® definisce una variabile di ambiente denominata come la proprietà. Al momento dell'avvio, il valore della variabile è inizializzato con il valore assegnato alla proprietà. Ciò rende le proprietà facilmente accessibili per daemon, utilità e script che sono in esecuzione all'interno dell'appliance.
Nota: una proprietà definita su un'appliance può essere utilizzata per impostare i valori di uno o più parametri che si trovano nei file di configurazione basati su testo. Per eseguire il mapping di una proprietà dell'appliance in un parametro di un file di configurazione, è necessario eseguire il tagging del valore nel file con un commento di tag speciale che identifica il nome della proprietà per cui si sta tentando di eseguire il mapping. Una volta impostata la proprietà, CA AppLogic® sostituisce il valore trovato nel file con il valore assegnato alla proprietà.
I terminali di CA AppLogic® sono punti di connessione per interazioni logiche tra le varie appliance. L'astrazione dei terminali è concepita in modo che i pacchetti software esistenti all'interno delle appliance virtuali possano comunicare attraverso i terminali senza richiedere modifiche.
Un terminale può essere di tipo input o di tipo output. Gli input sono terminali per l'accettazione delle connessioni di rete. Gli output sono terminali per le creazione di connessioni di rete. Rispetto ai flussi di richieste e dati, entrambi i tipi di terminali sono bidirezionali. Un terminale è costituito da un nome di rete, un adattatore di rete virtuale e da un'interfaccia di rete virtuale.
Quando un output di un'appliance è connesso a un input di un'altra appliance, CA AppLogic® crea un filo virtuale tra le rispettive interfacce di rete virtuali e assegna indirizzi IP virtuali a entrambe le estremità della connessione.
Nota: gli indirizzi IP virtuali sono utilizzati solo per la protezione del software in esecuzione all'interno del computer virtuale. Non sono indirizzi di rete effettivi e instradabili. Il traffico corrente sulla connessione viene recapitato tramite il filo virtuale.
Al software in esecuzione in un'appliance virtuale, i terminali appaiono come host di rete denominati. Un input definisce un nome host in cui un server, ad esempio Apache, può ascoltare le richieste di connessione in ingresso. Se lasciato disconnesso, un output è visibile all'interno del computer virtuale come "host non raggiungibile". Quando è connesso a un input di un'altra appliance, lo stesso output agisce come un host di rete valido, in cui sono stabilite le connessioni. Se si accede all'appliance e si esegue il ping a un output connesso, si noterà che il nome dell'output corrisponde all'indirizzo IP dell'input dell'altra appliance a cui l'output è connesso.
Nota: i terminali eliminano i riferimenti alle altre appliance e agli altri server.
Il codice in esecuzione all'interno di un'appliance vede una "rete" composta soltanto da pochi host, uno per ogni terminale definito nel limite dell'appliance. Ciò consente di connettere diverse istanze della stessa appliance in strutture diverse, senza la modifica della configurazione dell'appliance.
Ad esempio, se si sta creando un'appliance che richiede l'accesso a un server del database, è possibile definire un output per l'accesso a tale database e denominarlo DBASE. Quando si configura il driver JDBC all'interno dell'appliance, è sufficiente impostare il nome dell'output "DBASE" come nome host del server del database di destinazione. In fase di esecuzione, ogni istanza dell'appliance può essere connessa a un server del database diverso senza dover modificare il nome host di destinazione per il driver JDBC: lo stesso nome host "DBASE" darà automaticamente come risultato l'indirizzo IP corretto del server del database a cui è connessa quell'istanza specifica.
Per ogni terminale, è possibile specificare quali protocolli sono consentiti su di esso. Ciò ha l'effetto di creare un firewall virtuale sul terminale, che consente l'entrata e l'uscita soltanto dei protocolli consentiti. Come vantaggio aggiuntivo, quando si sta impostando l'applicazione, CA AppLogic® consente di garantire che solo i terminali con i protocolli richiesti si connettano tra di loro. Pertanto, se il software all'interno dell'appliance è configurato in modo da funzionare con MySQL attraverso l'output DBASE, è possibile dichiarare il protocollo DBASE come MySQL per impedire ad altri utenti di connettersi accidentalmente a un server Oracle.
Nota: è possibile dichiarare qualsiasi terminale come obbligatorio, indicando a CA AppLogic® che l'appliance non può funzionare senza la connessione a questo tipo di servizio esterno. CA AppLogic® rifiuta l'avvio di un'applicazione se un terminale obbligatorio è lasciato disconnesso e indica all'utente quale terminale si è dimenticato di connettere.
Ogni appliance richiede almeno un volume di archiviazione, ovvero quello dell'avvio. I volumi sono forniti come parte della definizione di classe dell'appliance e vengono create istanze di volumi ogniqualvolta che viene creata un'istanza dell'appliance. Spesso è utile definire le appliance con segnaposto di volumi aggiuntivi. Quando si definisce un segnaposto, esso diventa uno "slot" a cui è possibile collegare successivamente un volume esterno.
I volumi che possono essere "collegati" in una slot di un segnaposto sono noti come volumi di applicazione. È possibile creare un volume dell'applicazione in modo esplicito eseguendo il comando appropriato e specificando un nome, le dimensioni di archiviazione e il tipo di file system desiderato. È possibile installare volumi di applicazione sul controller di CA AppLogic® per il trasferimento di dati in entrata e in uscita.
Ad esempio, è utile definire un'appliance di server Web con due volumi: un volume di avvio e un volume del contenuto. Il volume di avvio contiene il software e i file di configurazione necessari per avviare Linux ed eseguire un server Web Apache. Questo volume diventa parte della definizione di classe e viene creata un'istanza di esso per ogni istanza dell'appliance.
Il volume del contenuto è tuttavia un segnaposto per un volume dell'applicazione che contiene file HTML, immagini statiche e script per un sito Web specifico. La configurazione di un'istanza di un'appliance di server Web con riferimento al volume del contenuto produce un'istanza di un server Web Apache che verrà utilizzata dal sito Web specifico. Le pagine e gli altri contenuti per questo server Web verranno collocati sul volume del contenuto.
Suggerimento: è possibile utilizzare un singolo volume dell'applicazione per distribuire il contenuto in più server Web. Un modo semplice per eseguire questa operazione è aggiungere una proprietà che specifichi la directory di base sul volume da cui l'appliance acceda al contenuto. Ciò semplifica la configurazione di più server Web con lo stesso volume del contenuto, oltre a impostare ogni istanza in modo da fornire il contenuto da una directory diversa.
Lo stesso modello può essere utilizzato per progettare un server J2EE generico configurato con un volume (e un percorso di base su di esso) che contenga i pacchetti EJB per una particolare funzione di applicazione o un server del database generico configurato con un volume e un percorso contenente un database specifico.
Di fatto, utilizzando questa combinazione di volume dell'applicazione e una proprietà di percorso directory è possibile combinare l'interfaccia utente, il contenuto statico, il codice e i dati dell'applicazione su un volume singolo, il che facilita la distribuzione, modifica e manutenzione.
|
Copyright © 2013 CA.
Tutti i diritti riservati.
|
|