CLOUD COMPUTING E ARCHITETTURE SOFTWARE: QUALI … · ... con un approccio di condivisione di tipo...

21
CLOUD COMPUTING E ARCHITETTURE SOFTWARE: QUALI IMPATTI SULLO SVILUPPO DELLE APPLICAZIONI? Emanuele Barrano [email protected] Filippo Bosi [email protected] Marco Cimatti [email protected] Vincenzo Laudizio [email protected] Seminari ICT corso Reti di Calcolatori Università di Bologna - 3 Maggio 2013

Transcript of CLOUD COMPUTING E ARCHITETTURE SOFTWARE: QUALI … · ... con un approccio di condivisione di tipo...

CLOUD COMPUTING E ARCHITETTURE SOFTWARE: QUALI IMPATTI SULLO SVILUPPO DELLE APPLICAZIONI?

Emanuele Barrano – [email protected]

Filippo Bosi – [email protected]

Marco Cimatti – [email protected]

Vincenzo Laudizio – [email protected]

Seminari ICT corso Reti di Calcolatori – Università di Bologna - 3 Maggio 2013

Agenda

› Cloud Overview

› Approcci del Cloud Computing

› Conseguenze dell’utilizzo di Piattaforme Cloud (PaaS) sullo sviluppo di applicazioni

› Demo – Sessione pratica

› Conclusioni

2 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Cloud Computing: Concetti e Parole Chiave

› disponibilità di risorse IT “on demand”

› affidabilitá delle risorse su richiesta

› virtualizzazione di componenti IT

› allocazione “veloce” di risorse

› architetture orientate all’alta scalabilità

3

Concetti Parole Chiave

› On demand

› Reliability

› Virtualization

› Provisioning

› Scalability

Cloud Computing e Architetture Software Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Cosa è il Cloud Computing?

› Dal punto di vista dello sviluppo software, il Cloud Computing è un’infrastruttura di sviluppo e di esecuzione che offre

› un’interfaccia utente che nasconde le complessità di gestione a basso

livello dell’infrastruttura

› riduzione dei costi di amministrazione e dei relativi skill necessari

› un insieme di servizi orientati all’amministrazione dell’infrastruttura stessa

› alta scalabilità, preconfigurata

4 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Cloud Computing Continuum

› Il Cloud può essere visto come un continuum di servizi su differenti livelli, dall’infrastruttura al software

5

› Infrastructure: fornitura di hardware su cui generalmente si ha controllo sul Sistema Operativo

› Platform: ambienti di più alto livello per i quali gli sviluppatori realizzano applicazioni custom

› Software: software specializzato reso disponibile attraverso internet

Cloud Computing e Architetture Software Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Un esempio di IaaS – Amazon EC2 (I)

› Specifiche tecniche › AMI (Amazon Machine Image)

› Immagini di macchine virtuali preconfigurate e ready-to-go › Amazon S3 (Simple Storage Service)

› Infrastruttura di storage proprietaria di Amazon che funge da repository per lo storage delle AMIs

› Amazon EC2 (Elastic Cloud Computing) › Applicazione Web che permette l’amministrazione delle macchine

virtuali offerte all’utente finale

› Schema “Pay per Use” basato su › SLA › Traffico dati › Consumo di CPU › Spazio di Storage utilizzato

6 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

IaaS – Amazon EC2 (II)

7

› Passi necessari per l’utilizzo › Un account Amazon

EC2 › Connessione internet

e un browser › Startup dell’AMI › Amministrazione da

interfaccia utente amazon

Cloud Computing e Architetture Software Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

IaaS – Amazon EC2 (III)

› Caratteristiche di gestione › Capacità di auto-configurazione dell’infrastruttura hardware in termini

di › CPU › RAM › Storage › Network firewall

› Shell remota SSH › Disponibilità di template di immagini di macchina (Amazon AMI) con

un approccio di condivisione di tipo “Community” › Disponibilità – nell’ambiente – di una serie di macchine preconfigurate

da Amazon stessa › Monitoraggio delle risorse in real-time

