¿Qué es Cloud Computing?

Cloud Computing es un término general que describe una nueva forma de computación basada en la red, que se lleva a cabo sobre Internet. Es un paso más hacia el “Utility Computing” (computación como suministro). En otras palabras, es una amalgama de hardware, software e infraestructuras de comunicaciones (Internet) interconectados e integrados de tal forma que constituyen una plataforma de almacenamiento y procesamiento de información. Se usa Internet para la comunicación y el transporte de datos, y se dan a los clientes servicios de hardware / software y comunicaciones. La plataforma oculta la complejidad y los detalles de la infraestructura subyacente. Los usuarios tienen una visión de la misma a través de APIs sencillos, incluso gráficos. La plataforma da servicios bajo demanda: siempre disponibles, desde cualquier lugar, en cualquier momento. El pago es por uso, elástico en el sentido de que se pueden agregar / eliminar capacidades y funcionalidades. Nótese que, en general hablamos de servicios disponibles para el público en general, aunque muchos conceptos del cloud computing se pueden usar dentro de una empresa u organización. En resumen: cloud computing es un término-paraguas para hacer referencia a una variedad servicios y desarrollos basados en Internet. Estas son algunas características básicas que definen datos, aplicaciones, servicios e infraestructuras “en la nube”: • Albergados en infraestructuras remotas • Ubicuos: disponibles desde cualquier sitio • Convertidos en un recurso, como el gas, el agua, la electricidad… Se usa lo quese necesita y se paga por ello.

  • SaaS (Software as a Service). El servicio nos permite la ejecución “en la nube” de un conjunto de aplicaciones, predeterminado por el proveedor. Ejemplo: Google Apps. En otros casos se ofrecen, en vez de aplicaciones enteras, servicios de alto nivel integrables en otras aplicaciones, o combinables entre sí. (mashups) para aumentar su funcionalidad. Ejemplos: Google Maps, PayPal, OpenID…
  • PaaS (Platform as a Service). Se nos ofrece una plataforma para ejecución de nuestras aplicaciones, normalmente con algunas limitaciones (lenguaje de programación, S.O. sobre el que se ejecutan). Ejemplos: Microsoft Azure, Google App Engine.
  • IaaS (Infrastructure as a Service). Se nos ofrece una plataforma de máquinas virtuales en las que instalar sistemas operativos, librerías y aplicaciones según nuestras necesidades. Ejemplo: Amazon EC2.

En todos los casos se ofrece, además, un servicio de almacenamiento en la nube, que permite a usuarios y aplicaciones guardar sus datos de manera accesible a sus aplicaciones (o a las aplicaciones de terceros que usa). Desarrollamos a continuación estos conceptos.

Modalidades de cloud computing 

SaaS – Software as a Service

