Innanzitutto, grazie per essere venuti
Mi presento
    Mi chiamo Sanne Grinovero, lavoro presso
    Sourcesense e mi occupo di:
●   Hibernate
●   Scalabilità & architetture per cloud
        –   JBoss Cloud
        –   Infinispan
●   Motori di ricerca full-text
        –   Lucene
        –   Hibernate Search
Agenda
●   Cloud
       –   Cosa intendo per cloud
       –   Vantaggi: perchè usarle
●   Affrontare il cambiamento
       –   Problemi: nuovi ed esistenti
       –   Nuove soluzioni
               ●   mod_cluster
               ●   Piattaforme pronte al consumo
               ●   Infinispan
       –   Conclusioni
Cloud?
SaaS
●   Software as a Service
●   Si tratta di quello su cui ci vorremmo
    concentrare in quanto sviluppatori di servizi
●   Network-provided applications
    –   Twitter, Mint, del.icio.us, FarmTown, GitHub,
        Flickr, Salesforce.com, Gmail
●   Software composto da codice nostro e
    framework di terzi (Seam, Ruby on Rails,
    Struts, Portlets)
PaaS
●   Platform as a Service
●   Si tratta della piattaforma dove inserire il
    nostro servizio
●   Spesso integrato con altri framework, API
●   Reso disponibile tramite network
●   Scalabile
        –   Portale, Facebook, Google App Engine,
             EngineYard, Heroku, Force.com
IaaS
●   Infrastructure as a Service
●   Infrastrutture:
        –   Gli scatoloni, i chip, dischi, cavi...
        –   Le persone che li fanno funzionare
        –   Quelli che li monitorano costantemente
        –   70% dei costi del servizio medio
●   Tipicamente la sfruttiamo tramite network
●   Può scalare - più o meno rapidamente.
Infrastrutture
●   Un datacenter interno
●   Amazon Web Services (EC2, S3)
●   Rackspace Mosso
●   Contegix Cloud
●   Joyent
●   On-demand, self-serve server
●   Cloud “in casa” : Eucalyptus, ...
Cloud? Molto più di IaaS




                           Cloud
Agenda
●   Cloud
       –   Cosa intendo per cloud
       –   Vantaggi: perchè usarle
●   Affrontare il cambiamento
       –   Problemi: nuovi ed esistenti
       –   Nuove soluzioni
               ●   mod_cluster
               ●   Piattaforme pronte al consumo
               ●   Infinispan
       –   Conclusioni
Cloud è molto più di
             virtualizzazione
●   “Infrastructure as a service” fornisce solo
    server e networking.
●   Cloud supporta funzioni aggiuntive per
    supportare processi di sviluppo e gestione
    avanzati.
●   Usare cloud non significa solo semplificare
    l'acquisto di hardware.
Perchè sono interessanti
●   Costo molto competitivo
●   Si eliminano i problemi legati all'infrastruttura
●   Semplifica lo sviluppo
●   Accelera il Time-to-market
●   Paghi solo quello che consumi
●   Scale on-demand
Scale on-demand
Librerie di piattaforme
●   Per scalare facilmente serve un parco di
    macchine omogenee.
●   Installazione e configurazione manuale non
    permettono reazioni tempestive.
●   Automatizzare il processo di deploy
       –   Diventa testabile e riproducibile
       –   Rappresenta una documentazione affidabile
       –   Ripetibile a basso costo: rilasci più frequenti
Semplifica il processo di deploy
Agenda
●   Cloud
       –   Cosa intendo per cloud
       –   Vantaggi: perchè usarle
●   Affrontare il cambiamento
       –   Problemi: nuovi ed esistenti
       –   Nuove soluzioni
               ●   mod_cluster
               ●   Piattaforme pronte al consumo
               ●   Infinispan
       –   Conclusioni
Problemi indipendenti dalla cloud
●   La maggior parte dei disservizi è causato
    dall'installazione di aggiornamenti, non da
    crash di sistema
●   La configurazione dei servizi prevede
    tipicamente dei file di proprietà statiche
●   Progettare l'architettura del servizio senza
    “single point of failure”
        –   Database, Sessioni
