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.
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
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
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