SlideShare una empresa de Scribd logo
1 de 51
Cosa aspettarsi da
questo seminario:




                  Alberto Zuin
           http://www.azns.it
             alberto@azns.it
Cosa aspettarsi da
questo seminario:

 Conoscenza degli elementi 
 che compongono un cloud




                       Alberto Zuin
                http://www.azns.it
                  alberto@azns.it
Cosa aspettarsi da
 questo seminario:

   Conoscenza degli elementi 
   che compongono un cloud


            Conoscenza degli
strumenti aggiuntivi del cloud




                           Alberto Zuin
                    http://www.azns.it
                      alberto@azns.it
Cosa aspettarsi da
             questo seminario:

              Conoscenza degli elementi 
              che compongono un cloud


                       Conoscenza degli
           strumenti aggiuntivi del cloud


Linee guida da seguire per realizzare una 
                web application scalabile

                                      Alberto Zuin
                               http://www.azns.it
                                 alberto@azns.it
Cos'è un cloud?
                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
Quando usare il cloud?
                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
Quando non usare il cloud?
                            Alberto Zuin
                     http://www.azns.it
                       alberto@azns.it
Scalabilità nel cloud:




                       Alberto Zuin
                http://www.azns.it
                  alberto@azns.it
Scalabilità nel cloud:
       Verticale




                          Alberto Zuin
                   http://www.azns.it
                     alberto@azns.it
Scalabilità nel cloud:
      Orizzontale




                           Alberto Zuin
                    http://www.azns.it
                      alberto@azns.it
Multi-Tenancy
                       Alberto Zuin
                http://www.azns.it
                  alberto@azns.it
Da quali elementi
  è composto?          Alberto Zuin
                http://www.azns.it
                  alberto@azns.it
Networking




                    Alberto Zuin
             http://www.azns.it
               alberto@azns.it
Networking
     Capacità
computazionale



                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
Networking
     Capacità
computazionale
   Storage

                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
Networking
      Capacità
 computazionale
    Storage

Cloud controller
                           Alberto Zuin
                    http://www.azns.it
                      alberto@azns.it
Differenza tra IaaS,
    PaaS e SaaS           Alberto Zuin
                   http://www.azns.it
                     alberto@azns.it
SaaS
Ottimizzazione




                                  PaaS




                                         IaaS




                        Flessibilità


                                                       Alberto Zuin
                                                http://www.azns.it
                                                  alberto@azns.it
IaaS:

Infrastructure as a
      Service


                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
PaaS:
Platform as a Service
                          Alberto Zuin
                   http://www.azns.it
                     alberto@azns.it
SaaS:
Software as a Service
                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
vs.


    Differenza tra
struttura virtualizzata
 e Cloud Computing         Alberto Zuin
                    http://www.azns.it
                      alberto@azns.it
vs.


Differenza tra Cloud
 Computing e Grid
     Computing           Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
Private Cloud vs Public Cloud
                  Private                     Pubic

Posizione         Interna all'azienda         Internet

Connessione       Connessa alla rete locale   Connessa ad Internet

Scalabilità       Tendenzialmente verticale   Tendenzialmente Orizzontale

Scalabilità       100-1000 nodi               +10.000 nodi
massima
Condivisione      Single-tenant               Multi--tenat

Prezzo            In base alla capacità       In base all'utilizzo

Centro            Costo                       Ricarico
finanziario


    (ma c'è anche l'hybrid...)
                                                                            Alberto Zuin
                                                                     http://www.azns.it
                                                                       alberto@azns.it
IaaS
              Alberto Zuin
       http://www.azns.it
         alberto@azns.it
IaaS: ridondanza e
  scalabilità dello
      storage
                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
Storage
              Locale

120


100


80

                                  Ridondanza
60                                Scalabilità
                                  Velocità
40


20


 0
      Storage Locale




                              Alberto Zuin
                       http://www.azns.it
                         alberto@azns.it
SAN: Storage
 Area Network

120


100


80

                                        Ridondanza
60                                      Scalabilità
                                        Velocità
40


20


 0
      Storage Locale   SAN




                                    Alberto Zuin
                             http://www.azns.it
                               alberto@azns.it
Cluster
                       Storage

120


100


80

                                           Ridondanza
60                                         Scalabilità
                                           Velocità
40


20


 0
      Storage Locale   SAN   Cluster




                                       Alberto Zuin
                                http://www.azns.it
                                  alberto@azns.it
1      2            2                      4




       4            1   3                  3




FILE
1234
           Cluster storage con replica 2
                                                      Alberto Zuin
                                               http://www.azns.it
                                                 alberto@azns.it
1      2            2   4            1     4




3      4            1   3            2     3




FILE
1234
           Cluster storage con replica 3
                                                      Alberto Zuin
                                               http://www.azns.it
                                                 alberto@azns.it
IaaS: ridondanza e
  scalabilità degli
    Hypervisor
                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
1          3            5




2          4            6




    Cloud Controller

                              Alberto Zuin
                       http://www.azns.it
                         alberto@azns.it
1                       5
           3


2                       6

           4

3                       4




    Cloud Controller

                              Alberto Zuin
                       http://www.azns.it
                         alberto@azns.it
1          3            5




2          4            6




    Cloud Controller

                              Alberto Zuin
                       http://www.azns.it
                         alberto@azns.it
Quale Cloud Controller?
 Closed Source vs. Open Source
Pro:  assistenza  efficace  in      Pro:  tutti  compatibili  con  le 
 caso  di  guasto,  semplicità       API  Amazon  EC2,  aperti 
 d'uso                               anche  per  il  controllo  del 
 Con:  costo  elevato,  API  non     cloud  stesso  (ad  es.  billing) 
 compatibili  con  Amazon            tramite                       API
 EC2.                                Con:  nessuna  assistenza 
                                     diretta, nessuna garanzia




                                                                 Alberto Zuin
                                                          http://www.azns.it
                                                            alberto@azns.it
Le API di Amazon
                      Alberto Zuin
               http://www.azns.it
                 alberto@azns.it
