mag 282011
 

Una simpatica affermazione che si sente spesso dire nell’ambiente è che il cloud è come il sesso ai tempi del liceo: tutti ne parlano, pochi sanno cos’è, pochissimi lo sanno far bene ;-)

Vediamo intanto di chiarire cos’è un cloud: un cloud è una struttura hardware formata da più nodi di calcolo e di storage che lavorano in maniera sincronizzata per offrire dei servizi.

Un qualsiasi cloud, quindi, è formato da tre componenti: lo storage (che può essere una SAN, un NAS, o una struttura complessa formata da un filesystem zeroshare), i nodi di calcolo (quindi un qualsiasi sistema in grado di gestire la virtualizzazione di processi, normalmente per comodità un Hypervisor com VMware, XEN o KVM che virtualizza l’intera struttura hardware) e un controller.

Come già detto in questo articolo, se il numero di processi istanziabili è minore del numero di nodi di calcolo si parla si grid computer (o supercomputer), nel caso in cui i processi istanziabili siano maggiori del numero di nodi hardware, si parla di cloud computer vero e proprio, anche se spesso i termini clud e grid vengono assimilati.

I servizi che possono essere offerti attraverso una struttura cloud sono di tre tipi IaaS, PaaS e SaaS e normalmente sono tutti offerti da chi possiede una struttura cloud. Spesso sentiamo nominare questi tre acronimi, ma di cosa si tratta in realtà? E’ su questa delucidazione che mi voglio soffermare in questo articolo.

IaaS è l’acronimo di Infrastructure as a Service ed è il servizio più vicino a ciò che forma il cloud. Quando acquisto un servizio IaaS, ho a disposizione una virtualizzazione dell’hardware di un computer tradizionale: quindi ho della CPU, della RAM, dello Storage e delle schede di rete con connettività. Attraverso questo sistema ho a disposizione tutte le potenzialità e la flessibilità di un computer fisico, senza avere la preoccupazione di dover pensare all’hardware o alla continuità di servizio in caso di guasto hardware, in quanto è compito del fornitore di servizi occuparsi di questi aspetti di livello basso. Per fare un esempio, il classico servizio EC2/S3 di Amazon è un servizio IaaS: compro il servizio, installo il sistema operativo che preferisco e creo le mie applicazioni in questo ambiente per poter offrire un servizio; d’altro canto dovrò essere io ad occuparmi di tutti gli aspetti legati al bilanciamento di carico su più istanze, a strutturare una base dati adatta, ecc. Per quanto riguarda i costi di un simile servizio, in Italia, normalmente, si è solito offrire servizi IaaS in modalità Flat con fatturazioni periodiche; i veri servizi IaaS, però, permettono la fatturazione “a consumo” in quanto una istanza IaaS è un costo per il fornitore solo quando lavora e non quando è “ferma”: in pratica se un servizio IaaS lavorasse sempre a pieno regime i costi sarebbero analoghi (di poco superiori) a quelli di una modalità Flat standard, ma contando sui “tempi morti” si riescono ad avere costi normalmente molto più convenienti.

