13
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

Embed Size (px)

DESCRIPTION

Presentation of the graduation project about OwnCloud automated deployment using Ansible and Vagrant.

Citation preview

Page 1: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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

Page 2: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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.

Page 3: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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

Page 4: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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

Page 5: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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

Page 6: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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.

Page 7: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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

Page 8: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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.

Page 9: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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

Page 10: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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.

Page 11: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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

Page 12: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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

Page 13: Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud

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.