Amazon DevPay                    Elastic Block Store           Elastic Network Interfaces            Internet Gateways (Amazon VPC)
 ConfirmProductInstance            AttachVolume                  AttachNetworkInterface                 AttachInternetGateway
                                   CreateSnapshot                DetachNetworkInterface                 CreateInternetGateway
AMIs                               CreateVolume                  CreateNetworkInterface                 DeleteInternetGateway
  CreateImage                      DeleteSnapshot                DeleteNetworkInterface                 DescribeInternetGateways
  DeregisterImage                  DeleteVolume                  DescribeNetworkInterfaces              DetachInternetGateway
  DescribeImageAttribute           DescribeSnapshotAttribute     DescribeNetworkInterfaceAttribute
  DescribeImages                   DescribeSnapshots             ModifyNetworkInterfaceAttribute     Key Pairs
  ModifyImageAttribute             DescribeVolumes               ResetNetworkInterfaceAttribute        CreateKeyPair
  RegisterImage                    DescribeVolumeAttribute                                             DeleteKeyPair
  ResetImageAttribute              DescribeVolumeStatus        General                                 DescribeKeyPairs
                                   DetachVolume                  GetConsoleOutput                      ImportKeyPair
Availability Zones and Regions     EnableVolumeIO
  DescribeAvailabilityZones        ImportVolume                Instances                             Monitoring
  DescribeRegions                  ModifySnapshotAttribute        DescribeInstanceAttribute           MonitorInstances
                                   ModifyVolumeAttribute          DescribeInstances                   UnmonitorInstances
Customer Gateways (Amazon VPC)     ResetSnapshotAttribute         DescribeInstanceStatus
  CreateCustomerGateway                                           ImportInstance                     Network ACLs (Amazon VPC)
  DeleteCustomerGateway          Elastic IP Addresses             ModifyInstanceAttribute              CreateNetworkAcl
  DescribeCustomerGateways         AllocateAddress                RebootInstances                      CreateNetworkAclEntry
                                   AssociateAddress               ReportInstanceStatus                 DeleteNetworkAcl
DHCP Options (Amazon VPC)          DescribeAddresses              ResetInstanceAttribute               DeleteNetworkAclEntry
  AssociateDhcpOptions             DisassociateAddress            RunInstances                         DescribeNetworkAcls
  CreateDhcpOptions                ReleaseAddress                 StartInstances                       ReplaceNetworkAclAssociation
  DeleteDhcpOptions                                               StopInstances                        ReplaceNetworkAclEntry
  DescribeDhcpOptions                                             TerminateInstances
                                                                                                     Placement Groups
                                                                                                       CreatePlacementGroup
                                                                                                       DeletePlacementGroup
                                                                                                       DescribePlacementGroups




                                                                                                                     Alberto Zuin
                                                                                                              http://www.azns.it
                                                                                                                alberto@azns.it
Reserved Instances                                                 Spot Instances                       VM Import
  DescribeReservedInstances                                          CancelSpotInstanceRequests           CancelConversionTask
  DescribeReservedInstancesOfferings                                 CreateSpotDatafeedSubscription       DescribeConversionTasks
  PurchaseReservedInstancesOffering                                  DeleteSpotDatafeedSubscription       ImportInstance
                                                                     DescribeSpotDatafeedSubscription     ImportVolume
Route Tables (Amazon VPC)                                            DescribeSpotInstanceRequests
  AssociateRouteTable                                                DescribeSpotPriceHistory           VPCs (Amazon VPC)
  CreateRoute                                                        RequestSpotInstances                 CreateVpc
  CreateRouteTable                                                                                        DeleteVpc
  DeleteRoute                                                      Subnets (Amazon VPC)                   DescribeVpcs
  DeleteRouteTable                                                   CreateSubnet
  DescribeRouteTables                                                DeleteSubnet                       VPN Connections (Amazon VPC)
  DisassociateRouteTable                                             DescribeSubnets                      CreateVpnConnection
  ReplaceRoute                                                                                            DeleteVpnConnection
  ReplaceRouteTableAssociation                                     Tags                                   DescribeVpnConnections
                                                                     CreateTags
Security Groups                                                      DeleteTags                         Virtual Private Gateways (Amazon VPC)
  AuthorizeSecurityGroupEgress (Amazon VPC security groups only)     DescribeTags                          AttachVpnGateway
  AuthorizeSecurityGroupIngress                                                                            CreateVpnGateway
  CreateSecurityGroup                                                                                      DeleteVpnGateway
  DeleteSecurityGroup                                                                                      DescribeVpnGateways
  DescribeSecurityGroups                                                                                   DetachVpnGateway
  RevokeSecurityGroupEgress (Amazon VPC security groups only)
  RevokeSecurityGroupIngress                                                                            Windows
                                                                                                          BundleInstance
                                                                                                          CancelBundleTask
                                                                                                          DescribeBundleTasks
                                                                                                          GetPasswordData




                                                                                                                               Alberto Zuin
                                                                                                                        http://www.azns.it
                                                                                                                          alberto@azns.it
PaaS: Platform as a
      Service
                        Alberto Zuin
                 http://www.azns.it
                   alberto@azns.it
Il web server/load balancer




                             Alberto Zuin
                      http://www.azns.it
                        alberto@azns.it
L'application server




                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
Il data storage




                         Alberto Zuin
                  http://www.azns.it
                    alberto@azns.it
Altri componenti




                          Alberto Zuin
                   http://www.azns.it
                     alberto@azns.it
E il database relazionale...




          ?
        (…ma serve?)
                              Alberto Zuin
                       http://www.azns.it
                         alberto@azns.it
Servizi PaaS acquistabili e
        OpenSource
                             Alberto Zuin
                      http://www.azns.it
                        alberto@azns.it
Linuguaggi: .net (leader), PHP, Java, node.js
  Database Relazionale Azure SQL
  Storage a BLOB
  API per gestire la comunicazione tra i processi          Alberto Zuin
                                                    http://www.azns.it
                                                      alberto@azns.it
Engine Yard




Linguaggi: PHP (leader), Ruby, node.js
  Database Relazionali: MySQL, PostgreSQL
  Database Documentali: MongoDB, Redis
  Controllo della cache via memcached e Redis
  Controllo dei processi via delayed_job e resque          Alberto Zuin
                                                    http://www.azns.it
                                                      alberto@azns.it
