Upload
sonia-pepe
View
160
Download
1
Embed Size (px)
DESCRIPTION
Presentation of the graduation project about OwnCloud automated deployment using Ansible and Vagrant.
Citation preview
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
tesi di laurea triennale
relatore
Ch.mo prof. Stefano Avallone
correlatore
Dott. Francesco Collovà
candidato
Sonia Luciana Pepe
Matr. 534/2933
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud
Anno Accademico 2013/2014
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Contesto e contributo
OBIETTIVO: Semplificare e velocizzare il lavoro di
tutte quelle aziende che intendono affacciarsi al
mondo del Cloud Computing attraverso l’adozione
di un servizio di storage.
Moderne infrastrutture IT:
• Altamente distribuite
• Hardware virtuale e fisico
• Applicazioni e servizi cloud-based
Complessità = difficoltà di gestione
SOFTWARE ANALIZZATI
OwnCloud (Cloud Storage)
Vagrant (Virtualization Management)
Ansible (IT Automation and Configuration Management)
PROGETTO: Implementazione di un kit per il
deployment automatico del sistema applicativo
OwnCloud su un numero arbitrario di server virtuali.
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Insieme di tecnologie che consentono, tipicamente sotto forma di un servizio offerto da un provider, di accedere ad un pool condiviso di risorse distribuite e virtualizzate in rete in un’architettura di tipo client-server.
Cloud Computing
Fruizione del servizio in
base alle effettive
necessità, in modo
unilaterale e automatico.
Minima interazione con il
provider.
Le risorse sono raggruppate
per servire più consumatori,
utilizzando il modello multi-
tenant.
Le risorse, disponibili in rete, sono
accessibili attraverso meccanismi standard
utilizzando piattaforme eterogenee, purché
consentano l’accesso ad Internet.
Le risorse possono essere
acquisite in maniera rapida
ed elastica, in alcuni casi
anche automatica.
I sistemi cloud possono
monitorare ed ottimizzare
l’utilizzo delle risorse,
fornendo il livello di
astrazione appropriato al
tipo di servizio fruito.
MODELLI DI SERVIZIO MODELLI DI DISTRIBUZIONE CARATTERISTICHE
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Cloud Storage Modello per la conservazione dei dati in remoto
Manutenzione e
gestione a carico
del provider
Scalabilità
Spazio
potenzialmente
illimitato
Pay-per-use
Internet Access
Application
Cloud
Computer
Cloud Network
Storage Cloud
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
OwnCloud
Gestione e protezione dei dati all’interno dell’ambiente OwnCloud
Integrazione di sistemi e politiche esistenti
Estensione delle funzionalità attraverso un set completo di API
Interfaccia web semplice e intuitiva
Esperienza professionale su desktop, laptop, tablet e smarthphone
Distribuzioni supportate: Linux, Mac, Windows, Android
Soluzione open source per la sincronizzazione e la condivisione di file e contenuti
Caratteristiche OwnCloud Server
Applicazione PHP in esecuzione su web server IIS o Apache
Database – SQLite, MySQL, PostgreSQL, Oracle database
Astrazione del livello di storage
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
IT Automation and Configuration Management Per aumentare l’efficienza e realizzare a pieno i benefici della virtualizzazione e del Cloud Computing, le
organizzazioni IT hanno bisogno di strumenti di automazione finalizzati a migliorare l’amministrazione, il funzionamento e la gestione della loro infrastruttura, sia essa fisica, virtuale o cloud-based.
Ansible nasce dalla necessità di avere uno
strumento semplice e intuitivo per orchestrare attività IT più o meno complesse, dal
provisioning al deployment di applicazioni.
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Ansible Architecture
Modules library
Ansible dispone di
moduli integrati per
automatizzare le
operazioni più comuni,
ma è anche possibile
creare moduli
personalizzati
utilizzando qualsiasi
linguaggio (unico
vincolo = output JSON)
Playbooks
Documenti YAML semplici e intuitivi.
Particolarmente adatti al deployment
multi-machine
Trasporto SSH Ansible comunica in parallelo
con le macchine gestite
attraverso il trasporto SSH
Node1
Node2
NodeN
Nessun software deve essere
installato sulle macchine gestite.
Agentless
Per iniziare ad utilizzare Ansible, tutto
ciò che è necessario è un computer
con installato Python
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Ansible Playbook
Sintassi inizio file: serve ad interpretare il
file come un documento YAML corretto Host o gruppo di host
definito nell’ Inventory File, sul
quale saranno eseguiti i task.
Task: insieme di istruzioni per la
definizione e/o la configurazione
degli hosts.
Handlers: azioni eseguite solo quando
si verificano cambiamenti nel sistema.
Moduli: eseguibili direttamente
su host remoti oppure tramite i
playbook. Idempotenti.
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Il termine virtualizzazione si riferisce alla possibilità di astrarre le componenti hardware degli elaboratori al fine di renderle disponibili al software sotto forma di risorsa virtuale.
Una macchina virtuale è l’implementazione software completa di un computer con disco, memoria e CPU virtuali, realizzabile eseguendo un sistema operativo su un software di
virtualizzazione, comunemente indicato con il termine “hypervisor”.
Virtualizzazione
Tipicamente ad ogni server è dedicata una singola applicazione, in modo che eventuali guasti non
blocchino tutto il lavoro.
Physical Virtual
Molteplici macchine virtuali, che fungono da server separati ma che condividono le risorse hardware.
• RIDUZIONE DEI COSTI • SISTEMI ALTAMENTE
SCALABILI E CONFIGURABILI • FACILITÀ DI GESTIONE
NUMERO ELEVATO DI SERVER
= COSTI ELEVATI
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Virtualization Management
Lo sviluppatore interagisce con Vagrant eseguendo semplici comandi. Il comando principale è vagrant up per l’avvio della virtual machine. Il Vagrantfile (file di configurazione) contiene le direttive di base per specificare le caratteristiche della VM da costruire.
Vagrant comunica a VirtualBox, l’hypervisor di default, le
istruzioni per creare la VM.
Per il provisioning della VM, Vagrant può utilizzare numerosi strumenti, tra cui Ansible,
Puppet, Chef e script di shell, che si occuperanno di installare tutto il software necessario per
eseguire l’applicazione del progetto.
Una volta creata, avviata e preparata, lo sviluppatore può accedere direttamente alla VM (ad esempio, via SSH) esattamente nello stesso modo in cui accederebbe a qualsiasi server remoto. La differenza è che in questo caso il server vive in una VM all’interno della macchina host.
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Progetto Per automatizzare il deployment del servizio di cloud storage OwnCloud, si è predisposto un kit che
consente di installare OwnCloud Server su un nodo virtuale, semplicemente lanciando un file eseguibile.
Le variabili utilizzate nei
playbook sono definite nei file
contenuti in questa directory Contiene il Vagrantfile necessario per
la creazione della VM ed è la
directory condivisa tra host e guest Ansible Playbooks:
eseguono il deployment di OwnCloud
Server e la configurazione del
database MySQL Contiene le istruzioni
per l’utilizzo del kit
Ansible
Configuration File
Hosts Inventory File:
contiene l’elenco dei nodi che
Ansible deve gestire File eseguibile che
avvia tutta l’installazione
Documento YAML che include
i playbook da eseguire
File eseguibile che lancia il
comando vagrant up per
l’avvio della VM
Private key file:
necessario per l’autenticazione
dell’utente SSH
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Funzionamento
./install-owncloud
1
2
./start-node
ansible-playbook
owncloud.yaml
pre.yaml own.yaml mysql.yaml
include
VAGRANT UP
prerequisiti OwnCloud
Server
Configurazione
del database
MySQL
Automatic Cloud Deployment:
un caso di studio basato sul software OwnCloud Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Conclusioni Il lavoro svolto ha dato modo di sperimentare:
la funzionalità di autoconfigurazione fornita dal sistema applicativo OwnCloud e i numerosi vantaggi offerti dalla fruizione di tale servizio;
le possibili funzionalità derivanti dall’integrazione tra Ansible e Vagrant;
la semplicità di scrittura e l’efficacia dei Playbooks nell’esecuzione di operazioni più o meno complesse;
i vantaggi derivanti dall’utilizzo dello strumento Vagrant nella costruzione e nella gestione delle virtual machines.
Sviluppi futuri
Integrare al progetto nuovi Playbooks per la configurazione di altri DBMS, oltre a quello già fornito per MySQL.
Sfruttare Ansible anche per il provisioning della virtual machine, oltre che per il deployment delle applicazioni.
Sperimentare l’utilizzo dei plugin di Vagrant, integrando OpenStack nel Vagrantfile come provider alternativo a VirtualBox.