Browsed by
Category: Italian

Design for failure

Design for failure

“Scusa ma non siamo capaci di offrirti la stabilità di cui hai bisogno, potresti pensarci tu?”

(Anonimo Cloud-Eretico sul Design for Failure)

C’erano una volta… gli sviluppatori, e le applicazioni. Gli sviluppatori si concentravano sul codice, dando per scontata la stabilità e la scalabilità dell’infrastruttura sottostante: usavano query SQL indescrivibili, ed era compito del sistemista farle girare velocemente, scrivevano codice senza gestione delle eccezioni perchè era compito del sistemista far si che quel determinato database server fosse sempre disponibile e non restituisse mai errori. Scrivevano software impossibile da distribuire su più macchine perchè tanto il sysadmin, in qualche modo, avrebbe fatto.

La colpa di ogni rallentamento o malfunzionamento di chi era? Del sistemista. Questo ha portato chi si occupa di infrastrutture a progettare soluzioni sempre più avanzate per far sopravvivere l’applicativo alle più inimmaginabili catastrofi, senza che questo subisse mai malfunzionamenti. Qualunque disgrazia fosse accaduta alle macchine che la servivano, l’applicazione sarebbe dovuta rimanere in piedi e funzionante.

Va detto che ci siamo (quasi) riusciti. Grazie alla virtualizzazione siamo arrivati a creare quello che è a tutti gli effetti hardware indistruttubile: la macchina fisica è diventata virtuale e quella virtuale sappiamo muoverla tra diversi nodi senza spegnerla, al solo costo di qualche millisecondo di freeze.

Abbiamo così creato piattaforme che astraevano quasi completamente la complessità sottostante, usando processori virtuali che restavano disponibili anche se quelli fisici prendevano fuoco e dischi virtuali che continuavano a servire dati anche se l’intero rack di storage veniva rubato dagli alieni.

Questa soluzione non era però ottimale: la replica sincrona, per esempio, era possibile solo in ristretti contesti geografici. Il costo di queste soluzioni era spesso proibitivo, e la loro complessità alta e non necessaria. Queste strutture, per quanto immortali potessero essere, erano sempre sotto la stessa autorità amministrativa. Tutto per non dare agli sviluppatori un compito in più: gestire la disponibilità dell’applicazione.

Screen Shot 2014-01-28 at 20.58.15

(Anonimo Cloud-Eretico che non ha compreso il ‘Design for Failure’)

Poi è arrivata una nuova generazione di developers: sviluppatori che volevano più controllo, volevano poter decidere come l’applicazione avrebbe reagito a malfunzionamenti dell’infrastruttura, e soprattutto si rifiutavano di pagare al fornitore complessi meccanismi di failover perchè… non ne avevano bisogno. Sapevano fare di meglio e sapevano farlo in modo più economico ma soprattutto più effettivo, più semplice.

Questi sviluppatori non chiedevano più a chi vendeva infrastrutture hardware immortale, chiedevano semplicemente del ferro: di qualunque tipo, prestazioni, forma, colore e dimensione, ed in ogni luogo. Si sarebbero occupati loro di inoltrare meno richieste ai processori meno potenti, di tenere in RAM i dati se i dischi della macchina erano troppo lenti. Si sarebbero curati loro di evitare di interrogare un database server che non rispondeva più ai comandi.

Volevano occuparsi, soprattutto, delle azioni di disaster recovery nel caso in cui un intero datacenter fosse andato a fuoco. Perchè nessuno meglio dello sviluppatore può sapere come deve reagire una applicazione a determinati eventi e di cosa questa ha bisogno.

Hanno poi iniziato a chiamarlo ‘Design for Failure’. La disponibilità non è più compito di chi gestisce l’infrastruttura: è l’applicazione ad esser progettata per far fronte a ogni evento o disgrazia, e la struttura sottostante fa solo il sollevamento pesi.