Linguaggi: Ruby (leader), Node.js, Clojure, 
 Java, Python, e Scala (leader)
 Database Relazionali: PostgreSQL
 Gemma Ruby per il controllo totale della 
 piattaforma
                                              Alberto Zuin
                                       http://www.azns.it
                                         alberto@azns.it
Linguaggi: Java, Python (leader) e Go!
 Database Relazionali: MySQL
 Database Documentali: Google Datastore
 API dedicate per la gestione dei processi
                                             Alberto Zuin
                                      http://www.azns.it
                                        alberto@azns.it
Progetto OpenSource per 
 trasformare un IaaS in un PaaS 
 compatibile con Goole App 
 Engine                            Alberto Zuin
                            http://www.azns.it
                              alberto@azns.it

Más contenido relacionado

Destacado

Choosing PaaS: Cisco and Open Source Options: an overview
Choosing PaaS:  Cisco and Open Source Options: an overviewChoosing PaaS:  Cisco and Open Source Options: an overview
Choosing PaaS: Cisco and Open Source Options: an overviewCisco DevNet
 
Cloud Surfing: Kubernetes on Mesos
Cloud Surfing: Kubernetes on MesosCloud Surfing: Kubernetes on Mesos
Cloud Surfing: Kubernetes on MesosKarl Isenberg
 
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!VMware Tanzu
 
Cloud Foundry vs Docker vs Kubernetes - http://bit.ly/2rzUM2U
Cloud Foundry vs Docker vs Kubernetes - http://bit.ly/2rzUM2UCloud Foundry vs Docker vs Kubernetes - http://bit.ly/2rzUM2U
Cloud Foundry vs Docker vs Kubernetes - http://bit.ly/2rzUM2USufyaan Kazi
 
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scale
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scaleMonitoring microservices: Docker, Mesos and Kubernetes visibility at scale
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scaleAlessandro Gallotta
 
Mesos vs kubernetes comparison
Mesos vs kubernetes comparisonMesos vs kubernetes comparison
Mesos vs kubernetes comparisonKrishna-Kumar
 
Kubernetes on Top of Mesos on Top of DCOS
Kubernetes on Top of Mesos on Top of DCOSKubernetes on Top of Mesos on Top of DCOS
Kubernetes on Top of Mesos on Top of DCOSStefan Schimanski
 
Mesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overviewMesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overviewKrishna-Kumar
 
A Perfect Cloud Foundry Engineer
A Perfect Cloud Foundry EngineerA Perfect Cloud Foundry Engineer
A Perfect Cloud Foundry EngineerAltoros
 
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?Carlos Sanchez
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesSamuel Terburg
 
Red Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep DiveRed Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep DiveGreg Hoelzer
 
PuppetConf 2016: Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deep...
PuppetConf 2016:  Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deep...PuppetConf 2016:  Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deep...
PuppetConf 2016: Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deep...Puppet
 
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...Neo4j
 

Destacado (14)

Choosing PaaS: Cisco and Open Source Options: an overview
Choosing PaaS:  Cisco and Open Source Options: an overviewChoosing PaaS:  Cisco and Open Source Options: an overview
Choosing PaaS: Cisco and Open Source Options: an overview
 
Cloud Surfing: Kubernetes on Mesos
Cloud Surfing: Kubernetes on MesosCloud Surfing: Kubernetes on Mesos
Cloud Surfing: Kubernetes on Mesos
 
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!
Cloud Foundry Summit 2015: Devops, microservices and platforms, oh my!
 
Cloud Foundry vs Docker vs Kubernetes - http://bit.ly/2rzUM2U
Cloud Foundry vs Docker vs Kubernetes - http://bit.ly/2rzUM2UCloud Foundry vs Docker vs Kubernetes - http://bit.ly/2rzUM2U
Cloud Foundry vs Docker vs Kubernetes - http://bit.ly/2rzUM2U
 
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scale
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scaleMonitoring microservices: Docker, Mesos and Kubernetes visibility at scale
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scale
 
Mesos vs kubernetes comparison
Mesos vs kubernetes comparisonMesos vs kubernetes comparison
Mesos vs kubernetes comparison
 
Kubernetes on Top of Mesos on Top of DCOS
Kubernetes on Top of Mesos on Top of DCOSKubernetes on Top of Mesos on Top of DCOS
Kubernetes on Top of Mesos on Top of DCOS
 
Mesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overviewMesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overview
 
A Perfect Cloud Foundry Engineer
A Perfect Cloud Foundry EngineerA Perfect Cloud Foundry Engineer
A Perfect Cloud Foundry Engineer
 
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
 
Red Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep DiveRed Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep Dive
 
PuppetConf 2016: Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deep...
PuppetConf 2016:  Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deep...PuppetConf 2016:  Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deep...
PuppetConf 2016: Docker, Mesos, Kubernetes and...Puppet? Don't Panic! – Deep...
 
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
 

Último

Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 

Último (9)

Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 