8 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

PaaS – Google App Engine

› http://code.google.com/appengine › Google App Engine permette di costruire e far girare

applicazioni web, sullo stesso sistema che Google utilizza per le proprie applicazioni

› Sviluppo rapido › Messa in produzione rapida › Amministrazione semplificata › Non ci si deve preoccupare dell’hardware, dell’installazione di

patch nel sistema operativo o nel middleware, né dei backup › Python, Java, Go (http://golang.org) › Data Store di tipo NoSQL (“BigTable”) › Scalabilità automatica delle risorse › Orientato all’esecuzione di algoritmi specializzati, quali ad

esempio il Map-Reduce

9 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

PaaS – CloudBees

› http://www.cloudbees.com

› La piattaforma CloudBees offre la possibilità di effettuare build, test ed esecuzione di applicativi Java EE

› Offre › Una piattaforma di sviluppo

› Maven repository

› sistema di versionamento dei sorgenti: SVN, Git

› sistema di Continuous Integration preconfigurato

› Una piattaforma di esecuzione di applicazioni J2EE e Spring

› load balancing

› scalabilità

› alta affidabilità

10

Cloud Computing e Architetture Software Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

PaaS – RedHat OpenShift

› http://openshift.redhat.com › La piattaforma OpenShift offre supporto di sviluppo ed esecuzione multi-

linguaggio e multi-framework, ed è un PaaS basato principalmente sull’offerta di piattaforme software di RedHat. › Costruito su RHEL (RedHat Enterprise Linux) › Selezione di linguaggi, framework e middleware

› Approccio “cartdrige”, che permette allo sviluppatore di selezionare i componenti che interessano

› Java, Ruby, PHP, Python, Perl, node.js › MongoDB, JBoss, Jenkins… › Ruby on Rails, Drupal, Wordpress, MySQL

› Questa piattaforma è un esempio di come nell’arco di 6 mesi un’offerta PaaS possa cambiare radicalmente › Es. fino a diversi mesi fa c’erano 3 offerte commerciali ed era disponibile

SOLAMENTE un’interfaccia web › Oggi interfaccia a linea di comando, disponibilità di una versione open

source e nessuna offerta specializzata, il tutto fuori dal controllo degli sviluppatori

11 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Impatti del Cloud Computing sullo sviluppo di Applicazioni

› Gli impatti sono diversi, a seconda del livello di servizi Cloud che si utilizza › Sviluppo su IaaS

› + Il programmatore ha a disposizione un’infrastruttura virtualizzata pronta all’uso.

› + Immagini preconfigurate funzionanti su hardware virtualizzato › + Possibilitá di ottenere configurazioni avanzate attraverso una semplice

interfaccia utente › - Necessità di gestire i componenti infrastrutturali (ad es. aggiornamenti del

Sistema Operativo, applicazione di patch di sicurezza, ecc.) e del middleware (ad es. il web server, gli application server, ecc.)

› Sviluppo su PaaS › + Il programmatore può sfruttare tutti i vantaggi di una piattaforma che

nasconde ogni dettagli dell’infrastruttura virtuale › - Vi sono maggiori limitazioni imposte dalla definizione stessa della

piattaforma da parte del provider (sia inizialmente, sia in corso d’opera, ad es. evoluzioni della piattaforma)

› Sviluppo su SaaS › Normalmente sono applicazioni giá pronte all’uso: non c’é necessitá di

sviluppo (questo significa che gli sviluppatori non avranno alcun impatto )

12 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Sviluppo su IaaS (I)

13

› Può essere definita come “virtualizzazione avanzata” › Controllo sul software e sull’infrastruttura hardware (virtuale) › Possibilità completa di autoconfigurazione dello stack

software sull’infrastruttura cloud › + Disponibilità di template precostruiti, possibilità di effettuare tuning

e customizzare i template (ad es. parto da uno stack standard LAMP, o uno standard stack J2EE e poi opero modifiche in piena libertà)

› - Vi è necessità di mantenere nel tempo la configurazione dell’infrastruttura (ad es. patch di sicurezza, aggiornamenti del sistema operativo, aggiornamenti del middleware)

› Sostanzialmente, al provider IaaS è affidata la “sola” gestione dell’hardware fisico e dell’infrastruttura di virtualizzazione.

Cloud Computing e Architetture Software Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Sviluppo su IaaS (II)

› - L’indipendenza dall’hardware implica alcuni costi › ad es. performance delle virtual machine rispetto all’utilizzo diretto

dell’hardware fisico (20% di overhead, approssimativamente)

› + Di contro, la virtualizzazione permette di ottenere una scalabilità molto flessibile. Si può fare upgrade della potenza di computazione, a seconda delle esigenze dell’applicazione.

› - Il programmatore deve avere, tra le proprie conoscenze, la capacità di gestire ad un certo livello il sistema operativo, il middleware e in generale l’ambiente di esecuzione dei propri programmi

14 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Sviluppo su PaaS (I)

› E’ un servizio Cloud che offre › Piattaforme software general-purpose complete

› J2EE › Microsoft .Net › LAMP Stack

› L’infrastruttura (Virtuale?) è completamente nascosta allo sviluppatore › …eccetto la possibilità di monitorare le performance e

l’addebito dei costi (basato solitamente sull’utilizzo di risorse infrastrutturali)

15 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Sviluppo su PaaS (II)

› Il programmatore non si deve più (pre)occupare › dell’infrastruttura che supporta gli ambienti di sviluppo e di

esecuzione › della configurazione di

› Hardware › software (lo stack software viene aggiornato automaticamente dal

fornitore della piattaforma)

› Il programmatore si può concentrare sulle sole attività di sviluppo sulla piattaforma offerta dal provider

› “Scompaiono” concetti di base dei sistemi software › Sistema operativo › File System › Application Server › …

16 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Cloud in azione…

17

DEMO › Creazione ed utilizzo di un’infrastruttura IaaS su Amazon EC2 › Creazione ed esecuzione di una web application su OpenShift (PaaS) › Creazione ed esecuzione di una web application su CloudBees

…collaborativamente

Cloud Computing e Architetture Software Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Conclusioni

› Evoluzione dell’offerta di servizi Cloud › IaaS

› Da un ambiente standard di sviluppo e deploy di applicazioni, il programmatore trae beneficio di virtualizzazione avanzata/meccanismi di templating/interfaccia di management

› PaaS › Il programmatore trae beneficio da una piattaforma completamente

virtualizzata

› Gli IaaS sono per i system manager, ciò che i PaaS sono per i programmatori/architetti

› I PaaS sono la “vera” rivoluzione per gli sviluppatori (gli IaaS sono semplicemente un passo evolutivo della virtualizzazione) › Un programmatore non dovrà più occuparsi dei dettagli infrastrutturali per

il funzionamento della piattaforma (e, di conseguenza, della propria applicazione)

› Un programmatore si dovrà preoccupare solo di un’attività: lo sviluppo applicativo

18 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

19

DOMANDE?

Cloud Computing e Architetture Software Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

Riferimenti

› Lista di Cloud PaaS provider per java › http://gevaperry.typepad.com/main/2011/10/java-paas.html

› Heroku (piattaforma PaaS di SalesForce) › http://www.heroku.com/ (Salesforce)

› Wikipedia

› http://en.wikipedia.org/wiki/Platform_as_a_service

20 Cloud Computing e Architetture Software

Seminari di Reti di Calcolatori – Universitá di Bologna, 3 Maggio 2013

More than 20 years of experience on Enterprise IT

Consulting and Skill Transfer on Architecture, Integration and Process

OMG Influence Member, JSR 312 Expert Group, CSI, WWISA, OpenESB Key Partner, NetBeans Strategic Partner

http://www.imolinfo.it/index_en.php

Semantic Web company, now!

Applied research, training, projects

http://www.sensiblelogic.it

The online italian community dedicated to Java 10 years of articles, publications, books, events, training From programmers to architect More than 1.000.000 read pages per month http://www.mokabyte.it

21