Nel modello ‘Design for Failure’ ognuno fa il suo lavoro: lo sviluppatore conosce l’applicazione e si occupa di farla funzionare, il gestore dell’infrastruttura si occupa delle prestazioni ma non si infila più in infiniti tunnel senza uscita per garantirne la disponibilità. Tutti risparmiano, perchè è tutto più semplice, con meno sovrapposizioni. Tutti vincono: perde solo chi non ha voglia di innovare.

Ecco perchè questo modello non è un fallimento, come tanti lo descrivono: è il futuro.

Ingegneria del Cloud Computing

Ingegneria del Cloud Computing

Glossy Blue Cloud with ShadowMi auguro di non essere più su questo pianeta il giorno in cui qualcuno istituirà il corso di laurea in Ingegneria del Cloud Computing. Se dovessi ancora essere qui quando quel momento arriverà… ragazzi, sapete cosa fare.

La scorsa settimana ho scoperto che ci sono università che offrono corsi in materia di cloud: per ora si tratta di singoli corsi, i nostri classici 10 CFU. Mi sono documentato, ho cercato i programmi, le slide ed il materiale didattico. Il risultato è stato catastrofico: ho avuto modo di notare quanto il modello di insegnamento “passivo” universitario possa impoverire i concetti. Mi rendo conto che il problema sia il modello in sè (lo confermano persone parecchio più autorevoli di me) e so anche che impoverisce ogni materia, non solo il cloud, ma quest’ultimo mi tocca più da vicino, e penso di avere le competenze per cercare (e trovare, ovviamente) il pelo nell’uovo nonchè il diritto (dovere?) di criticare.

Faccio una premessa (e vi avviso già che me la tirerò non poco). Sono sul campo dal 2006/2007: gli anni in cui venivano lanciate le prime offerte “cloud” (2/3 anni prima del vero e proprio boom). Sono di quelli che l’hanno visto nascere e crescere, di quelli che hanno fatto in tempo a chiedersi “cos’è sta roba?” e che a questa domanda hanno trovato 150 risposte diverse, che hanno visto lanciarsi sul mercato i player che oggi sono i “big” del settore, sono tra quelli che hanno partecipato alle discussioni sullo sviluppo o anche solo sul naming dei vari componenti che lo rendono possibile.

Ho visto scorrere sangue in conseguenza a domande come “Hey, cos’è il cloud?”, date le centinaia di opinioni diverse in merito. Fin dagli albori ho iniziato a intravedere i vantaggi (e le sfide) che questo nuovo modello portava, e ho subito iniziato a lavorarci (forse sarebbe più onesto dire “giocarci”, almeno per quanto riguarda i primi tempi): è stato amore a prima vista. Ci ho dedicato, in un modo o nell’altro, ogni giorno della mia vita professionale fino ad oggi, e continuo a farlo. So come si usa, so come lo si rende possibile, so perchè va usato e quando.

Ecco perchè secondo me con l’università non può funzionare:

  • Nel cloud, in tutte le sue forme (SaaS/PaaS/IaaS) ci sono ancora troppe di discussioni aperte (la definizione stessa non è univoca). C’è parecchia instabilità, su tutti i livelli: com’è possibile insegnarne una singola versione, facendola passare per verità rivelata? Com’è possibile pretendere che qualcuno impari questa “verità rivelata” da un libro, quando se ci si mettesse a studiare su Google (anche se, purtroppo, non sembra pratica comune) emergerebbero milioni di opinioni diverse su ogni singola parola? Stiamo forse nuovamente premiando chi si mette li piegato sul libro e impara tutto a memoria senza mai guardarsi intorno?
  • I professori che tengono questi corsi, a quanto ho visto, non sono esattamente dei giovincelli. Parlo di persone che hanno passato gli ultimi 20/30 anni di vita nella didattica. Questo fa di loro degli ottimi professori, ma forse non ne fa degli ottimi insegnanti per un modello, il cloud computing, che esiste si e no da 6 anni: quante ore possono averci dedicato sul campo? Zero? Forse non sono nemmeno stati in prima linea abbastanza tempo per comprendere come mai è nato, quali sono le richieste che l’hanno fatto crescere, ed in quali ambiti si colloca. Come insegnano, ma soprattutto cosa insegnano? Parlano forse per sentito dire come la peggior pettegola di paese?
  • La volatilità dei concetti è estrema: parlando in generale, e non del singolo servizio dello specifico fornitore, quello che è vero oggi potrebbe non esserlo più domani. La difficoltà nello spiegare cosa sia un’istanza cloud è enorme: chiedetemi piuttosto cos’è un’istanza Amazon EC2, che a differenza della prima è qualcosa di ben definito.