PaaS è l’acronimo di Platform as a Service, cioè la virtualizzazione di una piattaforma. In questo caso non mi devo occupare della infrastruttra attraverso la quale è realizzata una piattaforma: ad esempio non mi devo preoccupare di quanto spazio occupa il mio database o come fare a distribuire il carico di lavoro tra più servizi IaaS, in quanto tali problematiche sono già state affrontate da chi mi offre il servizio PaaS (probabilmente utilizzando la sua infrastruttura IaaS): io devo solo preoccuparmi di creare la mia applicazione per poter offrire il mio servizio. In questo caso, però, ho meno oneri ma anche meno flessibilità: difatti il mio fornitore di servizi ha sicuramente optato per delle scelte riguardo alla piattaforma su cui offrire il servizio PaaS a cui mi devo adattare per sviluppare la mia applicazione. Ad esempio, se il mio fornitore ha optato per offrirmi una infrastruttura LAMP (Linux-Apache-MySQL-PHP), dovrò necessariamente scrivere la mia applicazione utilizzando il linuguaggio PHP e una base dati MySQL. Se, al contrario volessi programare in Ruby on Rails oppure avere una base dati Oracle o MongoDB, dovrò scegliere un altro fornitore di servizio o acquistre un servizio IaaS ed arrangiarmi nella configurazione sistemistica. Quindi, giusto per fare un esempio concreto come già accennato, un qualsiasi hosting PHP/MySQL attraverso il quale posso sviluppare una applicazione, è un servizio PaaS. Un altro esempio di PaaS è il Google App Engine che prentende che l’applicazione sia scritta in Java o in Python. Questo tipo di servizio normalmente è fatturato in modalità Flat: si sceglie un “taglio” (quanti MB di spazio su disco, la quantità di banda, ecc.) e si paga con cadenza periodica.

SaaS è l’acronimo di Software as a Service, cioè un servizio software realizzato su una piattaforma che a sua volta poggia su una infrastruttura. E’ il servizio di più alto livello che può essere offerto ed è quello del servizio per l’utente finale. Alcuni esempi di servizi SaaS sono un accesso webmail, un CRM, le classiche “Google Apps”… Questo tipo di servizi è normalmente fatturato con cadenza periodica sulla base del numero di utenti attivati.

apr 012011
 

Dopo l’articolo dedicato ad Openstack Swift, sistema per creare storage ridondati e distribuiti geograficamente, analizzamo un nascente protocollo concettualemte simile ma molto più innovativo, il SoS.

SoS è l’acronimo di Storage over Smartphone e si tratta di un protocollo nato dalla collaborazione dell’americana AT&T e la svedese Nokia con Microsoft, in grado di realizzare uno storage ridondato distribuito sugli smartphone.

L’idea è quella di utilizzare lo spazio per lo più inutilizzato delle schede SD degli smartphone di ultima generazione collegati in maniera ormai costante alla rete internet per realizzare uno storage distribuito. Per spiegarlo in maniera semplice, ogni smartphone “cede” una partizione di 1 GB sulla propria SD card alle funzionalità SoS; ogni dato memorizzato all’interno del servizio SoS viene replicato almeno su tre partizioni (e quindi su almeno tre apparecchi smartphone) per garantirne l’alta affidabilità anche in caso di spegnimento o mancata raggiungibilità del telefono.

Un server centrale si occupa di gestire lo storage e quindi di distribuire automaticamente il dato in scrittura all’interno del maggior numero di smartphone possibile e di “proxare” le richieste in lettura in modo da rendere il sistema più veloce: difatti questo server viene aggiornato costantemente anche sulla posizione geografica dei vari nodi, ed è quindi in grado di capire se l’apparecchio che richiede il dato può comunicare direttamente con un apparecchio in cui il dato è presente, anche con connessioni bluetooth o wifi locale e senza passare quindi attraverso la rete telefonica dell’operatire: lo scopo è quello di rendere lo stesso dato disponibile sul maggior numero di apparecchi possibile (tendenza all’infinito) in modo da sfruttare la parallelizzazione dei download per quando il dato deve essere letto.

Sicuramente l’idea che sta alla base è geniale, in quanto si tratta di un sistema di storage distribuito simile concettualmente ai vecchi sistemi di peer-to-peer e quindi virtualmente infinito e ridondato. I dubbi riguardano essenzialmente la capacità di banda consumata dal protocollo in relazione a quella a disposizione degli SmartPhone che potrebbe far “sedere” le reti degli operatori mobili, facendo apparire sul display degli smartphone un messaggio simile a questo:

mar 292011
 

