20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software...

21
CLOUD COMPUTING E ARCHITETTURE SOFTWARE: QUALI IMPATTI SULLO SVILUPPO DELLE APPLICAZIONI? Emanuele Barrano – [email protected] Filippo Bosi [email protected] Vincenzo Laudizio [email protected] Seminari ICT corso ReB di Calcolatori – Universitá di Bologna 25 Maggio 2012

Transcript of 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software...

Page 1: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

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

  Emanuele Barrano – [email protected]   Filippo Bosi – [email protected]

  Vincenzo Laudizio – [email protected]

Seminari  ICT  corso  ReB  di  Calcolatori  –  Universitá  di  Bologna  -­‐    25  Maggio  2012  

Page 2: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

Agenda  

›  Cloud  Overview  ›  Approcci  del  Cloud  Compu2ng  ›  Conseguenze  dell’u2lizzo  di  Pia:aforme  Cloud  (PaaS)  sullo  sviluppo  di  applicazioni  

›  Demo  –  Sessione  pra2ca  

›  Conclusioni  

2 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 3: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

Cloud  CompuBng:  ConceW  e  Parole  Chiave  

›  disponibilità  di  risorse  IT  “on  demand”  

›  affidabilitá  delle  risorse  su  richiesta  ›  virtualizzazione  di  componen2  IT  

›  allocazione  “veloce”  di  risorse  ›  archite:ure    orientate  all’alta  scalabilitá  

3

ConceK                          Parole  Chiave  

›  On  demand  

›  Reliability  ›  Virtualiza2on  ›  Provisioning  ›  Scalability  

F  

Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 4: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

Cosa  è  il    Cloud  CompuBng?  

›  Dal  punto  di  vista  dello  sviluppo  soPware,  il  Cloud  Compu2ng  é  un’infrastru:ura  di  sviluppo  e  di  esecuzione  che  offre  

›  una  interfaccia  utente  che  nasconde  le  complessità  di  ges2one  a  basso  livello  dell’infrastru:ura  

›  riduzione  dei  cos2  di  amministrazione  e  dei  rela2vi  skill  necessari  

›  un  insieme  di  servizi  orienta2  all’amministrazione  dell’infrastru:ura  stessa  

›  alta  scalabilità,  preconfigurata  

4 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 5: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

Cloud  CompuBng  ConBnuum  

›  Il  Cloud  può  essere  visto  come  un  con2nuum  di  servizi  su  differen2  livelli,  dall’infrastru:ura  al  soPware  

5

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

›  PlaXorm:  ambien2  di  più  alto  livello  per  i  quali  gli  sviluppatori  realizzano  applicazioni  custom  

›  SoPware:  soPware  specializzato  reso  disponibile  a:raverso  internet  

Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 6: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

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)  

›  Infrastru:ura  di  storage  proprietaria  di  Amazon  che  funge  da  repository  per  lo  storage  delle  AMIs  

›  Amazon  EC2  (Elas2c  Cloud  Compu2ng)  ›  Applicazione  Web  che  perme:e  l’amministrazione  delle  macchine  virtuali  offerte  all’utente  finale  

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

6 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 7: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

IaaS  –  Amazon  EC2  (II)  

7

›  Passi  necessari  per  l’u2lizzo  ›  Un  account  Amazon  

EC2  ›  Connessione  internet  

e  un  browser  ›  Startup  dell’AMI  ›  Amministrazione  da  

interfaccia  utente  amazon  

Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 8: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

IaaS  –  Amazon  EC2  (III)  

›  Cara:eris2che  di  ges2one  ›  Capacità  di  auto-­‐configurazione  dell’infrastru:ura  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  2po  “Community”  ›  Disponibilità  –  nell’ambiente  –  di  una  serie  di  macchine  preconfigurate  

da  Amazon  stessa  ›  Monitoraggio  delle  risorse  in  real-­‐2me  

8 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 9: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

PaaS  –  Google  App  Engine  

›  h:p://code.google.com/appengine  ›  Google  App  Engine  perme:e  di  costruire  e  far  girare  

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

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