Con questa poca esperienza e con questa miriade di discussioni attualmente in sviluppo, come si può pretendere di valutare con un numero le competenze di uno studente?

Mi spiego con un esempio: 4 anni fa, lo storage a blocchi tra le nuvole era presente in due forme. Quella persistente, affidabile, ultra ridondata ma tremendamente lenta, e quello locale, più veloce ma estremamente instabile e inaffidabile. Era opinione comune che i RDBMS “classici” come MySQL e Oracle non potessero essere spostati nella cloud, perchè avidi di IOPS. Se qualcuno mi avesse chiesto di elencare le differenze tra un VPS ed un Cloud Server avrei sicuramente citato questo punto: 4 anni fa, sarebbe stato parte della definizione.

Poi le cose sono cambiate: è arrivato chi ha messo una SAN ad alte prestazioni dietro agli hypervisor, offrendo storage ridondato ma ad alte prestazioni. Amazon ha lanciato gli EBS con “Provisioned IOPS”, che permettono di prevedere e garantire le prestazioni di un certo storage. Altri player hanno messo sul mercato soluzioni SSD-based sulle quali quasi non ci si accorge di essere in un ambiente virtuale.

Nel giro di pochi mesi, la “lentezza” dei dischi è sparita dalla definizione: non era più parte del cloud. MySQL tra le nuvole è diventato d’un tratto non solo possibile ma anche ottimale. Tutto è cambiato, di nuovo. A che cosa sarebbe servito spendere 10 CFU, 300 ore di studio, per imparare definizioni che erano già predestinate a diventare superate (e quindi, sbagliate)?

Questa è per tutti una grande occasione per buttare via il modello di insegnamento verticale, che evidentemente in questa materia non può funzionare, e per comprendere la dinamicità con cui ci si deve formare in un ambiente lavorativo, in contrasto con quello scolastico.

Lasciate che ad insegnarvi il cloud siano le centinaia di persone che l’hanno fatto, e non dei professori che, mentre tutti noi traslocavamo tra le nuvole, erano in aula a spiegare.

Qualche aggiornamento…

Qualche aggiornamento…

wip

Approfittando del week end pieno di cose da fare, ho aggiunto alla mia todo le pulizie di primavera del blog (a Novembre, ovviamente).

Riepilogo, in ordine sparso:

  1. Ho cestinato il vecchio tema, che era decisamente troppo pesante e scuro, sostituendolo con “Twenty Thirteen”. Colori a parte mi piace un sacco, ma per ora resta così perchè sto valutando di abbandonare WordPress e rischio di far sviluppare un tema per usarlo solo 2/3 mesi.
  2. Ho fatto un update del server: sono passato a Debian 7 e ho aggiornato PHP, MySQL e parenti all’ultima versione.
  3. Poco dopo aver completato il passaggio 2, a causa di un flooding di richieste, ho realizzato che il vecchio server era “troppo stretto” e, in piena logica “spendili sti soldi, cazzo”, ne ho installato uno con il quadruplo delle risorse rispetto al precedente.

Il nuovo server (gi.grg-web.eu*) è ospitato a Londra, contro il precedente (vs.grg-web.eu) che era a Vienna (vm.grg-web.eu, il predecessore di vs, era a San Jose): questo migliora il posizionamento internazionale, ma probabilmente penalizzerà leggermente le visite dall’Italia. Niente di eccessivo, prometto.