IaaS e PaaS

  • 1. Cosa aspettarsi da questo seminario: Alberto Zuin http://www.azns.it alberto@azns.it
  • 2. Cosa aspettarsi da questo seminario: Conoscenza degli elementi  che compongono un cloud Alberto Zuin http://www.azns.it alberto@azns.it
  • 3. Cosa aspettarsi da questo seminario: Conoscenza degli elementi  che compongono un cloud Conoscenza degli strumenti aggiuntivi del cloud Alberto Zuin http://www.azns.it alberto@azns.it
  • 4. Cosa aspettarsi da questo seminario: Conoscenza degli elementi  che compongono un cloud Conoscenza degli strumenti aggiuntivi del cloud Linee guida da seguire per realizzare una  web application scalabile Alberto Zuin http://www.azns.it alberto@azns.it
  • 5. Cos'è un cloud? Alberto Zuin http://www.azns.it alberto@azns.it
  • 6. Quando usare il cloud? Alberto Zuin http://www.azns.it alberto@azns.it
  • 7. Quando non usare il cloud? Alberto Zuin http://www.azns.it alberto@azns.it
  • 8. Scalabilità nel cloud: Alberto Zuin http://www.azns.it alberto@azns.it
  • 9. Scalabilità nel cloud: Verticale Alberto Zuin http://www.azns.it alberto@azns.it
  • 10. Scalabilità nel cloud: Orizzontale Alberto Zuin http://www.azns.it alberto@azns.it
  • 11. Multi-Tenancy Alberto Zuin http://www.azns.it alberto@azns.it
  • 12. Da quali elementi è composto? Alberto Zuin http://www.azns.it alberto@azns.it
  • 13. Networking Alberto Zuin http://www.azns.it alberto@azns.it
  • 14. Networking Capacità computazionale Alberto Zuin http://www.azns.it alberto@azns.it
  • 15. Networking Capacità computazionale Storage Alberto Zuin http://www.azns.it alberto@azns.it
  • 16. Networking Capacità computazionale Storage Cloud controller Alberto Zuin http://www.azns.it alberto@azns.it
  • 17. Differenza tra IaaS, PaaS e SaaS Alberto Zuin http://www.azns.it alberto@azns.it
  • 18. SaaS Ottimizzazione PaaS IaaS Flessibilità Alberto Zuin http://www.azns.it alberto@azns.it
  • 19. IaaS: Infrastructure as a Service Alberto Zuin http://www.azns.it alberto@azns.it
  • 20. PaaS: Platform as a Service Alberto Zuin http://www.azns.it alberto@azns.it
  • 21. SaaS: Software as a Service Alberto Zuin http://www.azns.it alberto@azns.it
  • 22. vs. Differenza tra struttura virtualizzata e Cloud Computing Alberto Zuin http://www.azns.it alberto@azns.it
  • 23. vs. Differenza tra Cloud Computing e Grid Computing Alberto Zuin http://www.azns.it alberto@azns.it
  • 24. Private Cloud vs Public Cloud Private Pubic Posizione Interna all'azienda Internet Connessione Connessa alla rete locale Connessa ad Internet Scalabilità Tendenzialmente verticale Tendenzialmente Orizzontale Scalabilità 100-1000 nodi +10.000 nodi massima Condivisione Single-tenant Multi--tenat Prezzo In base alla capacità In base all'utilizzo Centro Costo Ricarico finanziario (ma c'è anche l'hybrid...) Alberto Zuin http://www.azns.it alberto@azns.it
  • 25. IaaS Alberto Zuin http://www.azns.it alberto@azns.it
  • 26. IaaS: ridondanza e scalabilità dello storage Alberto Zuin http://www.azns.it alberto@azns.it
  • 27. Storage Locale 120 100 80 Ridondanza 60 Scalabilità Velocità 40 20 0 Storage Locale Alberto Zuin http://www.azns.it alberto@azns.it
  • 28. SAN: Storage Area Network 120 100 80 Ridondanza 60 Scalabilità Velocità 40 20 0 Storage Locale SAN Alberto Zuin http://www.azns.it alberto@azns.it
  • 29. Cluster Storage 120 100 80 Ridondanza 60 Scalabilità Velocità 40 20 0 Storage Locale SAN Cluster Alberto Zuin http://www.azns.it alberto@azns.it
  • 30. 1 2 2 4 4 1 3 3 FILE 1234 Cluster storage con replica 2 Alberto Zuin http://www.azns.it alberto@azns.it
  • 31. 1 2 2 4 1 4 3 4 1 3 2 3 FILE 1234 Cluster storage con replica 3 Alberto Zuin http://www.azns.it alberto@azns.it
  • 32. IaaS: ridondanza e scalabilità degli Hypervisor Alberto Zuin http://www.azns.it alberto@azns.it
  • 33. 1 3 5 2 4 6 Cloud Controller Alberto Zuin http://www.azns.it alberto@azns.it
  • 34. 1 5 3 2 6 4 3 4 Cloud Controller Alberto Zuin http://www.azns.it alberto@azns.it
  • 35. 1 3 5 2 4 6 Cloud Controller Alberto Zuin http://www.azns.it alberto@azns.it
  • 36. Quale Cloud Controller? Closed Source vs. Open Source Pro:  assistenza  efficace  in  Pro:  tutti  compatibili  con  le  caso  di  guasto,  semplicità  API  Amazon  EC2,  aperti  d'uso anche  per  il  controllo  del  Con:  costo  elevato,  API  non  cloud  stesso  (ad  es.  billing)  compatibili  con  Amazon  tramite  API EC2. Con:  nessuna  assistenza  diretta, nessuna garanzia Alberto Zuin http://www.azns.it alberto@azns.it
  • 37. Le API di Amazon Alberto Zuin http://www.azns.it alberto@azns.it
  • 38. Amazon DevPay Elastic Block Store Elastic Network Interfaces Internet Gateways (Amazon VPC) ConfirmProductInstance AttachVolume AttachNetworkInterface AttachInternetGateway CreateSnapshot DetachNetworkInterface CreateInternetGateway AMIs CreateVolume CreateNetworkInterface DeleteInternetGateway CreateImage DeleteSnapshot DeleteNetworkInterface DescribeInternetGateways DeregisterImage DeleteVolume DescribeNetworkInterfaces DetachInternetGateway DescribeImageAttribute DescribeSnapshotAttribute DescribeNetworkInterfaceAttribute DescribeImages DescribeSnapshots ModifyNetworkInterfaceAttribute Key Pairs ModifyImageAttribute DescribeVolumes ResetNetworkInterfaceAttribute CreateKeyPair RegisterImage DescribeVolumeAttribute DeleteKeyPair ResetImageAttribute DescribeVolumeStatus General DescribeKeyPairs DetachVolume GetConsoleOutput ImportKeyPair Availability Zones and Regions EnableVolumeIO DescribeAvailabilityZones ImportVolume Instances Monitoring DescribeRegions ModifySnapshotAttribute DescribeInstanceAttribute MonitorInstances ModifyVolumeAttribute DescribeInstances UnmonitorInstances Customer Gateways (Amazon VPC) ResetSnapshotAttribute DescribeInstanceStatus CreateCustomerGateway ImportInstance Network ACLs (Amazon VPC) DeleteCustomerGateway Elastic IP Addresses ModifyInstanceAttribute CreateNetworkAcl DescribeCustomerGateways AllocateAddress RebootInstances CreateNetworkAclEntry AssociateAddress ReportInstanceStatus DeleteNetworkAcl DHCP Options (Amazon VPC) DescribeAddresses ResetInstanceAttribute DeleteNetworkAclEntry AssociateDhcpOptions DisassociateAddress RunInstances DescribeNetworkAcls CreateDhcpOptions ReleaseAddress StartInstances ReplaceNetworkAclAssociation DeleteDhcpOptions StopInstances ReplaceNetworkAclEntry DescribeDhcpOptions TerminateInstances Placement Groups CreatePlacementGroup DeletePlacementGroup DescribePlacementGroups Alberto Zuin http://www.azns.it alberto@azns.it
  • 39. Reserved Instances Spot Instances VM Import DescribeReservedInstances CancelSpotInstanceRequests CancelConversionTask DescribeReservedInstancesOfferings CreateSpotDatafeedSubscription DescribeConversionTasks PurchaseReservedInstancesOffering DeleteSpotDatafeedSubscription ImportInstance DescribeSpotDatafeedSubscription ImportVolume Route Tables (Amazon VPC) DescribeSpotInstanceRequests AssociateRouteTable DescribeSpotPriceHistory VPCs (Amazon VPC) CreateRoute RequestSpotInstances CreateVpc CreateRouteTable DeleteVpc DeleteRoute Subnets (Amazon VPC) DescribeVpcs DeleteRouteTable CreateSubnet DescribeRouteTables DeleteSubnet VPN Connections (Amazon VPC) DisassociateRouteTable DescribeSubnets CreateVpnConnection ReplaceRoute DeleteVpnConnection ReplaceRouteTableAssociation Tags DescribeVpnConnections CreateTags Security Groups DeleteTags Virtual Private Gateways (Amazon VPC) AuthorizeSecurityGroupEgress (Amazon VPC security groups only) DescribeTags AttachVpnGateway AuthorizeSecurityGroupIngress CreateVpnGateway CreateSecurityGroup DeleteVpnGateway DeleteSecurityGroup DescribeVpnGateways DescribeSecurityGroups DetachVpnGateway RevokeSecurityGroupEgress (Amazon VPC security groups only) RevokeSecurityGroupIngress Windows BundleInstance CancelBundleTask DescribeBundleTasks GetPasswordData Alberto Zuin http://www.azns.it alberto@azns.it
  • 40. PaaS: Platform as a Service Alberto Zuin http://www.azns.it alberto@azns.it
  • 41. Il web server/load balancer Alberto Zuin http://www.azns.it alberto@azns.it
  • 42. L'application server Alberto Zuin http://www.azns.it alberto@azns.it
  • 43. Il data storage Alberto Zuin http://www.azns.it alberto@azns.it
  • 44. Altri componenti Alberto Zuin http://www.azns.it alberto@azns.it
  • 45. E il database relazionale... ? (…ma serve?) Alberto Zuin http://www.azns.it alberto@azns.it
  • 46. Servizi PaaS acquistabili e OpenSource Alberto Zuin http://www.azns.it alberto@azns.it
  • 47. Linuguaggi: .net (leader), PHP, Java, node.js Database Relazionale Azure SQL Storage a BLOB API per gestire la comunicazione tra i processi Alberto Zuin http://www.azns.it alberto@azns.it
  • 48. Engine Yard Linguaggi: PHP (leader), Ruby, node.js Database Relazionali: MySQL, PostgreSQL Database Documentali: MongoDB, Redis Controllo della cache via memcached e Redis Controllo dei processi via delayed_job e resque Alberto Zuin http://www.azns.it alberto@azns.it
  • 49. Linguaggi: Ruby (leader), Node.js, Clojure,  Java, Python, e Scala (leader) Database Relazionali: PostgreSQL Gemma Ruby per il controllo totale della  piattaforma Alberto Zuin http://www.azns.it alberto@azns.it
  • 50. Linguaggi: Java, Python (leader) e Go! Database Relazionali: MySQL Database Documentali: Google Datastore API dedicate per la gestione dei processi Alberto Zuin http://www.azns.it alberto@azns.it

