SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaGianluca Hotz
 
Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game DevelopersMarco Parenzan
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL ServerGianluca Hotz
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database LedgerGianluca Hotz
 
SQL Server Workload Profiling
SQL Server Workload ProfilingSQL Server Workload Profiling
SQL Server Workload ProfilingGianluca Hotz
 
SQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksSQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksGianluca Hotz
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query ProcessingGianluca Hotz
 
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraCome utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraGianluca Hotz
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017MongoDB
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSGianluca Hotz
 
Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?VMUG IT
 
Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentationUgo Landini
 
VMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro PiuttiVMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro PiuttiVMUG IT
 
Scala in pratica - Stefano Rocco (MoneyFarm)
Scala in pratica - Stefano Rocco (MoneyFarm)Scala in pratica - Stefano Rocco (MoneyFarm)
Scala in pratica - Stefano Rocco (MoneyFarm)Scala Italy
 
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...MongoDB
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Meet Magento Italy
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query ProcessingGianluca Hotz
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 

Mais procurados (20)

SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: Sicurezza
 
Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game Developers
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL Server
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database Ledger
 
SQL Server Workload Profiling
SQL Server Workload ProfilingSQL Server Workload Profiling
SQL Server Workload Profiling
 
SQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksSQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed Disks
 
SQL Server in AWS
SQL Server in AWSSQL Server in AWS
SQL Server in AWS
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query Processing
 
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraCome utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
 
Mysql diventa grande
Mysql diventa grandeMysql diventa grande
Mysql diventa grande
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWS
 
Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?
 
Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentation
 
VMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro PiuttiVMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro Piutti
 
Scala in pratica - Stefano Rocco (MoneyFarm)
Scala in pratica - Stefano Rocco (MoneyFarm)Scala in pratica - Stefano Rocco (MoneyFarm)
Scala in pratica - Stefano Rocco (MoneyFarm)
 
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query Processing
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 

Semelhante a JBoss Clouds - JBug Roma october 2009

Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMINaLUG
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
 
Virtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open SourceVirtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open SourceMarco Vanino
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
phpday 2006 - SEA case study
phpday 2006 - SEA case studyphpday 2006 - SEA case study
phpday 2006 - SEA case studyGaetano Giunta
 
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
Cloud Computing reale: le basi, il presente ed il futuro del Cloud ComputingCloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computingfestival ICT 2016
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsClaudio Mignanti
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsMikhail Zakharenko
 
Cloud for sap evento15.4
Cloud for sap evento15.4Cloud for sap evento15.4
Cloud for sap evento15.4Otello Costa
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSopencityplatform
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Meet Magento Italy
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS Imola Informatica
 
Caso reale di migrazione da Windows a sistemi Open Source in azienda
Caso reale di migrazione da Windows a sistemi Open Source in aziendaCaso reale di migrazione da Windows a sistemi Open Source in azienda
Caso reale di migrazione da Windows a sistemi Open Source in aziendaClaudio Cardinali
 
Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side JavascriptMatteo Napolitano
 

Semelhante a JBoss Clouds - JBug Roma october 2009 (20)

Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMI
 
Da 0 all'open per PA e PMI
Da 0 all'open per PA e PMIDa 0 all'open per PA e PMI
Da 0 all'open per PA e PMI
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
 
Virtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open SourceVirtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open Source
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
phpday 2006 - SEA case study
phpday 2006 - SEA case studyphpday 2006 - SEA case study
phpday 2006 - SEA case study
 
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
Cloud Computing reale: le basi, il presente ed il futuro del Cloud ComputingCloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
 
node.js everywhere
node.js everywherenode.js everywhere
node.js everywhere
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costs
 
Erlug
ErlugErlug
Erlug
 
Cloud for sap evento15.4
Cloud for sap evento15.4Cloud for sap evento15.4
Cloud for sap evento15.4
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
Infrastructure as Data
Infrastructure as DataInfrastructure as Data
Infrastructure as Data
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
Caso reale di migrazione da Windows a sistemi Open Source in azienda
Caso reale di migrazione da Windows a sistemi Open Source in aziendaCaso reale di migrazione da Windows a sistemi Open Source in azienda
Caso reale di migrazione da Windows a sistemi Open Source in azienda
 
Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side Javascript
 

JBoss Clouds - JBug Roma october 2009

  • 1.
  • 2. Innanzitutto, grazie per essere venuti
  • 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
  • 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 è 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.
  • 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
  • 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
  • 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 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
  • 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
  • 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
  • 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
  • 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
  • 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