Sono cambiati entrambi gli IP, quindi potreste notare problemi legati ad eventuali cache naziste per le prossime 24/48 ore. Il blog ovviamente è ancora raggiungibile in dual-stack (sia IPv4 che IPv6).

Se doveste riscontrare qualche problema, vi prego di segnalarmelo: potreste vincere una caramella (e la mia eterna gratitudine, che comunque non è poco)

Grazie!

Ps: prometto che completerò in tempi brevi la pagina About Me. Nel frattempo potete tranquillamente fare stalking sul mio profilo LinkedIn, che mi sono degnato di aggiornare dopo 5 anni.

* Gi/G è il mio soprannome nel mondo reale (c’è gente che è morta dopo avermi chiamato GrG): di recente è stato battezzato un Beagle in mio onore, quindi, mi sono detto, perchè non anche un server?

DATAGATE: Gli USA l’hanno fatta grossa. Molto.

DATAGATE: Gli USA l’hanno fatta grossa. Molto.

obama_is_listening

Prima grazie a Snowden abbiamo scoperto che il governo USA spiava tutti gli americani. Poi qualcuno ha rettificato e abbiamo realizzato che non stavano spiando solo gli americani ma anche tutto il resto del mondo.

Una colossale figura di merda, senza dubbio. C’è chi pretende le scuse di Obama, pensando così di poter chiudere la questione. Non è così, perchè ormai è stato fatto un danno enorme: ci hanno fatto perdere la fiducia nel sistema.

Vi spiego perchè: di norma i vostri diritti sono garantiti da una specifica entità, che nel nostro caso è lo stato. Se scendete in piazza per tenere un comizio, chiunque può spararvi in mezzo agli occhi e farvi tacere per sempre, perchè non siete immuni ai proiettili. Lo stato, però, garantisce che voi possiate esprimervi: è possibile uccidervi, ma qualcuno impedisce di farlo a chi lo vorrebbe. Intercettare una telefonata, specialmente sul doppino analogico è semplicissimo: chiunque, volendo, può ascoltarvi. Lo stato, però, lo impedisce tramite leggi, punendo chi le viola. Non si tratta di limiti tecnico o teorici, ma semplicemente di “paletti”, una bella recinzione che qualcuno tiene attiva e funzionante.

I vostri diritti dipendono da qualcuno che deve garantirli: non sono diritti “intrinseci”, e se questa entità smette di farlo voi smettete di possederli. Cosa succede quando si scopre che il garante stesso ha violato i principi che avrebbe dovuto difendere? Il sistema crolla, è inutile cercare un altro garante, perchè potrebbe avere la stessa debolezza del primo: si cerca un modo di poter fare a meno del garante stesso, per far si ad esempio che la libertà di espressione e la privacy possano esistere indipendentemente dall’esistenza di qualcuno che le tuteli. Si cerca insomma un modo per rendervi immuni ai proiettili: se qualcuno vuole spararvi, che lo faccia. Voi potrete continuare ad esprimervi, perchè i proiettili non vi toccheranno.

Qui nascono le cosìddette “darknet”, reti parallele “diverse” dalla internet che voi tutti conoscete. Il funzionamento per l’utente finale è identico (per accedere a siti in una darknet si usa un normale browser, si usano un pò meno normali indirizzi e si visualizzano normalissime pagine web), ad essere profondamente diversa è l’architettura. Queste reti (Tor e I2P sono le più conosciute) sono progettate per garantire a livello strutturale anonimato, sicurezza e libertà di espressione.