patch  nel  sistema  opera2vo  o  nel  middleware,  né  dei  backup  ›  Python,  Java,  Go  (h:p://golang.org)  ›  Data  Store  di  2po  NoSQL  (“BigTable”)  ›  Scalabilità  automa2ca  delle  risorse  ›  Orientato  all’esecuzione  di  algoritmi  specializza2,  quali  ad  

esempio  il  Map-­‐Reduce  

9 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 10: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

PaaS  –  CloudBees  

›  h:p://www.cloudbees.com  

›  La  pia:aforma  CloudBees  offre  la  possibilità  di  effe:uare  build,  test  ed  esecuzione  di  applica2vi  Java  EE  

›  Offre  ›  Una  pia:aforma  di  sviluppo  

›  Maven  repository  ›  sistema  di  versionamento  dei  sorgen2:  SVN  Git  

›  sistema  di  Con2nuous  Integra2on  preconfigurato  

›  Una  pia:aforma  di  esecuzione  di  applicazioni  J2EE  e  Spring  ›  load  balancing  ›  scalabilità  ›  alta  affidabilità  

10 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 11: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

PaaS  –  RedHat  OpenShiT  

›  h:p://openshiP.redhat.com  ›  La  pia:aforma  OpenShiP  offre  supporto  di  sviluppo  ed  esecuzione  mul2-­‐

linguaggio  e  mul2-­‐framework,  ed  è  un  PaaS  basato  principalmente  sull’offerta  di  pia:aforme  soPware  di  RedHat.  

›  Costruito  su  RHEL  (RedHat  Enterprise  Linux)  ›  Selezione  di  linguaggi,  framework  e  middleware  

›  Approccio  “cartdrige”,  che  perme:e  allo  sviluppatore  di  selezionare  i  componen2  che  interessano  

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

›  Questa  pia:aforma  è  un  esempio  di  come  nell’arco  di  6  mesi  un’offerta  PaaS  possa  cambiare  radicalmente  ›  Es.  fino  a  qualche  mese  fa  c’erano  3  offerte  commerciali  e  era  disponibile  

SOLO  un’interfaccia  web  ›  Oggi  interfaccia  a  linea  di  comando,  disponibilitá  di  una  versione  open  

source  e  nessuna  offerta  specializzata,  il  tu:o  fuori  dal  controllo  degli  sviluppatori  

11 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 12: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

ImpaW  del  Cloud  CompuBng  sullo  sviluppo  di  Applicazioni  

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

›  +  Il  programmatore  ha  a  disposizione  un’infrastru:ura  virtualizzata  pronta  all’uso.  

›  +  Immagini  preconfigurate  funzionan2  su  hardware  virtualizzato  ›  +  Possibilitá  di  o:enere  configurazioni  avanzate  a:raverso  una  semplice  

interfaccia  utente  ›  -­‐  Necessità  di  ges2re  i  componen2  infrastru:urali  (ad  es.  aggiornamen2  del  

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

›  Sviluppo  su  PaaS  ›  +  Il  programmatore  può  sfru:are  tuK  i  vantaggi  di  una  pia:aforma  che  

nasconde  ogni  de:agli  dell’infrastru:ura  virtuale  ›  -­‐  Vi  sono  maggiori  limitazioni  imposte  dalla  definizione  stessa  della  pia:aforma  

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

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

sviluppo  (questo  significa  che  gli  sviluppatori  non  avranno  alcun  impa:o  )  

12 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 13: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

Sviluppo  su  IaaS  (I)  

13

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

soPware  sull’infrastru:ura  cloud  ›  +  Disponibilità  di  template  precostrui2,  possibilità  di  effe:uare  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’infrastru:ura  (ad  es.  patch  di  sicurezza,  aggiornamen2  del  sistema  opera2vo,  aggiornamen2  del  middleware)  

›  Sostanzialmente,  al  provider  IaaS  è  affidata  la  “sola”  ges2one  dell’hardware  fisico  e  dell’infrastru:ura  di  virtualizzazione.  

Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 14: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

Sviluppo  su  IaaS  (II)  

›  -­‐  L’indipendenza  dall’hardware  implica  alcuni  cos2  ›  ad  es.  performance  delle  virtual  machine  rispe:o  all’u2lizzo  dire:o  dell’hardware  fisico  (20%  di  overhead,  approssima2vamente)  

›  +  Di  contro,  la  virtualizzazione  perme:e  di  o:enere  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  ges2re  ad  un  certo  livello  il  sistema  opera2vo,  il  middleware  e  in  generale  l’ambiente  di  esecuzione  dei  propri  programmi  

14 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 15: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

Sviluppo  su  PaaS  (I)  

›  E’  un  servizio  Cloud  che  offre  ›  Pia:aforme  soPware  general-­‐purpose  complete  

› J2EE  › MicrosoP  .Net  › LAMP  Stack  

›  L’infrastru:ura  (Virtuale?)  é  completamente  nascosta  allo  sviluppatore  ›  …ecce:o  la  possibilità  di  monitorare  le  performance  e…  l’addebito  dei  cos2    (basato  solitamente  sull’u2lizzo  di  risorse  infrastru:urali)  

15 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 16: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

Sviluppo  su  PaaS  (II)  

›  Il  programmatore  non  si  deve  più  (pre)occupare  ›  dell’infrastru:ura  che  supporta  gli  ambien2  di  sviluppo  e  di  esecuzione  ›  della  configurazione  di  

›  Hardware  ›  soPware  (lo  stack  soPware  viene  aggiornato  automa2camente  dal  fornitore  della  pia:aforma)  

›  Il  programmatore  si  può  concentrare  sulle  sole  aKvità  di  sviluppo  sulla  pia:aforma  offerta  dal  provider  

›  “Scompaiono”  conceK  di  base  dei  sistemi  soPware  ›  Sistema  opera2vo  ›  File  System  ›  Applica2on  Server  ›  …  

16 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 17: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

Cloud  in  azione…  

17

DEMO  ›   Creazione  ed  u2lizzo  di  un’infrastru:ura  IaaS  su  Amazon  EC2  ›   Creazione  ed  esecuzione  di  una  web  applica2on  su  OpenShiP  (PaaS)  ›   Creazione  ed  esecuzione  di  una  web  applica2on  su  CloudBees  

›   …collabora2vamente      

Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 18: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

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  templa2ng/interfaccia  di  management  

›  PaaS  ›  Il  programmatore  trae  beneficio  da  una  pia:aforma  completamente  

virtualizzata    ›  Gli  IaaS  sono  per  i  system  manager,  ciò  che  i  PaaS  sono  per  i  

programmatori/architeK  

›  I  PaaS  sono  la  “vera”  rivoluzione  per  gli  sviluppatori  (gli  IaaS  sono  semplicemente  un  passo  evolu2vo  della  virtualizzazione)  ›  Un  programmatore  non  dovrà  più  occuparsi  dei  de:agli  infrastru:urali  per  

il  funzionamento  della  pia:aforma  (e,  di  conseguenza,  della  propria  applicazione)  

›  Un  programmatore  si  dovrà  preoccupare  solo  di  un’aKvità:  lo  sviluppo  applica2vo  

18 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 19: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

19

DOMANDE?  

Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 20: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

RiferimenB  

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

›  Heroku  (pia:aforma  PaaS  di  SalesForce)  ›  h:p://www.heroku.com/  (Salesforce)  

›  Wikipedia  ›  h:p://en.wikipedia.org/wiki/PlaXorm_as_a_service  

20 Cloud  CompuBng  e  ArchiteSure  SoTware  Seminari  di  ReB  di  Calcolatori  –    Universitá  di  Bologna,  25  Maggio  2012  

Page 21: 20120525 seminario uni bo reti calcolatori - imola informatica - cloud computing and software development

  More  than  20  years  of  experience  on  Enterprise  IT  

  Consul2ng  and  Skill  Transfer  on  Architecture,  IntegraBon  and  Process    

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

  h:p://www.imolinfo.it/index_en.php  

  SemanBc  Web  company,  now!  

  Applied  research,  training,  projects  

  h:p://www.sensiblelogic.it  

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

21