Nuovi problemi
●   Multicast spesso non utilizzabile
        –   Autodiscovery dei servizi va ripensata
●   Le macchine dovrebbero essere “stateless”
        –   Non salvare niente su una singola macchina
        –   Porta di fatto a vantaggi architetturali
●   Indirizzi IP non assegnabili
Tipica configurazione mod_jk
File di configurazione httpd
Agenda
●   Cloud
       –   Cosa intendo per cloud
       –   Vantaggi: perchè usarle
●   Affrontare il cambiamento
       –   Problemi: nuovi ed esistenti
       –   Nuove soluzioni
               ●   mod_cluster
               ●   Piattaforme pronte al consumo
               ●   Infinispan
       –   Conclusioni
JBoss Cloud
●   Lead Bob McWirther
        –   JBoss Research & Prototyping team
        –   (Co-)Fondatore Codehouse, Drools, Grails,
              Jaxen XPath, TorqueBox
●   Test e prototipi sulla cloud
●   mod_cluster
●   Strumenti di amministrazione
●   Macchine preconfezionate
mod_cluster
●   Gli application server si presentano al load
    balancer
        –   Httpd viene aggiornato sulle modifiche alla
             topologia della rete
        –   Le applicazioni dichiarano quali URL
             gestiscono ad Httpd
        –   I server sono in grado di trasmettere indicatori
               di sovraccarico al load balancer
Archittura mod_cluster
Domini multipli, N servizi
“Rolling upgrades”
●   Aggiorna un dominio alla volta
●   Disattiva un dominio:
        –   Non accetta sessioni nuove, gestisce quelle
             esistenti
        –   Si spegne alla chiusura dell'ultima sessione
        –   Httpd intanto crea sessioni nuove nel nuovo
             dominio
mod_cluster
●   Non è più necessario
        –   Conoscere gli indirizzi IP a priori
        –   Configurare ogni application server
        –   Modificare alcun file di configurazione
●   Nuovi rilasci senza interrompere mai il servizio
Appliance JBoss Cloud
●   Una collezione di macchine preconfezionate
    su EC2
●   jboss-appliance-support: (script di build Rake):
        –   Amazon EC2
        –   Chiavette USB, CD avviabili
        –   Xen, KVM
        –   VMWare
Basato su RPM
●   Personalizzare le appliance selezionando gli
    RPM necessari
●   Versioni RPM di
       –   mod_cluster
       –   JBoss AS
       –   JGroups GossipRouter
Definizioni di appliance
Appliance preconfezionate
●   Front-end
       –   Apache Httpd, mod_cluster
●   Management
       –   GossipRouter
●   Back-end
       –   JBoss AS
       –   TorqueBox
Pronte all'uso:
●   Trova le AMI nel catalogo pubblico
●   Accendi una management appliance
●   Accendi un (n) front-end
●   Accendi un database
●   Accendi n back-end
Console web EC2
Deploy del servizio



           scp my-app.war 
be1:/opt/jboss-as/server/cluster/farm/
Auto-Cluster e farming
●   All'accensione di un nuovo nodo, si aggrega
    agli altri tramite il GossipRouter
●   Quando un nodo si presenta, riceve una copia
    delle applicazioni da servire
●   Quando è pronto, presenta ai load balancer la
    lista di URL in grado di servire
●   Nessuna configurazione: Accendi e vai
Scale-up
●   Accendi ulteriori nodi
●   L'applicazione e lo stato attuale verrà
    trasmesso ai nuovi nodi
●   Il load balancer bilancia automaticamente
    anche sui nuovi nodi
Scale-down
●   Termina un nodo
●   Il load balancer smette di inviare richieste ai
    nodi terminati
Libreria di applicazioni
●   Confeziona la definizione di macchine
    includendo i servizi pronti all'uso
●   Accendile/spegnile a volontà:
       –   Ambienti di staging immediati
       –   Auto-scaling per reazioni automatizzate
       –   Architettura senza point-of-failure
       –   Semplice da gestire
Infinispan
●   I Database sono ancora:
        –   Un collo di bottiglia
        –   Un single-point-of-failure