Innanzi tutto, chiunque abbia avuto modo di provare almeno una volta ad usare WordPress, sicuramente si rende conto della stermitata quantità di plugin disponibili per questa piattaforma di blog; bisogna fare molta attenzione, però: molti sono ottimi prodotti, altri sono esosi di risorse e rallentano notevolmente il sito, altri ancora causano delle falle di sicurezza non piacevoli da risolvere a posteriori. Secondo il mio modo di pensare, meglio avere un blog meno piacevole esteticamente o meno ricco di funzioni ma molto più snello da gestire e da visitare, piuttosto di avere un sito ricco di funzionalità ma che provoca ragnatele tra il monitor e il viso del navigante a causa della lentezza.

Oltretutto, come già detto in quest’altro articolo, Google tiene molto in considerazione la velocità di caricamento di una pagina; inolte, secondo una recente ricerca, emerge che un navigatore mediamente interrompe il caricamento di una pagina se non appare entro 4 secondi. Quindi, prima regola: be easy, non esagerare con la pesantezza del blog.

1-Click Retweet/Share/Like
Seconda regola per un blogger: be social. Per portare visitatori al sito, è giusto utilizzare tutti i mezzi leciti; integrare il proprio blog con i più importanti social network è il modo più facile per farsi pubblicità. Il plugin in questione è in realtà un servizio di LinksAlpha che permette innanzi tutto di inserire automaticamente all’inizio o alla fine di un articolo i pulsanti per segnalare la pagina all’interno dei più famosi Social Network. I pulsanti che inserisce automaticamente permettono al visitatore di tweettare un articolo, condividerlo o segnalarlo su Facebook, oppure segnalarlo tramite Linkedin, Google Buzz, Digg oppure stubleupon.
Ma il plugin fa molto di più: è possibile creare per il proprio blog un “nework” di account su diversi Social Network e pubblicare automaticamente il proprio articolo su più di trenta di questi. Le funzionalità di base permettono la pubblicazione attraverso un numero limitato di siti, è però possibile utilizzare il servizio a pagamento in grado di diffondere in maniera più importante i nuovi articoli.

BulletProof Security
Come sostenuto precedentemente, è facile creare delle falle sulla security di un sito WordPress. Questo plugin, però, ci viene in aiuto adottando una serie di migliorie atte, appunto, a migliorare la sicurezza dell’installazione WordPress di default. Ad esempio crea dei file .htaccess all’interno delle directory dati per impedirne l’accesso diretto, crea dei meccanismi di backup automatico e molto altro

RAX Google XML SiteMap
Questo plugin crea in automatico una sitemap in formato XML per aiutare gli spider di Google ad indicizzare al meglio le pagine del blog.

Table of Contents Creator
Concettualmente simile al plugin precedente, Table of Contents Creator crea un “indice” del blog in modo che i visitatori possano navigare con facilità all’interno del blog.

WordPress.com Stats
Tra i tanti sistemi di statistiche per WordPress, questo è quello che prediligo in quanto “ufficiale”: difatti, se si ha un account in wordpress.com, attraverso questo plugin è possibile utilizzare il sistema di statistiche “ufficiale” anche su un sito “hosted”. Ho scelto questo sistema in quanto è anche compatibile con l’App “WordPress” per Android.

WP Greet Box
Questo plugin permette di riconoscere la provenienza del visitatore (ad. esempio se ha seguito un link su Facebook, Twitter o Google) e propone un messaggio personalizzato per invitare il visitatore a compiere una azione atta creare un rapporto in linea con la referenza. Ad esempio, se si è seguito un link su Facebook, il plugin inviterà il visitatore a richiedere l’amicizia e così via.

GD Star Rating
Sempre nell’ottica di migliorare il feedback con i visitatori, GD Star Rating permette al visitatore di “votare” un articolo. Sistema utile per capire quali argomenti sono ritenuti più interessanti per i visitatori

WPtouch
La navigazione attraverso dispositivi mobili sta prendendo sempre più piede: WPTouch è in grado di riconoscere se il navigatore sta utilizzando uno smatphone Symbian, Blackberry, Android o iPhone in modo da proporre un layout grafico ottimizzato per i “piccoli schermi”.