Provo a spiegarmi un pò meglio: quando pubblicate un post su internet, tecnicamente è possibile farlo sparire con un click. Non è alla portata di chiunque, ma c’è qualcuno che può farlo. Se la vostra determinata opinione non piace, è facile mettervi a tacere. Tecnicamente, è anche possibile scoprire che siete stati proprio voi a scrivere quel determinato messaggio. Potete usare un proxy, ma in quel caso sarà l’amministratore del proxy a sapere chi siete, e dipenderete da lui. Non potete diventare veramente anonimi, l’unica cosa che potete fare è nascondervi, più o meno bene. La libertà che pensate sia “vostra”, dipende invece dai garanti.

Nelle darknet non funziona così: quando parlo di anonimato, sicurezza e libertà “intrinseche” nel sistema, intendo dire che il tutto è progettato affinchè NON ESISTA NESSUN MODO per sapere che siete stati proprio voi a pubblicare quel determinato contenuto. Il passo è enorme, perchè qui non dipendete più da qualcuno che vi garantisca una tutela. Anche volendo, nessuno potrebbe venirvi a prendere. Potete avere TUTTI contro, e non cambia niente: non potrebbero mettervi a tacere, perchè è impossibile scoprire dove è ospitato un certo contenuto, e sarebbe di conseguenza impossibile farlo sparire dalla rete.

A questo punto vi starete chiedendo dove stia il danno. Le darknet esistono da sempre, ma il 99.9% delle persone non pensava di averne bisogno e soprattutto non era in grado di utilizzarle. Il datagate però ha aperto gli occhi, e adesso anche la casalinga del delaware sente bisogno di privacy (del resto, non capisce perchè Obama debba intercettare e copiare la sua ricetta segreta per quei fantastici biscotti che regala ai vicini). Si è spostata l’attenzione su questo tipo di reti, la base di utenti è cresciuta esponenzialmente in pochi mesi e stanno iniziando a diffondersi su larga scala: spuntano le prime guide passo a passo, e diventa facile per tutti utilizzarle.

Vi sentite liberi. Vi sentite al sicuro. Ma c’è un problemino: nelle darknet si è tutti liberi. E quando dico TUTTI, intendo proprio TUTTI: sono tutelate le idee e opinioni diverse, ma anche quelle illegali e contro la morale. Nelle darknet non vige (e non può essere imposta) nessuna legge, c’è solo il buon senso. Che a tanti manca. Potete sfogarvi in modo anonimo contro il governo, ma qualcun altro può vendere in modo anonimo pacchi di cocaina. Potete pubblicare foto compromettenti del Marrazzo di turno, ma c’è anche chi può pubblicare materiale pedopornografico (e c’è chi può accedere in modo non tracciabile a questi contenuti). Potete parlare con la vostra ragazza senza che nessuno si infili in mezzo alle vostre fantasie, ma allo stesso modo due terroristi possono ragionare indisturbati su dove sia meglio piazzare la bomba nel prossimo attentato.

Nessuno potrà mai più ascoltare nessun altro. Quando è un algoritmo a garantire la privacy e la liberà, questo la garantisce a tutti. Indistintamente, perchè non conosce leggi. Rende inutili i garanti e li priva di quel potere di cui hanno abusato: del resto, non se lo meritavano.

A lungo termine questo cambio di rotta avrà solo effetti positivi su tutti noi. Non li avrà invece su chi pretendeva di controllarci, che adesso avrà il tempo di pentirsi per aver portato a questo: hanno esagerato e noi siamo corsi ai ripari. La facilità con cui nelle darknet girano materiale pedopornografico o droghe, è spesso usata per distruggerne la reputazione di fronte al grande pubblico e farle passare come strumenti da criminali. Quando gli stati si accorgeranno dell’enorme danno che crea (a loro) il nostro essere liberi useranno queste motivazioni per distruggerne la reputazione agli occhi del popolo e probabilmente renderne illegale l’utilizzo. Molto semplicemente, c’è chi le usa in modo sbagliato, ma per come sono state progettate (e ricordo che sono state progettate così a causa di chi ha abusato del proprio potere), è impossibile mettere al bando i comportamenti sbagliati, indipendentemente da quante siano le persone a ritenerli tali: perchè qui sta il punto, non possono esistere idee giuste o idee sbagliate.