●   Infinispan è un key-value store distribuito sul
    cluster
        –   Basato su JGroups: sfrutta la topologia
             dinamica del GossipRouter di JBoss Cloud
Grazie! Domande?
●   Riferimenti web:
        –   jboss.org
        –   oddthesis.org
        –   www.jboss.org/infinispan
●   Twitter:
        –   jbosscloud
        –   infinispan

October 2009 - JBoss Cloud

  • 2.
  • 3.
    Mi presento Mi chiamo Sanne Grinovero, lavoro presso Sourcesense e mi occupo di: ● Hibernate ● Scalabilità & architetture per cloud – JBoss Cloud – Infinispan ● Motori di ricerca full-text – Lucene – Hibernate Search
  • 4.
    Agenda ● Cloud – Cosa intendo per cloud – Vantaggi: perchè usarle ● Affrontare il cambiamento – Problemi: nuovi ed esistenti – Nuove soluzioni ● mod_cluster ● Piattaforme pronte al consumo ● Infinispan – Conclusioni
  • 5.
  • 6.
    SaaS ● Software as a Service ● Si tratta di quello su cui ci vorremmo concentrare in quanto sviluppatori di servizi ● Network-provided applications – Twitter, Mint, del.icio.us, FarmTown, GitHub, Flickr, Salesforce.com, Gmail ● Software composto da codice nostro e framework di terzi (Seam, Ruby on Rails, Struts, Portlets)
  • 7.
    PaaS ● Platform as a Service ● Si tratta della piattaforma dove inserire il nostro servizio ● Spesso integrato con altri framework, API ● Reso disponibile tramite network ● Scalabile – Portale, Facebook, Google App Engine, EngineYard, Heroku, Force.com
  • 8.
    IaaS ● Infrastructure as a Service ● Infrastrutture: – Gli scatoloni, i chip, dischi, cavi... – Le persone che li fanno funzionare – Quelli che li monitorano costantemente – 70% dei costi del servizio medio ● Tipicamente la sfruttiamo tramite network ● Può scalare - più o meno rapidamente.
  • 9.
    Infrastrutture ● Un datacenter interno ● Amazon Web Services (EC2, S3) ● Rackspace Mosso ● Contegix Cloud ● Joyent ● On-demand, self-serve server ● Cloud “in casa” : Eucalyptus, ...
  • 10.
    Cloud? Molto piùdi IaaS Cloud
  • 11.
    Agenda ● Cloud – Cosa intendo per cloud – Vantaggi: perchè usarle ● Affrontare il cambiamento – Problemi: nuovi ed esistenti – Nuove soluzioni ● mod_cluster ● Piattaforme pronte al consumo ● Infinispan – Conclusioni
  • 12.
    Cloud è moltopiù di virtualizzazione ● “Infrastructure as a service” fornisce solo server e networking. ● Cloud supporta funzioni aggiuntive per supportare processi di sviluppo e gestione avanzati. ● Usare cloud non significa solo semplificare l'acquisto di hardware.
  • 13.
    Perchè sono interessanti ● Costo molto competitivo ● Si eliminano i problemi legati all'infrastruttura ● Semplifica lo sviluppo ● Accelera il Time-to-market ● Paghi solo quello che consumi ● Scale on-demand
  • 14.
  • 15.
    Librerie di piattaforme ● Per scalare facilmente serve un parco di macchine omogenee. ● Installazione e configurazione manuale non permettono reazioni tempestive. ● Automatizzare il processo di deploy – Diventa testabile e riproducibile – Rappresenta una documentazione affidabile – Ripetibile a basso costo: rilasci più frequenti
  • 16.
  • 17.
    Agenda ● Cloud – Cosa intendo per cloud – Vantaggi: perchè usarle ● Affrontare il cambiamento – Problemi: nuovi ed esistenti – Nuove soluzioni ● mod_cluster ● Piattaforme pronte al consumo ● Infinispan – Conclusioni
  • 18.
    Problemi indipendenti dallacloud ● La maggior parte dei disservizi è causato dall'installazione di aggiornamenti, non da crash di sistema ● La configurazione dei servizi prevede tipicamente dei file di proprietà statiche ● Progettare l'architettura del servizio senza “single point of failure” – Database, Sessioni
  • 19.
    Nuovi problemi ● Multicast spesso non utilizzabile – Autodiscovery dei servizi va ripensata ● Le macchine dovrebbero essere “stateless” – Non salvare niente su una singola macchina – Porta di fatto a vantaggi architetturali ● Indirizzi IP non assegnabili
  • 20.
  • 21.
  • 22.
    Agenda ● Cloud – Cosa intendo per cloud – Vantaggi: perchè usarle ● Affrontare il cambiamento – Problemi: nuovi ed esistenti – Nuove soluzioni ● mod_cluster ● Piattaforme pronte al consumo ● Infinispan – Conclusioni
  • 23.
    JBoss Cloud ● Lead Bob McWirther – JBoss Research & Prototyping team – (Co-)Fondatore Codehouse, Drools, Grails, Jaxen XPath, TorqueBox ● Test e prototipi sulla cloud ● mod_cluster ● Strumenti di amministrazione ● Macchine preconfezionate
  • 24.
    mod_cluster ● Gli application server si presentano al load balancer – Httpd viene aggiornato sulle modifiche alla topologia della rete – Le applicazioni dichiarano quali URL gestiscono ad Httpd – I server sono in grado di trasmettere indicatori di sovraccarico al load balancer
  • 25.
  • 26.
  • 27.
    “Rolling upgrades” ● Aggiorna un dominio alla volta ● Disattiva un dominio: – Non accetta sessioni nuove, gestisce quelle esistenti – Si spegne alla chiusura dell'ultima sessione – Httpd intanto crea sessioni nuove nel nuovo dominio
  • 28.
    mod_cluster ● Non è più necessario – Conoscere gli indirizzi IP a priori – Configurare ogni application server – Modificare alcun file di configurazione ● Nuovi rilasci senza interrompere mai il servizio
  • 29.
    Appliance JBoss Cloud ● Una collezione di macchine preconfezionate su EC2 ● jboss-appliance-support: (script di build Rake): – Amazon EC2 – Chiavette USB, CD avviabili – Xen, KVM – VMWare
  • 30.
    Basato su RPM ● Personalizzare le appliance selezionando gli RPM necessari ● Versioni RPM di – mod_cluster – JBoss AS – JGroups GossipRouter
  • 31.
  • 32.
    Appliance preconfezionate ● Front-end – Apache Httpd, mod_cluster ● Management – GossipRouter ● Back-end – JBoss AS – TorqueBox
  • 33.
    Pronte all'uso: ● Trova le AMI nel catalogo pubblico ● Accendi una management appliance ● Accendi un (n) front-end ● Accendi un database ● Accendi n back-end
  • 34.
  • 35.
    Deploy del servizio scp my-app.war be1:/opt/jboss-as/server/cluster/farm/
  • 36.
    Auto-Cluster e farming ● All'accensione di un nuovo nodo, si aggrega agli altri tramite il GossipRouter ● Quando un nodo si presenta, riceve una copia delle applicazioni da servire ● Quando è pronto, presenta ai load balancer la lista di URL in grado di servire ● Nessuna configurazione: Accendi e vai
  • 37.
    Scale-up ● Accendi ulteriori nodi ● L'applicazione e lo stato attuale verrà trasmesso ai nuovi nodi ● Il load balancer bilancia automaticamente anche sui nuovi nodi
  • 38.
    Scale-down ● Termina un nodo ● Il load balancer smette di inviare richieste ai nodi terminati
  • 39.
    Libreria di applicazioni ● Confeziona la definizione di macchine includendo i servizi pronti all'uso ● Accendile/spegnile a volontà: – Ambienti di staging immediati – Auto-scaling per reazioni automatizzate – Architettura senza point-of-failure – Semplice da gestire
  • 40.
    Infinispan ● I Database sono ancora: – Un collo di bottiglia – Un single-point-of-failure ● Infinispan è un key-value store distribuito sul cluster – Basato su JGroups: sfrutta la topologia dinamica del GossipRouter di JBoss Cloud
  • 41.
    Grazie! Domande? ● Riferimenti web: – jboss.org – oddthesis.org – www.jboss.org/infinispan ● Twitter: – jbosscloud – infinispan