october 2009 - jboss cloud
DESCRIPTION
JBug Rome October 2009 MeetingJBoss CloudSanne Grinovero - Sourcesense -TRANSCRIPT
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