Dovremo imparare a ragionare in modo diverso e abituarci a vivere in un nuovo mondo, perchè l’accesso alle informazioni sarà veramente illimitato. Nessuno potrà più dirci dall’alto cosa è giusto e cosa no: gli stati dovranno convincerci che raffinare cocaina è sbagliato, perchè non potranno più fare affidamento sull’impossibilità per i più di apprendere il procedimento e di comprare il materiale via internet. Sul nuovo Google si troverà anche questo.

Barack, una domanda per te: non sarebbe stato più semplice lasciar tutto com’era prima e comportarsi in modo un pò più onesto? Prima potevi intercettare tutti, e avresti dovuto farlo solo in caso di necessità. Invece ne hai abusato, e adesso non ti è più possibile intercettare nessuno. In pratica spiando i messaggini tra me e le mie amiche hai dato la possibilità al terrorista di turno di comunicare indisturbato e hai reso molto più semplice il traffico di sostanze illegali. Barack, dimmi, cosa ci hai guadagnato?

T-Mobile e il mondo TLC che cambia. Prima del previsto.

T-Mobile e il mondo TLC che cambia. Prima del previsto.

“Le persone hanno paura di utilizzare il cellulare quando sono all’estero” – John Legere, CEO di T-Mobile US, ha aperto così l’evento in cui ha annunciato a sorpresa la quasi totale abolizione delle tariffe di roaming per i propri clienti. Qui il comunicato stampa: un fulmine a ciel sereno, un annuncio che non ci saremmo mai aspettati, non certo in tempi così ristretti.

Gli utenti T-Mobile potranno da fine Ottobre inviare messaggi e navigare senza limiti da più di 100 paesi nel mondo senza costi aggiuntivi. Le chiamate effettuate in roaming avranno un costo di 20 centesimi al minuto (un prezzo praticamente nullo rispetto a quello attuale). Per quanto riguarda invece le chiamate internazionali effettuate dagli USA, acquistando un pacchetto da 10 dollari mensili, sarà possibile parlare illimitatamente con le linee fisse di 70 paesi e a 20 centesimi al minuto con tutti i mobili e i fissi del resto del mondo.

“The world is your network.” – T-Mobile

Legere non ci va giù piano: secondo lui il mercato delle telecomunicazioni americano è “uno schifo”, basato su “un raket” che ha il solo fine di spennare i clienti. Vuole che la sua compagnia sia diversa: T-Mobile è il più piccolo dei 4 principali operatori nazionali, ma è quello in più rapida crescita (hanno appena annunciato il completamento della copertura 4G/LTE di tutto il territorio USA).

Erano stati chiari, con la loro campagna “Uncarrier“: “We’re still a wireless carrier. We’re just not going to act like one anymore.”. T-Mobile ha iniziato qualche mese fa il cammino su una strada di innovazione e trasparenza cancellando dai suoi listini il modello di vendita basato su “contratti” (che è lo standard in USA, si sceglie un telefono e si è obbligati a pagare una determinata tariffa per 24 mesi, con altissimi costi di recesso anticipato) e sta continuando in velocità, in aperto contrasto con i suoi concorrenti AT&T e Verizon.

Nessun contratto, nessuna tariffa di roaming, SMS e chiamate illimitate, no alle tariffe nascoste. Semplice. Semplicissimo. Come ogni cosa dovrebbe essere.

Vodafone si stava già muovendo su questa linea, ma preannunciava il cambiamento per il 2015. Adesso dovrà accelerare i tempi. E gli altri? Tutti gli altri? Subiranno il durissimo colpo? Saranno in grado di stare al passo?

Probabilmente è il caso di iniziare a correre. Perchè l’impressione che si ha sempre di più, è quella di un mondo delle telecomunicazioni in continuo cambiamento ed evoluzione, ma con operatori (che dovrebbero esserne i principali player) incapaci di stare al passo coi tempi e con le necessità dei clienti.