Computació en núvol
Pareix que és la frase de moda últimament en el món de la informàtica: el cloud computing o computació en núvol: no hi ha desenvolupament a mitjà o llarg termini que no contemple eixa opció. I la meua empresa no pot ser menys: el projecte que ara mateix tenim entre mans, del qual ja parlaré un dia d’estos, també s’ha trobat en la situació que cal que estiga preparat per a les tecnologies de demà i per això vaig caure directament en les mans (o pseudopodis gasosos) d’este model de computació.
Este mateix matí he acudit a una xarrada organitzada per l’Institut Tecnològic d’Informàtica sobre el tema, i encara que no ha sigut massa profitosa ja que ha sigut pràcticament monopolitzada per les ferramentes comercials de Telefónica, m’ha fet donar el pas i escriure este xicotet resum/popurrí de què és tot això de la computació en núvol.
Per a comprendre este model, primer cal tindre clars dos conceptes diferents. Primer de tot ens trobem amb l’arquitectura client / servidor: el client és la màquina que consulta les dades i interactua amb el sistema, i el servidor és la màquina que conté les dades i l’aplicació que s’està consultant. Un exemple d’això podria ser una pàgina web ‘tradicional’ (com per exemple este bloc), o una aplicació qualsevol que accedeix a una base de dades en un servidor específic. Generalitzant, tenim una sèrie de clients que de manera concurrent accedeixen a uns recursos que estan centralitzats en una màquina que fa de servidor.
També és important comprendre el concepte de núvol, que no és més que una metàfora d’Internet. La teua xarxa local, que sí coneixes, està connectada a una altra xarxa ja desconeguda que també està interconnectada a centenars i milers de xarxes que totes juntes fan Internet. Encara que no coneixem com són ni com estan interconnectades eixes xarxes, el sistema funciona, i es pot entendre com a un núvol al que estas connectat d’igual manera que també està connectat la màquina a la que vols accedir; pots connectar a qualsevol punt del núvol sense importar a on estiga realment eixa màquina: es tracta d’una abstracció d’Internet que fa que virtualment pugues interactuar amb qualsevol altra màquina connectada com si hi haguera un cable directe entre el teu ordinador i qualsevol altre.
Una vegada que es comprenen els dos conceptes, la idea de la computació en núvol és simple: si podem abstraure la xarxa fent que no siga important com arribar a l’altra punta del cable… ¿perquè no fem el mateix amb els serveis proveïts, de manera que eixe servidor que connectem no siga només una màquina física sinó una abstracció de programari i maquinari que destine els recursos necessaris per a fer la tasca que demanem?. Simplificant l’assumpte: utilitzarem una sèrie de maquinari distribuït per tota la xarxa per crear una màquina virtual, que serà la que en conjunt processe les dades i responga al client.
Els que sou informàtics tindreu ara mateix una pregunta: i que diferència hi ha entre això entre el grid computing o el clustering?. La resposta és també simple: l’objectiu de la computació en núvol no és unificar els recursos de diverses màquines per a augmentar la potencia de procés, sinó unificar recursos per a poder distribuir-los conseqüentment amb les necessitats instantànies entre diferents tasques.
Què guanyem amb tot això?, per una banda aprofitar els recursos d’una manera més eficient. Si assignem una màquina per a fer una tasca concreta probablement esta estarà parada en els moments que eixa feina no siga necessària; per altra banda es poden donar situacions de pic de treball per a eixa tasca, de manera que necessitarem reforçar-la amb uns recursos que el 99% del temps no seran necessaris. En canvi en el sistema de núvol eixa tasca no estarà assignada a cap màquina en particular, sinó al núvol, i els recursos necessaris seran assignats en temps real, absorbint els pics agafant més quantitat d’estos o alliberant-los en els moments que la tasca no siga necessària.
Però este no és l’únic benefici, fins i tot es podria dir que no és el més important. Podem gastar una gran quantitat d’esforços i diners per a tindre màquines el més fiables possible, però la realitat és que és impossible que una màquina funcione sempre al 100%, que no falle mai. Per això la computació en núvol compta amb una aproximació diferent al problema: si fins i tot la màquina més fiable (i per tant més cara) pot fallar, millor anem a comprar la més barata i buscar un sistema per a que les errades en part de les màquines no siguen crítiques per al sistema. Com els recursos són assignats de manera dinàmica, la caiguda de part de les màquines que composen al sistema no ha de ser cap problema, i obtenim un sistema de qualitat de servei altament fiable.
Tot això que parle no és cap cosa del futur, són tecnologies que ara per ara estan en funcionament, per exemple les aplicacions web de google (com gmail o google docs), o la plataforma de compra/venda d’Amazon. La idea és bona, i tenim els recursos per a explotar-la… qui ha dit por?.
Els crèdits de les fotos, la dels núvols al cel és de Ferran Turmo Gort (cc-by-nc-sa).


L'últim any i mig de la meua vida l'he passat a Ginebra, treballant al CERN. I ara que és hora de tornar a casa...