WordPress Related Posts
Per migliorare il proprio posizionamento in Google e, soprattutto, per aiutare il visitatore nella navigazione, questo plugin propone un elenco di contenuti simili al termine di ogni articolo basandosi sui Tag. Io il link lo inserisco, però dubito che ci capirete molto dalla pagina ufficiale… però una volta installato fa tutto da solo!

Askimet
Askimet è incluso di default nelle installazioni di WordPress: all’inizio potrebbe sembrare superfluo, però ci si accorgerà ben presto della sua indubbia utilità. Il plugin analizza il contenuto dei commenti agli articoli e rileva quelli che potrebbero essere spam, cioè quelli inseriti solo per creare dei “backlink” ad altri siti.

mar 182011
 

Pwn2Own è un meeting annuale a cui partecipano i migliori hacker del mondo. Le aziende “sfruttano” questo evento per provare la (non) sicurezza dei propri sistemi.

Vediamo cosa è emerso quest’anno da questo evento.

Apple Safari
Apple ha rilasciato una patch per correggere tutti i bug ed exploits conosciuti del proprio browser appena prima che venisse sottoposto al tentativo di hacking. Ebbene, il team VUPEN vincitore di questo contest è riuscito ad accedere ad Airport attraverso un precisa vulnerabilità del motore di rendering “WebKit” in soli 5 secondi. Avete letto bene, 5 secondi! Difatti l’hacker ha preso controllo del MacOS semplicemente andando a visitare una pagina Internet con codice maligno.

RIM Blackberry e Apple iPhone
Entrambi i browser di questi apparecchi utilizzano lo stesso motore di renderinf WebKit di Safari (RIM l’ha cambiato proprio di recente), quindi in entrambi i casi i sistemi sono stati compromessi semplicemente andando a visitare una pagina con codice maligno.

Internet Expolerer 8
E’ stata utilizzata la versione 8 a 32 bit del browser su un sistema Windows 7 a 64 bit. Il vincitore è stato Stephen Fewer del gruppo Harmony Security che è riuscito a superare la Sandbox e ad eseguire un programma attraverso il browser sfruttando tre diverse vulnerabilità del Browser. Microsoft, prima dell’evento, non ha nemmeno tentato di patchare il suo prodotto.

Google Chrome
Google ha rilasciato una patch di security appena prima del contest ed ha preteso di partecipare innalzando la posta in palio con un ulteriore premio di 20.000,00 $. Due le persone iscritte alla gara, ma entrambe si sono ritirate prima dell’evento per concentrarsi sul sistema RIM Blackberry; in realtà questo non vuol dire che Chrome sia esente da buchi, difatti lo stesso buco con cui è stato forzato Safari e Blackberry sarebbe stato presente anche in Chrome visto che anch’esso utilizza come motore di rendering WebKit; difatti l’azienda di Mountain View si è affrettata a rilasciare una ulteriore patch al termine del contest.
Assieme a Google Chrome, sono stati “graziati” anche Windows Mobile e Android.

Mozilla Firefox
Per la prima volta il browser più diffuso al mondo è riuscito a resistere agli attacchi ed arrivare alla fine del contest inviolato. In questo caso i tentativi ci sono stati e l’hacker Sam Thomas era quasi riuscito a trovare un exploit che però si è rilevato instabile.

 

mar 142011
 

Google, per quelle 2-3 persone al mondo che non lo sanno, è un motore di ricerca. Anzi, è il più utilizzato motore di ricerca, nonostante Bing di Microsoft tenti in tutti i modo di intaccare la sua supremazia.

Nella costruzione di un sito, bisogna tenere quindi conto di come il motore di ricerca lavora, in modo da creare dei siti che riusciranno poi ad ottenere un buon posizionamento all’interno del motore di ricerca.

Ecco quindi i miei 15 consigli per cercare migliorare il ranking del proprio sito.