SaaS es un modelo de implantación de software en el que la aplicación está disponible como un servicio al que los clientes acceden vía Internet. SaaS se usa normalmente para
software corporativo, no para software de consumo – aunque esto va siendo cada vez menos cierto. El software se ejecuta “en la nube”; sólo la visualización se ejecuta en el puesto de trabajo. Por lo tanto, no se necesitan puestos de trabajo potentes. La ventaja más
importante, desde un punto de vista de la gestión de las TICs, es que se elimina la necesidad de instalar y actualizar software en los puestos de trabajo, lo que simplifica
enormemente la puesta en marcha y el mantenimiento de los mismos. También podemos incluir en esta modalidad los servicios web de alto nivel, no
orientados al usuario final sino a la composición de aplicaciones complejas. Por ejemplo, aquellas aplicaciones que necesiten de visualización geográfica pueden utilizar
los servicios de Google Maps/Earth a través de sus APIs, ignorando por completo la infraestructura dispuesta por Google para dar estos servicios. La visualización puede
hacerse en aplicaciones autónomas como Google Earth, o a través de páginas web. En este último caso se puede acceder directamente a la web de Google Maps
(http://maps.google.com), o integrarlo en otras webs (como hace, por ejemplo, Wikiloc http://www.wikiloc.com).

PaaS – Platform as a Service

Dos de los grandes “gigantes” del software, Google y Microsoft, han apostado por esta modalidad de cloud computing. La idea en ambos casos es que las compañías diseñen su propio software, orientado al procesamiento masivo (por el número de usuarios, o de datos) y lo ejecuten en una plataforma gestionada por otros, con las ventajas de
elasticidad propias de los sistemas cloud.

Google App Engine apuesta por aplicaciones basadas en Python (recientemente también se ha empezado a dar cabida a aplicaciones Java), con lo cual la visión de la plataforma
subyacente es la dada por el lenguaje de programación, enriquecido con unos APIs adicionales (entre ellos, los de acceso a datos). Microsoft Azure apuesta por una
plataforma algo más flexible, basada en servidores Windows Server, en los que se puede ejecutar cualquier aplicación en cualquier lenguaje de programación soportado
por esta plataforma.

IaaS – Infrastructure as a Service

Se trata de un modelo de albergue de servidores “en la nube”. Se accede bajo demanda a servidores, basados en máquinas virtuales, en los que se puede instalar el software que necesitemos – la flexibilidad es total. Nos despreocupamos de instalar y mantener un CPD propio, con todo lo que esto conlleva: espacio, consumo eléctrico, refrigeración, averías… La implementación más conocida de este paradigma es Amazon EC2 (Elastic Compute Cloud).

Almacenamiento “en la nube”

Algunas compañías con fuerte presencia en la web (como Amazon o Google) están
explotando el hecho de que disponen de una ingente capacidad de almacenamiento para
revenderla a otros, en diferentes formas. Esto es lo que se conoce como “cloud storage”,
almacenamiento en la nube. Los datos residen en la nube pero, para evitar problemas de
rendimiento, pueden ser cacheados temporalmente en terminales conectados a Internet
(incluyendo móviles).
El almacenamiento puede ser útil en sí mismo (por ejemplo, para disponer de información accesible desde muchos sitios, o como back-up remoto), pero es más útil cuando se combina con soluciones SaaS, PaaS o IaaS. A modo de ejemplo, el Simple Storage Solution (S3) de Amazon encaja perfectamente con EC2.
También ofrecen almacenamiento en la nube compañías como Nokia o Palm, orientado a que los usuarios de sus dispositivos móviles dispongan de almacenamiento estable, no ligado al terminal ni a la ubicación.

¿Qué hay detrás de una infraestructura cloud?

Recordemos que, para usar estas infraestructuras, no es necesario saber cómo están construidas: para ello se ofrece un API. Así que los usuarios no deben de preocuparse de “qué hay” sino de “cómo se usa”. Esta idea no es nueva: es lo habitual con cualquier suministro (agua, gas, electricidad, etc.) Uno de los objetivos de la infraestructura es dar un servicio escalable bajo demanda, por lo que debe ser flexible y elástica en términos de CPUs, almacenamiento, equilibrado de carga, bases de datos… La infraestructura (al fin y al cabo, un enorme data center, o más probablemente una colección de data centers geográficamente distribuidos) puede construirse de muchas maneras: con productos de marca, software propietario o libre, servidores sofisticados o PCs de sobremesa… Lo más habitual es que el hardware consista en grandes clusters de servidores de consumo, sobre los que se ejecuta software libre (open source), al que se le añaden aplicaciones y/o software de sistema “artesano”. Una excepción de interés es la plataforma Azure de Microsoft, que está basada en servidores con S.O. Windows.

Virtualización

La clave tecnológica para los sistemas de computación cloud ha sido, aparte de la popularización de Internet y el aumento de las conexiones de banda ancha, el desarrollo de diferentes sistemas de virtualización. Un espacio de trabajo virtual es una abstracción de un entorno de ejecución, que puede ser accesible dinámicamente a través de clientes autorizados, usando protocolos bien definidos. Incluye cuotas de recursos (CPU, memoria) y configuración de software (SO, programas preinstalados). Es posible, aunque no imprescindible, implementar estos espacios de trabajo mediante máquinas virtuales. Aunque es una tecnología con solera, en los últimos años ha ganado popularidad la utilización de plataformas que permiten la virtualización de sistemas completos, consiguiendo en una máquina física la ejecución concurrente de varias máquinas virtuales – que no son otra cosa que abstracciones de máquinas físicas. El hipervisor (VMWare, Xen o cualquier otro) intercepta y emula las instrucciones de las distintas máquinas albergadas, y permite la gestión de las mismas. Las versiones domésticas de los sistemas de gestión tienen una funcionalidad muy limitada (iniciar, suspender, apagar máquinas virtuales), pero las orientadas a CPDs ofrecen funciones mucho más sofisticadas (migración de máquinas en caliente, equilibrado de carga, aprovisionamiento bajo demanda, etc.)

La virtualización tiene como principal inconveniente una pérdida de rendimiento (que puede ser muy ligera) comparada con el acceso directo a los recursos. Pero sus ventajas superan con creces a los inconvenientes. Veamos algunas:

  • Podemos mantener entornos hardware/sistema operativo para equipos obsoletos o inexistentes. Esto es importante para mantener funcionando aplicaciones que viven más que el hardware o el sistema operativo para el que fueron diseñadas.
  • Es fácil crear nuevos servidores, hacer backups, etc. Se trata simplemente de duplicar ficheros.
  • Se simplifica la comprobación de software sobre instalaciones “limpias”. Se pueden hacer tests de funcionamiento sobre una máquina virtual a la que no se le ha instalado ningún software sospechoso de interferir en el funcionamiento normal de la máquina o la aplicación. También permite comprobar un software en distintas plataformas sin necesidad de disponer de múltiples máquinas de prueba.
  • Se pueden emular más máquinas que las que existen físicamente. Por ejemplo, podemos comprobar una aplicación diseñada para un cluster sobre una máquina única.
  • Varios servidores pueden compartir (en el tiempo) un mismo equipo, sin el peligro de que el fallo en uno afecte a los otros. Se simplifica la depuración de problemas (suspendiendo / reanudando rápidamente la máquina problemática).
  • Es fácil migrar servidores de un equipo físico a otro, incluso sin apagarlos, pararesolver problemas de hardware, o para equilibrar la carga.

Aunque normalmente no se vea como tal, no olvidemos que los sistemas operativos, los lenguajes de programación de alto nivel, y las aplicaciones, forman parte también del ecosistema de la virtualización. Un SO nos da una visión virtualizada de un conjunto de elementos físicos, un hardware, consiguiendo que veamos de la misma forma plataformas hardware diferentes. Un compilador o intérprete de un lenguaje de programación nos permite trabajar sobre una máquina, independientemente de su hardware y su SO. Una aplicación a la que se accede a través de una interfaz gráfica o un protocolo también nos da una funcionalidad que oculta lo que hay detrás. Por ello, aunque todas las plataformas de cloud computing están basadas en la virtualización, no siempre se trata de virtualizar hardware.

Ejemplos de servicios cloud

En este apartado hacemos una revisión somera de algunos de los servicios de cloud computing ofrecidos por Amazon, una de las empresas punteras en este mercado.

Amazon S3

S3 (http://aws.amazon.com/s3/) nos ofrece almacenamiento virtualmente ilimitado usando la misma infraestructura escalable, fiable y rápida de Amazon. Tiene unas tarifas por uso, en la que se tiene en cuenta el volumen de almacenamiento usado y el volumen de datos transferido. También se cobra un cargo por operación realizada.

Veamos algunos conceptos básicos para entender mejor S3, puesto que no se trata de un
sistema de ficheros convencional. Se manejan objetos de entre 1 byte y 5 GB, cada uno
de ellos con un identificador único, y existen operaciones para escribir / leer / borrar /
listar objetos. Los objetos se almacenan en bucket, y S3 asegura que todos los objetos
del mismo bucket están en el mismo sitio físico. Un bucket puede estar físicamente en
EE.UU. o en Europa, pero puede accederse a el desde cualquier sitio. El API permite
crear / destruir buckets. S3 tiene mecanismos de autenticación para asegurar que no hay
accesos no autorizados. Los objetos pueden ser privados o públicos, y es posible asignar
derechos de acceso particulares a usuarios específicos.

S3 soporta APIs basadas en SOAP y REST, a través de librerías disponibles para
múltiples entornos (PHP, Perl, Java, C#, Ruby, Python, servicios web), para la
manipulación de los datos almacenados. Además soporta diferentes protocolos para
descarga masiva de datos: HTTP y BitTorrent.

Amazon EC2

Amazon Elastic Compute Cloud (http://aws.amazon.com/ec2/) es la instancia más
significativa de IaaS, conocida también como “utility computing”, y una de las más
veteranas, con orígenes en 2006. Permite a los usuarios gestionar (de manera elástica)
desde uno a cientos de PCs, a través de un API basado en servicios web. Se ofrecen
varios modelos de hardware (en realidad son equipos virtuales) que podremos
seleccionar en función de nuestras necesidades: número de procesadores, RAM, disco
local. En cuanto al software, tenemos una serie de plataformas (sistema operativo + base
de datos + entornos de desarrollo + otro middleware) pre-empaquetado, o podemos
instalar lo que nosotros queramos. También se permite la configuración de direcciones
IP.
Se ofrecen muchas opciones de facturación, pero lo más normal es un coste horario por
uso de la máquina (que depende del tipo de máquina), más un coste por la transferencia
de datos. No olvidemos, además, los costes derivados del almacenamiento de datos.
Normalmente se usa Elastic Block Store, un servicio de almacenamiento en la nube que
funciona como bloques de discos. EBS puede interactuar con S3, que se usaría en este

caso como un almacén de copias de seguridad: en EBS se guardan los datos en curso, y
en S3 se van haciendo instantáneas (incrementales) de esos datos, lo que nos permitiría
su recuperación en caso de problemas.

Costes según el modelo de PC (instancia):

La manipulación de máquinas de EC2 y bloques EBS se hace de forma remota, a través
de una consola de administración con interfaz web. Desde esa consola se puede
seleccionar una pre-configuración de software para una máquina. A partir de ahí, se
obtienen unas credenciales para acceso a la misma. Se elige el modelo de instancia
(desde small a extra-large). Y eso es todo. En unos minutos, la máquina está lista, y
podemos acceder a ella vía SSH, por ejemplo usando PuTTY. Hecho esto, podemos
instalar lo que queramos, y darle el uso que nos sea necesario. Para más detalles del uso
de la consola, se puede ver este vídeo (en inglés): http://media.amazonwebservices.com/console/AwsConsole.html. También se puede hacer uso de EC2 a través de una API basada en servicios web.

Amazon Elastic MapReduce

Como ejemplo de un servicio cloud de más alto nivel que EC2, nos encontramos con
Amazon Elastic MapReduce. Se trata de un servicio accesible vía web que permite a
empresas e investigadores el análisis de grandes volúmenes de datos. Se basa en los
servicios EC2 y S3 para ofrecer un entorno Hadoop. El sistema es elástico, puesto que
se pueden asignar tantos recursos como sean necesarios. El API es sencillo,
encargándose el servicio con la gestión de las infraestructuras y la plataforma Hadoop.
Para entender mejor la utilidad de AEM, es necesario saber qué son MapReduce y
Hadoop. Recurrimos a wikipedia (en inglés)

MapReduce is a framework for processing huge datasets on certain kinds of distributable problems using a large number of
computers (nodes), collectively referred to as a cluster. Computational processing can occur on data stored either in a filesystem
(unstructured) or within a database (structured).
– “Map” step: The master node takes the input, chops it up into smaller sub-problems, and distributes those to worker nodes. A
worker node may do this again in turn, leading to a multi-level tree structure. The worker node processes that smaller problem,
and passes the answer back to its master node.
– “Reduce” step: The master node then takes the answers to all the sub-problems and combines them in a way to get the output –
the answer to the problem it was originally trying to solve.
The advantage of MapReduce is that it allows for distributed processing of the map and reduction operations. Provided each
mapping operation is independent of the other, all maps can be performed in parallel – though in practice it is limited by the data
source and/or the number of CPUs near that data. Similarly, a set of ‘reducers’ can perform the reduction phase – all that is
required is that all outputs of the map operation which share the same key are presented to the same reducer, at the same time.

While this process can often appear inefficient compared to algorithms that are more sequential, MapReduce can be applied to significantly larger datasets than that which “commodity” servers can handle – a large server farm can use MapReduce to sort a petabyte of data in only a few hours. The parallelism also offers some possibility of recovering from partial failure of servers or
storage during the operation: if one mapper or reducer fails, the work can be rescheduled — assuming the input data is still available.
Apache Hadoop is a Java software framework that supports data-intensive distributed applications under a free license. It enables applications to work with thousands of nodes and petabytes of data. Hadoop was inspired by Google’s MapReduce and Google File
System (GFS) papers. Hadoop is a top-level Apache project, being built and used by a community of contributors from all over the world. Yahoo! has been the largest contributor to the project and uses Hadoop extensively in its web search and advertising businesses.

Conceptualmente, un usuario de AEM carga sus datos en S3, define sus funciones
“map” y “reduce”, y está listo para procesar sus datos a la velocidad que le fije su
presupuesto.

Bajo el paraguas “cloud” se incluye la computación basada en infraestructuras accesibles a través de Internet, invisibles para los usuarios, muy escalables, y convertidas en suministro. El uso de sistemas de cloud computing abre un mundo de oportunidades para las empresas que dependen de las TIC (es decir, de prácticamente todas las empresas): se puede realizar externalización hacia la nube (cloud-sourcing).

  • Se posibilita el uso de servicios sin que sea necesario entender las infraestructuras. Para una empresa muy pequeña, un ordenador sencillo con un navegador y una conexión a Internet es suficiente para acceder a servicios que pueden ir desde un simple sistema de correo electrónico a un sistema altamente escalable de análisis de imágenes. Se reduce la dependencia en las TIC locales. Incluso aunque una empresa esté satisfecho con su sistema TIC local, puede combinarlo con sistemas cloud para atender a picos puntuales de demanda, sin que eso suponga una fuerte inversión a la que no se le saca demasiado partido. La escalabilidad del sistema es rápida y flexible.
  • Se usan economías de escala. Potencialmente, permite que empresas intensivas en IT puedan comenzar a operar con costes muy bajos (en hardware y en software). El coste se aplica al uso real, no a las demandas de pico. Los propietarios de las infraestructuras también aprovechan las economías de escala, porque extraen un rendimiento extra de las mismas. Esto redunda en un bajo coste para los usuarios.
  • Los datos y servicios están disponibles en todo momento, vía protocolos estandarizados o navegadores web, aunque residan en sitios remotos. Entre otras ventajas, que luego analizaremos, se simplifica el teletrabajo y la movilidad del personal (o incluso de la empresa).

En paralelo, se oyen voces en contra de estos sistemas:

  • El uso de plataformas cloud significa pasar a depender de un proveedor externo, lo que puede limitar la flexibilidad y la innovación. Los proveedores externos serán, probablemente, grandes compañías como Microsoft, Google, Amazon, IBM… que pueden monopolizar el mercado. Por otra parte, aunque no es enormemente amplia, hay una oferta variada de servicios cloud, sin que se hayan  estandarizado APIs comunes. El esfuerzo de preparar una aplicación para una plataforma puede ser inútil si decidimos (por coste, rendimiento, o seguridad) cambiarnos a otra.
  • Hay quien dice que este uso de los supercomputadores (super-clusters) es un regreso a los entornos pre-PC, a la informática centralizada que limita el potencial de los usuarios: sólo se puede hacer lo que algunos han decidido que está permitido. En particular, perdemos capacidad de seleccionar las aplicaciones a emplear, y las prestaciones de las mismas – más allá de la oferta del proveedor. Tampoco tenemos control sobre el rendimiento real de las aplicaciones, que puede depender tanto del proveedor de comunicaciones como del proveedor de servicios. El establecimiento y vigilancia de los acuerdos de nivel de servicio (SLAs) es fundamental.
  • La seguridad, en todos sus aspectos, puede ser un problema muy serio. No está del todo claro qué puede pasar con datos externalizados, en términos de confidencialidad, disponibilidad y tolerancia a fallos de datos y aplicaciones. ¿Cómo se evitan accesos no autorizados? ¿De quién son los datos? Si los datos están en el extranjero, ¿a qué política de protección / publicidad de datos se adhieren? ¿Qué pasa si el servidor remoto falla? ¿Hay vía de acceso alternativa? ¿Qué pasa si me bloquean la cuenta? ¿Pierdo mis datos? Muchos de estos temas tienen que quedar claramente escritos en un acuerdo de nivel de servicio (SLA) entre el proveedor y el cliente que ofrezca a este último suficientes garantías, así como compensaciones en caso de falta de cumplimiento. La confianza en los proveedores es fundamental, y el mercado es aún demasiado joven para que se la hayan ganado.

Ventajas y desventajas del Cloud Computing

Ventajas

  • Menor gasto en computadores. No es necesario que los computadores que hagan de terminal de aplicaciones web sean de gran potencia (y precio). Pueden ser pequeños, de bajo consumo, sin disco duro… Ni siquiera se necesita una unidadCD/DVD porque no se van a instalar programas, ni hay que salvaguardar datos.
  • Aumento del rendimiento. Puesto que no hay muchos programas instalados en el
    ordenador de escritorio, el rendimiento no se verá afectado. En particular, el
    procedimiento de puesta en marcha de un nuevo terminal es rápido, y el
    encendido / apagado también.
  • Reducción en costes de software. En vez de adquirir costosas licencias, se dispone de todo tipo de aplicaciones gratuitas o a bajo coste. Esa es la realidad hoy en día: buena parte de las aplicaciones web disponibles (como la suite Google Docs) son totalmente gratuitas. Obviamente, esto es mucho más económico que pagar más de 100€ por licencia de Microsoft Office. Este aspecto puede, por sí mismo, justificar el paso a sistemas cloud.
  • Actualizaciones de software instantáneas. Los cambios de versión / parcheos pasan “en la nube”. Al conectarnos desde el navegador ya estamos usando la versión nueva. No hay que descargar, ni instalar nada. No es necesario valorar si seguir con software antiguo o sufrir los costes de actualización.
  • Aumenta la compatibilidad de formatos. En teoría, no van a aparecer los problemas derivados del uso de formatos incompatibles derivados del uso de diferentes versiones (Word 2003 vs. Word 2007, por ejemplo). Y, aunque la existiera, es sencillo acceder a versiones anteriores de un programa – mientras que en programas instalados en un PC no es tan fácil.
  • Capacidad del almacenamiento ilimitada. Aunque hoy en día los discos locales de 1 TB nos parecen enormes, enseguida se quedan pequeños. Los sistemas de almacenamiento cloud ofrecen capacidad virtualmente sin límite: puedes almacenar todo lo que quieras.
  • Aumenta la fiabilidad del almacenamiento. No pasa nada si se rompe un disco duro; desde luego, no pasa nada si el disco es local. Los proveedores incorporan mecanismos de tolerancia a fallos basada en réplicas. Una gran ventaja en un mundo en el que pocos usuarios hacen copias de seguridad de sus datos.
  • Acceso universal a los datos / documentos. Esto no es problema con cloud computing, porque no hace falta que lleves los documentos contigo: un ordenador con conexión a Internet es suficiente para acceder a ellos, todos tus documentos están disponibles allí donde te encuentres.
  • Disponibilidad de la última versión. Cuando editamos un documento en casa, la versión editada es la que te encuentras al día siguiente en el trabajo. En la red siempre se almacena la última versión. Mientras estés conectado, no hay riesgo de trabajar con una versión antigua. Algunas aplicaciones permiten el trabajo off-line, que se sincroniza en cuanto se recupere la conexión.
  • Simplificación de la colaboración en grupo. La colaboración es más sencilla cuando se pueden compartir fácilmente los documentos vía red. Se puede colaborar en la edición / preparación de documentos y proyectos. Dado que los documentos se encuentran albergados en la nube, para colaborar sólo se necesita una conexión a Internet.
  • Independencia del terminal. No quedas ligado a un computador (o servidor de red). Siempre tienes a mano la última versión de tu puesto de trabajo / aplicación / documento. Incluso puedes cambiar a un dispositivo portátil, y sigues teniendo todo accesible.
Desventajas
  • Requiere conexión permanente a Internet. De otra manera, las aplicaciones no están accesibles, ni tampoco los documentos. Un día sin conexión es un día sin poder trabajar. Por lo tanto, no es una tecnología viable allí donde las conexiones a Internet no están garantizadas.
  • Requiere conexiones fiables y de banda ancha. No funciona bien con conexiones lentas o poco fiables, porque la experiencia del usuario puede ser desagradable – hasta el punto de hacer el trabajo inviable. La descarga de aplicaciones, documentos, refrescos de pantalla, etc. requiere un gran ancho de banda, y no es aceptable que el cambio de una página, o la carga de un documento, tarde varios minutos.
  • Puede resultar lento. Incluso con conexiones rápidas a Internet, la interacción con el usuario puede ser bastante más lenta en el caso de aplicaciones web, comparadas con las aplicaciones de escritorio. Todo el programa, incluyendo la interfaz y el documento, tiene que ser constantemente intercambiado entre el terminal y el servidor en la nube. Si el servidor está más cargado de lo esperado, o la red tiene un mal momento, la experiencia del usuario puede ser desagradable.
  • Las características del sistema pueden ser limitadas. Las cosas cambiarán en el futuro, pero de momento muchas aplicaciones basadas en la web ofrecen menos características que las aplicaciones instaladas en ordenadores locales. Por ejemplo, se pueden hacer muchas más cosas con PowerPoint que con Google Presentations: con esta última se dispone de lo más básico, pero faltan características avanzadas. Hoy por hoy, para los usuarios sofisticados, las versiones web de las aplicaciones no están a la altura de sus expectativas, lo que puede hacer que no quieran pasarse a ellas.
  • Los datos almacenados pueden no estar seguros. Todos los datos están en la nube pero, ¿cómo es de segura la nube? ¿Pueden acceder a mis datos usuarios no autorizados? Los proveedores dicen que nos fiemos de sus mecanismos de control de acceso, que los datos están seguros, pero es demasiado pronto para saber si es cierto o no.
  • Podemos perder los datos. En teoría, los datos en la nube están a salvo, replicados en distintas máquinas. Pero si por cualquier razón se pierden, no hay copia local. En definitiva, si te fías de la nube, esta puede fallarte – y hay pruebas de que en ocasiones lo hace.
  • Sistemas HPC. No está claro que se puedan ejecutar aplicaciones intensivas en cómputo que usen MPI/OpenMP, aunque hay esfuerzos en esta dirección (los investigadores computacionales siempre están a la búsqueda de potencia de cálculo adicional). La planificación es importante en estos contextos: necesitamos que las máquinas virtuales asignadas estén juntas, para minimizar latencias en las comunicaciones.
  • Falta de estándares que garanticen la interoperabilidad. Cada sistema usa diferentes protocolos y APIs, luego puede no ser posible la portabilidad entre plataformas. Por ejemplo, Amazon ha creado su propio SGBD, no compatible con SQL 92, así como su propio sistema de “workflow” (uno más). Esto requiere la adaptación de las aplicaciones existentes – adaptación que puede no servir para otras plataformas cloud.

Proyectos de interés

  • Sistemas open-source privadas/públicas/mixtas
  1. Nimbus
  2. Opennebula

Comentarios finales

Para muchos, el cloud computing es una vuelta a la informática centralizada. Es cierto
que hay mucho de eso, pero con importantes novedades: el uso intensivo de la
virtualización, el acceso universal a través de Internet, la elasticidad en cuanto a
capacidades y costes… Las grandes empresas irán adoptando soluciones internas
basadas con conceptos de cloud computing. Para las PYMES, esto puede ser una
revolución, al poder poner en marcha servicios altamente escalables con unos costes
iniciales mínimos. El paso de los años nos irá mostrando hasta qué punto el cloud
computing viene para quedarse, o es simplemente humo.
De momento, se ven muchas iniciativas interesantes. Buena parte de ellas, ligadas a la
computación móvil. Por ejemplo, Palm Inc. ofrece un servicio de cloud computing
asociado a su modelo de smartphone Palm Pre. Todos los datos relevantes del usuario
están “en la nube” y se sincronizan automáticamente con su terminal. También veremos
algunos problemas, como el descrito en este artículo (http://www.elpais.com/articulo/tecnologia/Microsoft/recupera/datos/perdidos/smartpho
ne/Sidekick/elpeputec/20091016elpeputec_1/Tes) donde se ve que confiar demasiado
en los servicios cloud puede hacer que nuestros datos (y los de otro millón de usuarios)
desaparezcan.

El siguiente artículo también sirve para tener una idea de lo que se está moviendo en el ámbito del cloud computing, por parte de los gigantes del sector: http://www.elpais.com/articulo/tecnologia/Microsoft/HP/crean/sociedad/ofrecer/comput
acion/nube/elpeputec/20100114elpeputec_3/Tes







Anuncios

Acerca de mitch

Quiero compartir mis experiencias y mis humildes conocimientos
Esta entrada fue publicada en cloud computing, Redes. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s