October 2009 - JBoss Cloud - Presentation 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
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
0 comments
Post a comment