1) Createvi un account su Google (è gratuito) e utilizzate gli strumenti che Google mette a disposizione, in particolare Analytics e i Webmaster Tools che vi permettono di controllare cosa vede Google quando va a visitare il sito;
2) Immagini, video, ecc.: i contenuti multimediali rendono molto più accattivante il sito, però Googlebot (cioè il programma con cui Google viene a visitare il sito) non è in grado di comprenderle. E’ qundi importante utilizzare il tag ALT per dare una descrizione testuale all’immagine;
3) Ottimizzate il sito per la velocità: Google tiene molto in considerazione la velocità di caricamento delle pagine. Per lo stesso motivo, scegliete un hosting di qualità (il mio magari…) e tenete presente quanto già detto sul funzionamento di Apache riguardo alla perdita di prestazioni che si ha utilizzando FastCGI;
4) Quando rimuovete una pagina, sostituitela sempre con un redirect (codice 301): Google odia avere delle pagine indicizzate che portano ad un errore (codice 404) per cui se le trova declassa tutto il sito;
5) Google odia anche ricevere i timeut, per cui torniamo al discorso del punto 3: Hosting di qualità per evitare di avere il sito fermo magari proprio quando Google cerca di indicizzarlo;
6) Importanza del titolo di ogni pagina: non deve essere nè troppo lungo, nè troppo corto. Le parole usate nel titolo devono essere presenti anche nel corpo della pagina e nella descrizione.
7) Importanza della meta descrizione: anche in questo caso deve esseci e non deve essere nè troppo lunga nè troppo corta, 80-155 caratteri – 5-30 parole, facendo attenzione ad usare buona parte delle parole del titolo anche nella descrizione
8) Importanza della dimensione della pagina: anche in questo caso, cercate di non essere troppo prolissi (come me), massimo 1000 parole;
9) Importanza dei metatags, che devono essere presenti, abbondanti, ma che riguardino la pagina;
10) NON PENSATE DI FARE I FURBI: Google ha uno staff dedicato a migliorare i sistemi di scansione del sito, per cui evitate vecchi giochini che non funzionano più, come testo nascosto, metatags “furbi”, click finti ecc. che portano solo ad un declassamento del sito. Evitate anche programmi di submit automatico che troppo spesso violano i termini di utilizzo di Google e risciano di farvi radiare il sito;
11) create e tenete aggiornato il file sitemap.xml e sottomettetelo a Google attraverso i webmaster tool ad ogni modifica del sito. Analogamente create il file robots.txt e tenetelo aggiornato;
12) cercate di utilizzare link all’interno delle Vostre pagine che rimandino ad altre pagine del vostro sito. Un trucchetto che funziona ancora bene è quello di avere la Pagina 1 che rimanda alla Pagina 2, la Pagina 2 che rimanda a Pagina 3 e Pagina 3 che rimanda a Pagina 1. Inoltre Google è vanitoso, per cui non lasciatevi scappare l’aggiunta di qualche link a Google all’interno di qualche pagina… ma anche qui non esagerate;
13) Cercate di ottenere il maggior numero di siti web che rimandano al Vostro sito. Non usate siti che forzatamente creano dei link ma siti dal contenuto simile al vostro.
14) Evitate conenuti duplicati: Google si arrabbia parecchio che trova due pagine per lo più identiche e lo segnala attraverso i Webmaster Tool. Quindi evitate di creare “siti finti” su piattaforme come blogger, wordpress.org ecc. e postare il contenuto doppio. Piuttosto create un riassunto della pagina che volete provuovere ed includete un link.
15) Be Social: prevedete gli appositi link ai social network più diffusi in modo che il vostro sito venga pubblicizzato anche per canali differenti rispetto a Google. Non sperate che i post che vengono rimandati, ad esempio, in Facebook siano un link valido per il vostro sito: molti dei social network prevedono un apposito tag nei link che vengono pubblicati apposta per non aumentare l’indicizzazione nei motori di ricerca.