Notas del editor

  1. Un cloud è un insieme di risorse hardware (server, storage, networking) ridondata e scalabile, sul quale è possibile realizzare servizi a loro volta ridondati e scalabili attraverso del software adatto allo scopo.
  2. Un cloud è un insieme di risorse hardware (server, storage, networking) ridondata e scalabile, sul quale è possibile realizzare servizi a loro volta ridondati e scalabili attraverso del software adatto allo scopo.
  3. Un cloud è un insieme di risorse hardware (server, storage, networking) ridondata e scalabile, sul quale è possibile realizzare servizi a loro volta ridondati e scalabili attraverso del software adatto allo scopo.
  4. Un cloud è un insieme di risorse hardware (server, storage, networking) ridondata e scalabile, sul quale è possibile realizzare servizi a loro volta ridondati e scalabili attraverso del software adatto allo scopo.
  5. Un cloud è un insieme di risorse hardware (server, storage, networking) ridondata e scalabile, sul quale è possibile realizzare servizi a loro volta ridondati e scalabili attraverso del software adatto allo scopo. Queste risorse hardware sono ospitate remotamente e quindi saranno sfruttabli attraverso Internet In un cloud queste risorse sono allocabili e rilasciabili rapidamente e senza l'intervento del gestore del cloud Cos'è un cloud?
  6. Quando usare il cloud: Quando si vogliono abbattere i costi per l'infrastruttura interna Quando si ha la necessità di scalare in base alle necessità Ottimo per le start-up non infrastrutturate Quando usare il cloud?
  7. Quando non usare il cloud: Quando si sa già che la quantità di risorse necessarie sarà così elevata che il cloud potrebbe risultare antieconomico Quando si ha la necessità del controllo diretto delle risorse Hardware Quando si ha la necessità di usare software non studiato espressamente per lavorare su più server contemporaneamente Quando si ha la necessità di controllare direttamente il networking (es. BGP, Anycast, ecc.) Quando non usare il cloud?
  8. La scalabilità di un sistema può essere verticale (aumentare le risorse del server – es. Aumentare la RAM, aggiungere CPU, ecc.) oppure orizzontale (più server che lavorano assieme). In questo seminario, quando parleremo di scalabilità, intendiamo esclusivamente l'orizzontale, sebbene anche la verticale sia applicabile al cloud. Scalabilità nel cloud:
  9. La scalabilità di un sistema può essere verticale (aumentare le risorse del server – es. Aumentare la RAM, aggiungere CPU, ecc.) oppure orizzontale (più server che lavorano assieme). In questo seminario, quando parleremo di scalabilità, intendiamo esclusivamente l'orizzontale, sebbene anche la verticale sia applicabile al cloud. Scalabilità nel cloud:
  10. La scalabilità di un sistema può essere verticale (aumentare le risorse del server – es. Aumentare la RAM, aggiungere CPU, ecc.) oppure orizzontale (più server che lavorano assieme). In questo seminario, quando parleremo di scalabilità, intendiamo esclusivamente l'orizzontale, sebbene anche la verticale sia applicabile al cloud. Scalabilità nel cloud:
  11. La Multi-Tenancy è la capacità di un software di assumere differenti aspetti per diversi clienti. Quindi non più un software e un sistema dedicato ad ogni cliente, ma un unico software in grado di gestire al suo interno più clienti simili Multi-Tenancy
  12. Da quali elementi è composto?
  13. Networking: connessione verso Internet ad elevate prestazioni di banda, ridondata (più connessioni blianciate e ridondate attraverso il protocollo di routing BGP). In alcuni casi, è possibile avere ridondanza multidatacenter attraverso Anycast (indirizzi IP “annunciati” in diversi datacenter) Networking
  14. Capacità computazionale: più server dotati di quantità importanti di CPU e RAM con un Hypervisor (VMWare, XEN o KVM) in grado di gestire istanze virtualizzate Capacità computazionale
  15. Storage: un sistema di storage scalabile ove risiedono le immagini delle VM istanziate sull'Hypervisor e/o i dati gestiti dalle VM. E' possibile trovare storage di tre tipi: SAN: poco scalabili ma veloci → costi elevati per l'utente Cluster di “commodity computer”: molto scalabili ma più lenti soprattutto in scrittura → costi limitati per l'utente Storage dedicati per specifiche applicazioni (es. Amazon RDS – Relational Database Server)e Storage
  16. Sistema di controllo del cloud, con API per l'interfacciamento verso l'esterno Cloud controller
  17. Differenza tra IaaS, PaaS e SaaS
  18. Differenza tra IaaS, PaaS e SaaS
  19. IaaS (Infrastructure as a Service): Servizio composto dalle mere risorse Hardware (CPU, RAM, spazio su disco, connettività). Business model “a consumo”: si fissa una quota massima di utilizzo ma si paga solo ciò che si consuma realmente. Ci sono delle API per connettersi al servizio e “scalare” in caso di necessità. Le API permettono di aprire/chiudere istanze; la logica di funzionamento dell'applicazione quando si usano più istanze e il software in grado di comandare l'apertura/chiusura di istanze è compito del PaaS e/o del SaaS. IaaS: Infrastructure as a Service
  20. PaaS: Platform as a Service. La piattaforma di pacchetti software che si integrano con l'hardware (IaaS) su cui realizzare un servizio SaaS. E' sostanzialmente il livello intermedio tra IaaS e SaaS e comprende il web server/load balancer, i linguaggi/framework per lo sviluppo del servizio SaaS, il datastore (database/filesystem), sistemi di cache, sistemi di gestione delle code. Il PaaS si integra con il IaaS sottostante per far scalare automaticamente il sistema in caso di necessità. PaaS: Platform as a Service
  21. SaaS (Software as a Service): è il livello più elevato della catena. Il SaaS è il servizio (al 99% una web application) che utilizza l'utente finale e che si integra con il PaaS sottostante. Sono SaaS, ad esempio: - I social network (Twitter, Facebook, Linkedin...) - I servizi di prenotazione online (Expedia, Trivago...) - I servizi pagamento (Google Checkout, Paypal...) - ...... SaaS: Software as a Service
  22. L'infrastruttura virtualizzata è sostanzialmente un Hypervisor (VMWare, Xen, KVM...) su cui creare Virtual Machine. Il cloud è una infrastruttura virtualizzata con molto altro: l'Hypervisor è un componente a cui si associano uno o più sistemi di storage e un “controller” che espone delle API per la gestione del cloud stesso. Differenza tra struttura virtualizzata e Cloud Computing
  23. La differenza è molto sottile e difficilimente percettibile. Nel grid computing abbiamo X server (con X un numero di server prefissato) che lavorano parallelamente per eseguire un applicativo. I server sono per lo più server fisici in quanto il processo deve poter sfruttare appieno le potenzialità dell'hardware. Il cloud computing è un grid computing in cui si ha un numero X di server virtualizzati che lavorano parallelamente per eseguire un applicativo. Il numero X di server viene gestito per lo più dinamicamente (dipende da come sono realizzati PaaS/SaaS) in base al carico di lavoro effettivo dell'applicativo, istanziando e disistanziando Virtual Machine attraverso le API del IaaS. Differenza tra Cloud Computing e Grid Computing
  24. Differenza tra private e public cloud. L'hybrid cloud: un private cloud che “scala” su un public cloud Private Cloud vs Public Cloud
  25. Come già detto: IaaS (Infrastructure as a Service): Servizio composto dalle mere risorse Hardware (CPU, RAM, spazio su disco, connettività). Business model “a consumo”: si fissa una quota massima di utilizzo ma si paga solo ciò che si consuma realmente. Ci sono delle API per connettersi al servizio e “scalare” in caso di necessità. Le API permettono di aprire/chiudere istanze; la logica di funzionamento dell'applicazione quando si usano più istanze e l'apertura/chiusura di istanze è demandata al PaaS e al SaaS. IaaS
  26. IaaS: ridondanza e scalabilità dello storage
  27. Storage locale: storage contenuto all'interno dell'Hypervisor e quindi non replicabile. Ha elevata velocità ma nessuna possibilità di essere scalato/ridondato. Viene normalmente usato in combinazione con dischi ad elevata velocità (SSD) ad esempio per la memoria Swap (memoria virtuale) delle VM. Storage Locale
  28. Storage di rete SAN: sono dispositivi ad alta velocità che normalmente utilizzano protocolli di I/O standard (ATA/SCSI) incapsulati in una connessione Ethernet/Fibre Channel (iSCSI o AoE). La velocità è elevata, la scalabilità è ridotta (ogni SAN può gestire un numero massimo di X dischi e può essere “impilata” con un numero limitato di altre SAN) e il costo è elevato. Vengono utilizzate nelle situazioni in cui si ha la necessità di avere persistenza dei dati ed elevate prestazioni (ad es. Server SQL) ma il costo elevato ne limita l'utilizzo. La scalabilità/tolleranza ai guasti è gestita direttamente dalla SAN con protocolli Hardware (Raid 3/5/6/10...) ciascuno con maggiori caratteristiche di tolleranza/velocità/capienza SAN: Storage Area Network
  29. Storage di rete cluster: in questo caso ci sono X “commodity computer” (server semplici dal costo ridotto) collegati tra loro che sommano la loro capacità di storage. Google utilizza delle “lame” con CPU celeron monoprocessore e 1 disco SATA per lo storage dell'intero motore di ricerca. Esistono numerosi filesystem cluster: GlusterFS, MooseFS, Ceph, Hadoop™ Distributed File System... Cluster Storage
  30. La teoria di funzionamento: ogni file viene diviso in “chunk”, cioè piccoli file di dimensione prestabilita; ciascun chunk è replicato in più server (il numero di copie è settabile); più repliche ho, maggiore sarà la velocità di lettura (questi filesystem permettono di parallelizzare le letture), minore sarà lo storage a disposizione. La scalabilità è infinita (collaudati per gestire numerosi petabytes di dati), la tolleranza ai guasti è settabile dal numero di repliche, la velocità di lettura è elevata, quella di scrittura no; utilizzano quasi tutti il protocollo FUSE (filesystem in userspace). Vengono utilizzati per dati che cambiano con poca frequenza (ad es. i file statici dei siti web e i file immagine delle VM) Su storage cluster si basano semplici SaaS come iCloud e Dropbox. Cluster Storage
  31. La teoria di funzionamento: ogni file viene diviso in “chunk”, cioè piccoli file di dimensione prestabilita; ciascun chunk è replicato in più server (il numero di copie è settabile); più repliche ho, maggiore sarà la velocità di lettura (questi filesystem permettono di parallelizzare le letture), minore sarà lo storage a disposizione. La scalabilità è infinita (collaudati per gestire numerosi petabytes di dati), la tolleranza ai guasti è settabile dal numero di repliche, la velocità di lettura è elevata, quella di scrittura no; utilizzano quasi tutti il protocollo FUSE (filesystem in userspace). Vengono utilizzati per dati che cambiano con poca frequenza (ad es. i file statici dei siti web e i file immagine delle VM) Su storage cluster si basano semplici SaaS come iCloud e Dropbox. Cluster Storage
  32. La scalabilità e ridondanza degli HV non è data dall'HV ma dal Cloud Controller che si occupa di gestire le risorse messe a disposizione dagli HV e gestire eventuali guasti di HyperVisor non funzionanti migrando le VM su altri server (oltre a gestire lo storage). La scalabilità degli HV è intrinseca perchè basta aggiungere nuovi server in caso di necessità. IaaS: ridondanza e scalabilità degli Hypervisor
  33. La scalabilità e ridondanza degli HV non è data dall'HV ma dal Cloud Controller che si occupa di gestire le risorse messe a disposizione dagli HV e gestire eventuali guasti di HyperVisor non funzionanti migrando le VM su altri server (oltre a gestire lo storage). La scalabilità degli HV è intrinseca perchè basta aggiungere nuovi server in caso di necessità. IaaS: ridondanza e scalabilità degli Hypervisor
  34. La scalabilità e ridondanza degli HV non è data dall'HV ma dal Cloud Controller che si occupa di gestire le risorse messe a disposizione dagli HV e gestire eventuali guasti di HyperVisor non funzionanti migrando le VM su altri server (oltre a gestire lo storage). La scalabilità degli HV è intrinseca perchè basta aggiungere nuovi server in caso di necessità. IaaS: ridondanza e scalabilità degli Hypervisor
  35. La scalabilità e ridondanza degli HV non è data dall'HV ma dal Cloud Controller che si occupa di gestire le risorse messe a disposizione dagli HV e gestire eventuali guasti di HyperVisor non funzionanti migrando le VM su altri server (oltre a gestire lo storage). La scalabilità degli HV è intrinseca perchè basta aggiungere nuovi server in caso di necessità. IaaS: ridondanza e scalabilità degli Hypervisor
  36. Alcuni Cloud Controller OpenSource - Eucalyptus: progetto di NASA (ora abbandonato) diventato OpenSource e utilizzato nelle prime versioni di Ubuntu Cloud. E' limitato a 256 HyperVisor - OpenStack: progetto nato dalla Joint Venture di NASA (dopo aver abbandonato Eucalyptus) con RackSpace (il secondo fornitore di IaaS dopo Amazon) che ha deciso di rendere OpenSource il suo sistema. E' utilizzato nell'ultima versione di Ubuntu Cloud - OpenNebula: progetto alternativo del CERN di Ginevra, concettualmente molto semplice ed efficace, ma allo stesso tempo molto potente grazie alle numerose API che permettono di comandarlo in ogni sua parte. Quale Cloud Controller?
  37. Solo Amazon? No: tutti i maggiori cloud provider sono interfacciabili attraverso queste API, è lo standard “de facto”. I Cloud Controller OpenSource citati sono compatibili con queste API. Realizzando un sistema PaaS/SaaS che sfrutta queste API è possibile partire con una Web Application su un Public Cloud e migrarla progressivamente verso Hybrid/Private cloud quando risulterà conveniente. Funzianamento delle API: - Direttamente tramite chiamate GET al web server - Direttamente tramite chiamate SOAP al web server In entrambi i casi si ottengono risposte in XML dal web server Utilizzo di librerie specifiche per i linguaggi: Java Python Ruby PHP .net Le API di Amazon
  38. E' evidente che il servizio IaaS di Amazon “sconfina” in alcuni casi con un servizio PaaS (ad esempio le API per il MapReduce) Qualsiasi aspetto del cloud di Amazon è comandabile tramite API I cloud “compatibili” non incorporano tutte le funzionalità del cloud di Amazon, ergo non tutte le API sono utilizzabili ovunque E' evidente che le possibilità offerte da un cloud sono superiori rispetto ad un semplice sistema di virtualizzazione Le API di Amazon
  39. E' evidente che il servizio IaaS di Amazon “sconfina” in alcuni casi con un servizio PaaS (ad esempio le API per il MapReduce) Qualsiasi aspetto del cloud di Amazon è comandabile tramite API I cloud “compatibili” non incorporano tutte le funzionalità del cloud di Amazon, ergo non tutte le API sono utilizzabili ovunque E' evidente che le possibilità offerte da un cloud sono superiori rispetto ad un semplice sistema di virtualizzazione Le API di Amazon
  40. Come già detto: PaaS: Platform as a Service. La piattaforma di pacchetti software che si integrano con l'hardware (IaaS) su cui realizzare un servizio SaaS. E' sostanzialmnente il livello intermedio tra IaaS e PaaS e comprende il web server/load balancer, i linguaggi/framework per lo sviluppo del servizio SaaS, il datastore (database/filesystem), i sistemi di cache, i sistemi di gestione delle code. Il PaaS si integra con il IaaS sottostante per far scalare automaticamente il sistema in caso di necessità. PaaS: Platform as a Service
  41. Il web server/load balancer I servizi PaaS nella maggior parte dei casi servono per ospitare delle Web Application. Poco importa se l'accesso alla web application avviene tramite un comune Browser (Firefox, Internet Explorer, Chrome, Opera...) o tramite un software proprietario che si interfaccia all'applicazione tramite API. Il componente essenziale per una qualsiasi Web Application è la presenza nel PaaS di un web server. Il load balancer normalmente si occupa solo di “girare” le chiamate verso gli application server che contengono il web server. In alcuni casi il load balancer può essere esso stesso un web server ed essere configurato per servire contenuti statici Il web server/load balancer
  42. L'application server Per application server si intende il server che esegue il lavoro computazionale. Ad esempio è il server che esegue il codice PHP/Ruby/Python... della nostra web application. L'application server è il componente più soggetto a stress, pertanto quello che “scalerà” più frequentemente. Le chiamate all'application server, normalmente vengono “proxate” dal web server/load balancer soprastante. L'application server
  43. Il data storage E' il posto dove risiedono tutti i dati della web application che deve essere accessibile da tutti i server. E' possibile avere una o più istanze di VM all'interno del proprio cloud che fungono da datastore, oppure usare un servizio del Cloud Provider (ad es. Amazon EBS), oppure usare server fisici in cluster. Nei casi più semplici è un filesystem di rete condiviso (ad es. un server NFS). Nei casi più complessi o dove si hanno necessità di gestire grandi quantità di dati (ad es. Google) si tratta di cluster di storage server dedicati. Le ultime tendenze portano ad usare i database documentali, i cosidetti “NoSQL” per trattare tutti i dati della web application. Il data storage
  44. Altri componenti importanti: Un gestore di cache condivisa (ad ed. Memcached) Un gestore di code su protocollo XMPP (si, lo stesso della chat) Un gestore dei processi con MapReduce per far scalare la nostra applicazione all'occorrenza (es. Apache Hadoop MapReduce) Altri componenti
  45. E il database relazionale dov'è? 1) si creano delle istanze di VM con il database (ad es. Più server MySQL in replica): sistema non scalabile automaticamente, attenzione alla velocità dello storage del servizio IaaS 2) si acquistano servizi di database relazionale dal fornitore (ad es. Amazon RDBS) Ma serve realmente? I database documentali offrono la possibilità di eseguire query non relazionali (no Union e Join) a velocità superiore rispetto ad un comune database relazionale in quanto normalmente il database viene mantenuto integralmente in copia sulla RAM. Si dovranno delegare le istruzioni di relazione al codice dell'applicazione e quindi il carico di lavoro si sposta sugli Application Server che scalano più facilmente. E il database relazionale...
  46. La scelta del PaaS corretto dipende dalle nostre esigenze nello sviluppo del SaaS.
  47. Microsoft Azure: Linuguaggi supportati: .net (leader), PHP, Java, node.js Database Relazionale Azure SQL Storage a BLOB API per gestire la comunicazione tra i processi
  48. Engine Yard (ospitato su Amazon EC2) Linuguaggi supportati: PHP (leader), Ruby, node.js Database Relazionali: MySQL, PostgreSQL Database Documentali: MongoDB, Redis Controllo della cache via memcached e Redis Controllo dei processi via delayed_job e resque
  49. Heroku (ospitato su Amazon EC2) Linuguaggi supportati: Ruby (leader), Node.js, Clojure, Java, Python, e Scala (leader) Database Relazionali: PostgreSQL Gemma Ruby per il controllo totale della piattaforma
  50. Google App Engine Linuguaggi supportati: Java, Python (leader) e Go! Database Relazionali: MySQL Database Documentali: Google Datastore API dedicate per la gestione dei processi
  51. Appscale – Clone Opensource di Google App Engine Linuguaggi supportati: Java, Python (leader) e Go! Database Relazionali: MySQL Cluster Database Documentali: Cassandra, Hbase, Hypertable, MongoDB, MemcachedDB (come memcached ma con persistenza dati), Voldemort, Redis API dedicate per la gestione dei processi API “mirror” per l'interfacciamento alle API di Amazon E' installabile direttamente su Amazon EC2 o su qualsiasi Private Cloud compatibile (immagine per Eucalyptus scaricabile direttamente)