Programmabilità di rete con l`infrastruttura Cisco basata sulle

annuncio pubblicitario
White paper
Programmabilità di rete con l'infrastruttura Cisco
basata sulle applicazioni
Panoramica
Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric
Infrastructure) di Cisco®. Il modello di programmabilità di Cisco ACI consente un accesso completo a livello
programmatico all'infrastruttura basata sulle applicazioni. Cisco ACI fornisce accesso in lettura e scrittura,
attraverso API standard Representational State Transfer (REST), al modello a oggetti sottostante, che è una
rappresentazione di ogni attributo fisico e logico nell'intero sistema. Grazie a questo accesso, i clienti possono
integrare l'implementazione di rete in strumenti di gestione e di monitoraggio e implementare i nuovi carichi di
lavoro a livello di programmazione.
Sfide derivanti dagli attuali approcci alla programmabilità della rete
La maggioranza delle reti attualmente in uso sono basate su hardware con software ad associazione rigida,
destinato a essere gestito e amministrato tramite l'interfaccia della riga di comando (CLI). Questi sistemi erano
adatti a un contesto caratterizzato da configurazioni di rete statiche, carichi di lavoro statici e modifiche più lente e
prevedibili per lo scaling delle applicazioni. Con la virtualizzazione delle reti dei data center e l'avvio della
transizione verso modelli IT agili e cloud, questo modello non funziona più.
Pertanto, i fornitori si stanno adoperando per integrare la programmabilità nelle offerte e nei sistemi operativi dei
dispositivi esistenti. Questo approccio aumenta le capacità, ma non è il metodo ideale per incorporare la
programmabilità. Il modello aggiunge complessità gestionale introducendo un punto di gestione totalmente nuovo,
di solito identificato in un controller di rete, che cerca di eseguire artificialmente il mapping tra policy di applicazioni
e utenti e costrutti di rete non flessibili. Inoltre, questi controller di rete e i modelli che incorporano sono limitati alle
funzioni di rete e non possono arrivare a supportare il resto dell'infrastruttura. La vera programmabilità deve essere
integrata fin dalle basi, non applicata in un secondo momento. I componenti dell'infrastruttura e i costrutti che
incorporano deve essere progettati all'insegna della programmabilità fin dalle basi, con un modello che gli
sviluppatori possano comprendere e utilizzare rapidamente.
© 2013 Cisco e/o i relativi affiliati. Tutti i diritti riservati. Il presente documento contiene informazioni pubbliche di Cisco.
Pagina 1 di 8
Programmabilità di Cisco ACI con API REST e modello di dati orientato agli oggetti
Con la soluzione Cisco ACI, Cisco ha adottato un approccio fondante alla creazione di un'infrastruttura della rete
programmabile. Questa infrastruttura funziona come un unico sistema a livello di fabric, controllato da Cisco
Application Policy Infrastructure Controller (APIC). Con tale approccio, la rete del data center nel suo insieme è
collegata in modo coeso e gestita come un sistema di trasporto intelligente per le applicazioni che supportano
l'azienda. Sui dispositivi di rete che fanno parte di questo fabric, il nucleo del sistema operativo è stato scritto per
supportare questa visione sistemica e fornire un'architettura basata sulla programmabilità.
Anziché aprire un sottoinsieme delle funzionalità della rete attraverso interfacce di programmazione, come le
soluzioni SDN (Software Defined Networking) della generazione precedente, l'intera infrastruttura è aperta
all'accesso programmatico. Questo risultato deriva dalla disponibilità dell'accesso al modello a oggetti di Cisco
ACI, che rappresenta la configurazione completa e lo stato di runtime di ogni singolo componente hardware e
software in tutta l'infrastruttura. Inoltre, il modello a oggetti è reso disponibile attraverso interfacce REST standard,
facilitando l'accesso e la manipolazione del modello stesso e, di conseguenza, della configurazione e dello stato di
runtime del sistema.
Al livello superiore, il modello a oggetti di Cisco ACI si basa sulla teoria della promessa, che fornisce un'architettura
di controllo scalabile, con oggetti autonomi incaricati di implementare le modifiche di stato desiderate fornite dal
cluster controller. Questo approccio è maggiormente scalabile rispetto ai sistemi di gestione top-down tradizionali,
che richiedono una conoscenza dettagliata delle configurazioni di basso livello e dello stato attuale. Con la teoria
della promessa, le modifiche di stato desiderate vengono trasmesse e gli oggetti le implementano, restituendo
errori quando necessario.
Al di sotto di questo concetto di alto livello si trova il nucleo centrale della programmabilità di Cisco ACI: il modello
a oggetti. Il modello può essere suddiviso in due componenti principali: logica e fisica. I framework basati su
modelli forniscono un modo preciso per rappresentare i dati. Il modello di Cisco ACI fornisce accesso completo al
modello di informazione sottostante, offrendo astrazione delle policy, modelli fisici e dati di debug e di
implementazione. La figura 1 rappresenta il framework del modello di Cisco ACI. Il modello è accessibile tramite
API REST, con conseguente apertura del sistema alla programmabilità.
Figura 1.
Modello di dati orientato agli oggetti e API REST di Cisco ACI
© 2013 Cisco e/o i relativi affiliati. Tutti i diritti riservati. Il presente documento contiene informazioni pubbliche di Cisco.
Pagina 2 di 8
Come mostrato nella figura 1, il modello logico è l'interfaccia con il sistema. Gli amministratori o i sistemi di
gestione cloud di alto livello interagiscono con il modello logico attraverso API, CLI o GUI. Le modifiche al modello
logico vengono quindi trasmesse al modello fisico, che diventa in genere la configurazione hardware.
Il modello logico è costituito a sua volta da oggetti, configurazione, policy e stato di runtime, che possono essere
manipolati, e dagli attributi di tali oggetti. Nel framework di Cisco ACI questo modello è noto come struttura di
gestione delle informazioni (MIT, Management Information Tree). Ogni nodo MIT rappresenta un oggetto o un
gruppo di oggetti gestiti. Questi oggetti sono organizzati in modo gerarchico, creando contenitori di oggetti logici.
La figura 2 illustra la gerarchia logica del modello a oggetti MIT.
Figura 2.
Struttura di gestione delle informazioni (MIT, Management Information Tree)
Oggetti nella MIT
Cisco ACI utilizza un'architettura basata sul modello informativo in cui il modello descrive tutte le informazioni che
possono essere controllate da un processo di gestione. Alle istanze di oggetti viene fatto riferimento come oggetti
gestiti (MO, Managed Object). Ogni oggetto gestito nel sistema può essere identificato mediante un nome distinto
univoco (DN, Distinguished Name). Questo approccio consente di fare riferimento all'oggetto a livello globale.
Oltre al suo nome distinto, ogni oggetto può essere identificato mediante il nome relativo (RN, Relative Name). Il
nome relativo identifica un oggetto in relazione al suo oggetto padre. Il nome distinto di un dato oggetto è costituito dal
suo nome relativo aggiunto in coda al nome distinto del relativo oggetto padre. I nomi distinti vengono mappati
direttamente agli URL. Per accedere a un oggetto è possibile utilizzare il nome relativo o il nome distinto, in base alla
posizione corrente nella MIT. La relazione tra oggetti gestiti, nomi relativi e nomi distinti è illustrata nella figura 3.
© 2013 Cisco e/o i relativi affiliati. Tutti i diritti riservati. Il presente documento contiene informazioni pubbliche di Cisco.
Pagina 3 di 8
Figura 3.
Oggetti gestiti, nomi relativi e nomi distinti
La figura 3 mostra il nome distinto, che rappresenta in modo univoco ogni istanza di oggetto gestito, e il nome
relativo, che rappresenta l'oggetto a livello locale al di sotto del relativo oggetto gestito padre. Tutti gli oggetti nella
struttura esistono al di sotto dell'oggetto principale.
A causa della natura gerarchica della struttura e del sistema di attributi utilizzato per identificare le classi di oggetti,
la struttura può essere interrogata in diversi modi per richiedere informazioni sull'oggetto gestito. Le query possono
essere eseguite direttamente sull'oggetto tramite il suo nome distinto, su una classe di oggetti, ad esempio chassis
switch, o a livello di struttura, per individuare tutti i membri di un oggetto. Nella figura 4 sono illustrate tre query a
livello di struttura.
Figura 4.
Query a livello di struttura
© 2013 Cisco e/o i relativi affiliati. Tutti i diritti riservati. Il presente documento contiene informazioni pubbliche di Cisco.
Pagina 4 di 8
La figura 4 mostra due chassis interrogati a livello di struttura. Entrambe le query restituiscono l'oggetto di
riferimento e i relativi oggetti figlio. Questo approccio è utile per individuare i componenti di un sistema più ampio.
L'esempio nella figura 4 individua le schede e le porte di un determinato chassis switch. La figura 5 mostra un altro
tipo di query: la query a livello di classe.
Figura 5.
Query a livello di classe
Come illustrato nella figura 5, le query a livello di classe restituiscono tutti gli oggetti di una determinata classe.
Questo approccio è utile per individuare tutti gli oggetti di un certo tipo disponibili nella MIT. Nell'esempio, la classe
utilizzata è Cards (schede), che restituisce tutti gli oggetti di tipo scheda.
Il terzo tipo di query è la query a livello di oggetto. In una query a livello di oggetto viene utilizzato un nome distinto
per restituire un oggetto specifico. La figura 6 mostra due query a livello di oggetto: una per il nodo 1 sullo chassis
2, e una per il nodo 1 sullo chassis 1, scheda 1, porta 2.
Figura 6.
Query a livello di classe
Per tutte le query MIT, è possibile scegliere di restituire l'intera sottostruttura o una sottostruttura parziale. Inoltre, il
meccanismo di controllo degli accessi basato sui ruoli (RBAC) nel sistema indica quali oggetti verranno restituiti; a
essere restituiti saranno sempre e solo gli oggetti per i quali l'utente dispone dei diritti di visualizzazione.
© 2013 Cisco e/o i relativi affiliati. Tutti i diritti riservati. Il presente documento contiene informazioni pubbliche di Cisco.
Pagina 5 di 8
Proprietà degli oggetti gestiti
Gli oggetti gestiti in Cisco ACI includono proprietà che definiscono l'oggetto gestito. Le proprietà in un oggetto
gestito sono suddivise in blocchi, gestiti da processi determinati all'interno del sistema operativo. Per ogni oggetto
possono essere presenti diversi processi che vi accedono. Tutte queste proprietà nel loro insieme vengono
compilate in fase di runtime e presentate all'utente come un singolo oggetto. La figura 7 mostra un esempio di
questa relazione.
Figura 7.
Proprietà degli oggetti gestiti
Nella figura 7 per l'oggetto di esempio sono presenti tre processi che scrivono nei blocchi di proprietà nell'oggetto.
Il motore di gestione dei dati (DME), che costituisce l'interfaccia tra Cisco APIC (quindi, l'utente) e l'oggetto, il Port
Manager, che gestisce la configurazione delle porte, e lo Spanning Tree Protocol (STP) interagiscono tutti con
blocchi di questo oggetto. L'oggetto stesso viene presentato all'utente tramite l'API come una singola entità
compilata in fase di runtime.
Accesso ai dati dell'oggetto tramite interfacce REST
REST è uno stile di architettura software per sistemi distribuiti come il World Wide Web. Negli ultimi anni REST si è
affermato come uno dei modelli predominanti di progettazione dei servizi Web. Grazie allo stile più semplice, REST
si sta via via sostituendo ad altri modelli di progettazione come il protocollo SOAP (Simple Object Access Protocol)
e WSDL (Web Services Description Language). Cisco APIC supporta le interfacce REST per l'accesso a livello di
programmazione all'intera soluzione Cisco ACI.
Il modello di informazione basato su oggetti di Cisco ACI lo rende particolarmente adatto alle interfacce REST:
URL e URI vengono associati direttamente ai nomi distinti che identificano gli oggetti nella struttura, e tutti i dati
della MIT possono essere descritti come un documento con struttura testuale strutturata autonoma, codificato in
XML o annotazione oggetti JavaScript Object (JSON). Gli oggetti hanno relazioni padre-figlio identificate mediante
nomi distinti e proprietà, che vengono letti e modificati da un insieme di operazioni create, read, update e delete
(CRUD).
© 2013 Cisco e/o i relativi affiliati. Tutti i diritti riservati. Il presente documento contiene informazioni pubbliche di Cisco.
Pagina 6 di 8
Gli oggetti sono accessibili al rispettivo indirizzo definito, i relativi URL REST, utilizzando comandi HTTP standard
per il recupero e la manipolazione dei dati degli oggetti Cisco APIC. Il formato URL utilizzato può essere
rappresentato come segue:
<sistema>/api/[mo|classe]/[nd|classe][:metodo].[xml|json]?{opzioni}
I vari componenti fondamentali di tale URL sono i seguenti:
●
sistema: identificatore di sistema; un indirizzo IP o un nome host risolvibile tramite DNS
●
mo | classe: indica se si tratta di una query a livello di oggetto gestito, struttura (MIT) o classe
●
classe: classe di oggetto gestito (come specificato nel modello di informazione) degli oggetti interrogati; il
nome della classe è rappresentato come <nomepacchetto><NomeClasseOggettoGestito>
●
dn: nome distinto (nome gerarchico univoco dell'oggetto nella struttura MIT) dell'oggetto interrogato
●
metodo: indicazione facoltativa del metodo richiamato sull'oggetto; si applica solo alle query HTTP POST
●
xml | json: formato di codifica
●
opzioni: opzioni, filtri e argomenti della query
La capacità di fare riferimento e accedere a un singolo oggetto o a una classe di oggetti con l'URL REST consente
di ottenere accesso completo a livello di programmazione all'intera struttura di oggetti e, quindi, all'intero sistema.
Software development kit per ambienti di programmazione
Le API REST per Cisco ACI integrano facilmente qualsiasi ambiente di programmazione a prescindere dalla
metodologia di sviluppo e dal linguaggio utilizzati. Per accelerare ulteriormente lo sviluppo negli ambienti di
programmazione più diffusi, saranno resi disponibili software development kit (SDK) per Cisco ACI. Cisco ACIpysdk, un SDK basato su Python, è uno di questi SDK per ambienti di programmazione Python. Le librerie Python
e le API che fanno parte dell'SDK eseguono l'astrazione delle chiamate alle API REST sottostanti e forniscono una
facile e rapida integrazione nelle suite software basate su Python.
Conclusioni
Il modello di dati orientato agli oggetti di Cisco APIC è progettato fin dalle basi per la programmabilità della rete. A
livello di dispositivo, il sistema operativo è stato riscritto come sistema operativo di switch completamente basato
su oggetti per Cisco ACI. I componenti di Cisco ACI sono gestiti da Cisco APIC, che fornisce API REST totalmente
funzionali. Al di sopra di questa API sono presenti una CLI e una GUI per l'amministrazione ordinaria.
Il modello a oggetti consente fluidità della programmazione e accesso completo ai componenti sottostanti
dell'infrastruttura utilizzando le API REST. Gli oggetti sono organizzati logicamente in un modello gerarchico e
memorizzati nella MIT. Questo approccio fornisce un framework per il controllo e la programmabilità della rete, con
un livello di apertura non disponibile in altri sistemi.
Per ulteriori informazioni
http://www.cisco.com/go/aci.
© 2013 Cisco e/o i relativi affiliati. Tutti i diritti riservati. Il presente documento contiene informazioni pubbliche di Cisco.
Pagina 7 di 8
Stampato negli Stati Uniti
© 2013 Cisco e/o i relativi affiliati. Tutti i diritti riservati. Il presente documento contiene informazioni pubbliche di Cisco.
C11-729999-00
11/13
Pagina 8 di 8
Scarica