# Computación en la nube

La computación en la nube (del inglés cloud computing), conocida también como servicios en la nube, informática en la nube, nube de cómputo o simplemente «la nube», es el uso de una red de servidores remotos conectados a internet para almacenar, administrar y procesar datos, servidores, bases de datos, redes y software. En lugar de depender de un servicio físico instalado, se tiene acceso a una estructura donde el software y el hardware están virtualmente integrados.

## Introducción

La computación en la nube es la disponibilidad a pedido de los recursos del sistema informático, especialmente el almacenamiento de datos y la capacidad de cómputo, sin una gestión activa directa por parte del usuario. El término se usa generalmente para describir los centros de datos disponibles desde cualquier lugar para muchos usuarios a través de Internet desde cualquier dispositivo móvil o fijo.
A menudo, el término «computación en la nube» se lo relaciona con una reducción de costos, disminución de vulnerabilidades y garantía de disponibilidad. Asimismo, la computación en la nube se la relaciona con un modelo de pago por uso. No obstante, el concepto de pago no puede ser solo relacionado con erogación económica dado que solo se aplica en caso de proveedores externos y, en muchos casos, hace referencia a poder medir el consumo que se imputa a los diferentes centros de costos de la propia empresa.
La computación en la nube es un nuevo modelo de prestación de servicios tecnológicos que impacta, sin lugar a dudas, en diversos negocios. Este modelo se apoya en infraestructuras tecnológicas dinámicas, caracterizadas por la virtualización de recursos, un alto grado de automatización y una elevada capacidad de adaptación para atender demandas variables.
El concepto de «nube informática» es muy amplio, y abarca casi todos los posibles tipo de servicio en línea, pero cuando las empresas predican ofrecer un utilitario alojado en la nube, por lo general se refieren a alguna de estas tres modalidades: el software como servicio (SaaS, por sus siglas en inglés), plataforma como servicio (PaaS) e infraestructura como servicio (IaaS).
El software como servicio es un modelo de distribución de software en el que las aplicaciones están alojadas por una compañía o proveedor de servicio y puestas a disposición de los usuarios a través de una red, generalmente internet. La plataforma como servicio es un conjunto de utilitarios para abastecer al usuario de sistemas operativos y servicios asociados a través de Internet sin necesidad de descargas o instalación alguna. Infraestructura como servicio se refiere a la externalización de los equipos utilizados para apoyar las operaciones, incluido el almacenamiento, hardware, servidores y componentes de red.

## Comienzos

El concepto de la computación en la nube empezó en proveedores de servicio de Internet a gran escala, como Google (Google Cloud Services), Amazon AWS (2006), Microsoft (Microsoft Azure) o Alibaba Cloud y otros que construyeron su propia infraestructura. De entre todos ellos emergió una arquitectura: un sistema de recursos distribuidos horizontalmente, introducidos como servicios virtuales de TI escalados masivamente y manejados como recursos configurados y mancomunados de manera continua. Este modelo de arquitectura fue inmortalizado por George Gilder en su artículo de octubre de 2006 en la revista Wired titulado Las fábricas de información. Las granjas de servidores, sobre las que escribió Gilder, eran similares en su arquitectura a la computación en malla, pero mientras que las redes se utilizan para aplicaciones de procesamiento técnico débilmente acoplados, un sistema compuesto de subsistemas con cierta autonomía de acción, que mantienen una interrelación continua entre ellos, este nuevo modelo de nube se estaba aplicando a los servicios de internet.

## Fundamentos

El concepto fundamental de la entrega de los recursos informáticos a través de una red global tiene sus raíces en los años sesenta. La idea de una «red de computadoras intergaláctica» la introdujo en los años sesenta JCR Licklider, cuya visión era que todo el mundo pudiese estar interconectado y poder acceder a los programas y datos desde cualquier lugar. Según Margaret Lewis, directora de mercadotecnia de producto de AMD, «es una visión que se parece mucho a lo que llamamos computación en la nube».
Otros expertos atribuyen el concepto científico de la computación en nube a John McCarthy, quien propuso la idea de la computación como un servicio público, de forma similar a las empresas de servicios que se remontan a los años sesenta. En 1960 dijo: «algún día la computación podrá ser organizada como un servicio público».
Desde los años sesenta, la computación en la nube se ha desarrollado a lo largo de una serie de líneas. La Web 2.0 es la evolución más reciente. Sin embargo, como Internet no empezó a ofrecer ancho de banda significativo hasta los años noventa, la computación en la nube ha sufrido algo así como un desarrollo tardío. Uno de los primeros hitos de la computación en nube es la llegada de Salesforce.com en 1999, que fue pionera en el concepto de la entrega de aplicaciones empresariales a través de una página web simple. La firma de servicios allanó el camino para que tanto especialistas como empresas tradicionales de software pudiesen publicar sus aplicaciones a través de Internet.
El siguiente desarrollo fue Amazon Web Services en 2002, que prevé un conjunto de servicios basados en la nube, incluyendo almacenamiento, computación e incluso la inteligencia humana a través del Amazon Mechanical Turk. Posteriormente en 2006, Amazon lanzó su Elastic Compute Cloud (EC2) como un servicio comercial que permite a las pequeñas empresas y los particulares alquilar equipos en los que se ejecuten sus propias aplicaciones informáticas.
«Amazon EC2/S3 fue la primera que ofreció servicios de infraestructura en la nube totalmente accesibles», según Jeremy Allaire, CEO de Brightcove, que proporciona su plataforma SaaS de vídeo en línea a las estaciones de televisión de Reino Unido y periódicos.
George Gilder dijo en 2006: "El PC de escritorio está muerto. Bienvenido a la nube de Internet, donde un número enorme de instalaciones en todo el planeta almacenarán todos los datos que usted podrá usar alguna vez en su vida".
Otro hito importante se produjo en 2009, cuando Google y otros empezaron a ofrecer aplicaciones basadas en navegador. «La contribución más importante a la computación en nube ha sido la aparición de "aplicaciones asesinas" de los gigantes de tecnología como Microsoft y Google. Cuando dichas compañías llevan a cabo sus servicios de una manera que resulta segura y sencilla para el consumidor, el efecto "pasar la pelota" en sí crea un sentimiento de mayor aceptación de los servicios online», según Dan Germain, jefe de la oficina de tecnología en IT proveedor de servicios Cobweb Solutions.
Otro de los factores clave que han permitido evolucionar a la computación en la nube han sido, según el pionero en computación en la nube británico Jamie Turner, las tecnologías de virtualización, el desarrollo del universal de alta velocidad de ancho de banda y normas universales de interoperabilidad de software. Turner añadió: «A medida que la computación en nube se extiende, su alcance va más allá de un puñado de usuarios de Google Docs. Solo podemos empezar a imaginar su ámbito de aplicación y alcance. Casi cualquier cosa puede ser utilizada en la nube».

## Características

Existen varias características de la computación en la nube, y según el autor o la fuente pueden variar. Por ejemplo la NIST especifica que existen características esenciales de una nube:
* Autoservicio bajo demanda: un consumidor puede aprovisionar por sus propios medios capacidades informáticas, como cómputo, almacenamiento y redes, en forma automática sin requerir la interacción humana del proveedor de servicios.
* Acceso amplio y ubícuo a toda la red: todas las capacidades están disponibles a través de la red y se accede a ellas a través de mecanismos estándares y plataformas heterogéneas como por ejemplo: teléfonos móviles, tabletas, computadoras portátiles y estaciones de trabajo.
* Ubicación transparente y agrupación de recursos: los recursos informáticos del proveedor de servicios se agrupan para brindar servicio a múltiples consumidores, con diferentes recursos físicos virtualizados que se asignan y reasignan dinámicamente de acuerdo con la demanda. Existe una sensación de independencia de ubicación en el sentido de que el cliente generalmente no tiene control o conocimiento sobre la ubicación exacta de los recursos proporcionados, pero puede especificar la ubicación en un nivel más alto de abstracción (por ejemplo, país, estado o centro de datos). Ejemplos de recursos: almacenamiento, procesamiento, memoria y ancho de banda de red.
* Rápida elasticidad: los recursos se pueden aprovisionar y liberar rápidamente según la demanda. Para el consumidor, las capacidades disponibles para el aprovisionamiento a menudo parecen ser ilimitadas y pueden ser apropiadas en cualquier cantidad en cualquier momento.
* Servicio medido: quizás una de las características determinantes. Los sistemas en la nube tienen mecanismos de medición en alguno de los niveles de abstracción para el tipo de servicio (por ejemplo, almacenamiento, procesamiento, ancho de banda y cuentas de usuario activas). El uso de los recursos se puede monitorear, controlar e informar, proporcionando transparencia tanto para el proveedor como para el consumidor del servicio utilizado. A veces esta posibilidad de medición deriva en una cobranza por parte del proveedor hacia el cliente según el uso final. En otros casos, el servicio medido sirve para alocar un valor referencial a un centro de costos, bajo una medida pre-acordada.
En un sentido más ampliado y basándose en varias fuentes, la computación en la nube presenta las siguientes características clave:
* Autorreparable: en caso de desperfecto, los proveedores posibilitan procesos de respaldo de información, que consiste en crear una copia de seguridad automática de la última reservación de datos, por lo tanto, es prácticamente imposible que exista una pérdida de información.
* Agilidad: capacidad de mejora para ofrecer recursos tecnológicos al usuario por parte del proveedor.
* Costo: los recursos en la nube suelen tener costos menores a los que un aprovisionamiento físico local podría representar. Generalmente, la inversión inicial que representaría tener un aprovisionamiento local se ve anulada debido a la naturaleza bajo demanda de la nube.
* Escalabilidad y elasticidad: aprovisionamiento de recursos sobre una base de autoservicio casi en tiempo real, sin que los usuarios necesiten cargas de alta duración.
* Independencia entre el dispositivo y la ubicación: permite a los usuarios acceder a los sistemas utilizando un navegador web, independientemente de su ubicación o del dispositivo que utilice (por ejemplo, PC, teléfono móvil).
* Virtualización: la tecnología de virtualización permite compartir servidores y dispositivos de almacenamiento y una mayor utilización. Las aplicaciones pueden ser fácilmente migradas de un servidor físico a otro. El usuario posee la libertad de manejar la plataforma que considere necesaria y en cualquier sistema operativo, ya sea Windows, Unix o Mac, entre otros; y si utiliza alguna de las aplicaciones informáticas de la nube, su trabajo se verá afectado en lo mínimo posible; en otras palabras, mantiene las mismas características.
* Disponibilidad de la información: el usuario no tendrá inconvenientes para acceder a la información, debido a que esta permanecerá en Internet y su acceso se permite desde cualquier dispositivo conectado en la red (previa autorización); de manera que no es necesario almacenar copias de documentos en dispositivos de almacenamiento físico.
* Rendimiento: los sistemas en la nube controlan y optimizan el uso de los recursos de manera automática, dicha característica permite un seguimiento, control y notificación del mismo. Esta capacidad aporta transparencia tanto para el consumidor o el proveedor de servicio.
* Seguridad: puede mejorar debido a la centralización de los datos. La seguridad es a menudo tan buena o mejor que otros sistemas tradicionales, en parte porque los proveedores son capaces de dedicar recursos a la solución de los problemas de seguridad que muchos clientes no pueden permitirse el lujo de abordar. El usuario de la nube es responsable de la seguridad a nivel de aplicación. El proveedor de la nube es responsable de la seguridad física.
* Mantenimiento: en el caso de las aplicaciones de computación en la nube, es más sencillo, ya que no necesitan ser instalados en el ordenador de cada usuario y se puede acceder desde diferentes lugares.

## Métodos de entrega

La computación en la nube establece su arquitectura a partir de una fragmentación entre aplicación informática, plataforma y hardware, dando como resultado según NIST los siguientes métodos de entrega: software como servicio, plataforma como servicio e infraestructura como servicio.

### Software como servicio (SaaS)

El software como servicio se encuentra en la capa más alta y caracteriza una aplicación completa ofrecida como un servicio bajo demanda a través de multitenencia —una sola instancia del software que corre en la infraestructura del proveedor sirve a múltiples organizaciones de clientes—. Las aplicaciones que suministran este modelo de servicio son accesibles a través de un navegador web —o de cualquier aplicación diseñada para tal efecto— y el usuario no tiene control sobre ellas, aunque en algunos casos se le permite realizar algunas configuraciones. Esto le elimina la necesidad al cliente de instalar la aplicación en sus propios computadores, evitando asumir los costos de soporte y el mantenimiento de hardware y software.

### Plataforma como servicio (PaaS)

La capa del medio, la plataforma como servicio, es la encapsulación de una abstracción de un ambiente de desarrollo y el empaquetamiento de una serie de módulos o complementos que proporcionan, normalmente, una funcionalidad horizontal (persistencia de datos, autenticación, mensajería, etc.). De esta forma, un arquetipo de plataforma como servicio podría consistir en un entorno conteniendo una pila básica de sistemas, componentes o APIs preconfiguradas y listas para integrarse sobre una tecnología concreta de desarrollo (por ejemplo, un sistema Linux, un servidor web, y un ambiente de programación como Perl o Ruby). Las ofertas de plataformas como servicio pueden servir a todas las fases del ciclo de desarrollo y pruebas del software, o pueden estar especializadas en cualquier área en particular, tal como la administración del contenido. PaaS simplifica la experiencia del usuario al minimizar la gestión técnica, permitiendo a los usuarios concentrarse en sus aplicaciones sin preocuparse por el control de red, servidores, sistema operativo o almacenamiento.
Ejemplos comerciales son Google App Engine, que sirve aplicaciones de la infraestructura Google; Microsoft Azure, una plataforma en la nube que permite el desarrollo y ejecución de aplicaciones codificadas en varios lenguajes y tecnologías como .NET, Java, Go y PHP o la Plataforma G, desarrollada en Perl. Servicios PaaS como estos permiten gran flexibilidad, pero puede ser restringida por las capacidades disponibles a través del proveedor. En este modelo de servicio al usuario se le ofrece la plataforma de desarrollo y las herramientas de programación por lo que puede desarrollar aplicaciones propias y controlar la aplicación, pero no controla la infraestructura.

### Infraestructura como servicio (IaaS)

La infraestructura como servicio —también llamada en algunos casos hardware as a service, HaaS)— se encuentra en la capa inferior y es un medio de entregar almacenamiento básico y capacidades de cómputo como servicios estandarizados en la red. Servidores, sistemas de almacenamiento, conexiones, enrutadores, y otros sistemas se concentran (por ejemplo a través de la tecnología de virtualización) para manejar tipos específicos de cargas de trabajo —desde procesamiento en lotes (“batch”) hasta aumento de servidor/almacenamiento durante las cargas pico—. El ejemplo comercial mejor conocido es Amazon Web Services, cuyos servicios EC2 y S3 ofrecen cómputo y servicios de almacenamiento esenciales (respectivamente). Otro ejemplo es Joyent, cuyo producto principal es una línea de servidores virtualizados, que proveen una infraestructura en demanda altamente escalable para manejar sitios web, incluidas aplicaciones web complejas escritas en Python, Ruby, PHP y Java.

### Tipos de PaaS
#### Públicos, privados e híbridos

Existen varios tipos de plataformas como servicio, incluyendo públicos, privados e híbridos. Paas fue originalmente pensado para las nubes públicas, antes de expandirse a las privadas e híbridas. Los PaaS públicos son derivados de los software como servicio y está situado entre esta y la infraestructura como servicio.
Los PaaS privados son comúnmente descargados e instalados desde una infraestructura local de una empresa, o desde una nube pública. Una vez que el software se instala en una o más máquinas, el PaaS privado organiza la aplicación y los componentes de la base de datos en una sola plataforma para el alojamiento. Entre los proveedores de PaaS se encuentran Apprenda, que comenzó en la plataforma Microsoft .NET; OpenShift, de Red Hat y su Cloud Foundry Pivotal. Apprenda y Microsoft eran consideradas las dos únicas PaaS que proveían soporte .NET superior. Ahora acompañadas por la anunciada asociación entre Microsoft e IBM
Un PaaS híbrido es típicamente un despliegue consistente en una mezcla de despliegues públicos y privados. Un ejemplo aquí es IBM Bluemix que se entrega como una sola plataforma de nube integrada a través de modelos de despliegue público, dedicado y local.

#### Mobile PaaS

Iniciado en 2012, mobile PaaS (mPaaS) proporciona capacidades de desarrollo para diseñadores y desarrolladores de aplicaciones móviles. El Yankee Group identificó a mPaas como uno de sus temas para 2014, nombrando a varios proveedores incluyendo Kinvey, CloudMine, AnyPresence, FeedHenry, FatFractal y Point.io.

#### PaaS Abierto

PaaS abierto no incluye alojamiento, sino que proporciona software de código abierto que permite a un proveedor PaaS ejecutar aplicaciones en un entorno de código abierto. Por ejemplo, AppScale permite a un usuario desplegar algunas aplicaciones escritas para Google App Engine a sus propios servidores, proporcionando acceso a almacén de datos desde una base de datos SQL o NoSQL estándar. Algunas plataformas abiertas permiten al desarrollador utilizar cualquier lenguaje de programación, base de datos, sistema operativo o servidor para implementar sus aplicaciones.

#### PaaS para el desarrollo rápido

En 2014, Forrester Research definió Plataformas empresariales públicas para desarrolladores rápidos como una tendencia emergente, nombrando a varios proveedores incluyendo a Mendix, Salesforce.com, OutSystems y Acquia Acquia.

#### Ventajas y desventajas

Las ventajas de las plataformas como servicio son que permite niveles más altos de programación con una complejidad extremadamente reducida; el desarrollo general de la aplicación puede ser más eficaz, ya que se tiene una infraestructura integrada; y el mantenimiento y mejora de la aplicación es más sencillo También puede ser útil en situaciones en las que varios desarrolladores están trabajando en un mismo proyecto y que implican a partes que no están ubicadas cerca unas de otras. Pueden aportar nuevas características sin la necesidad de incorporar más personal. Se ofrecen opciones de desarrollo en varias plataformas para el manejo de diferentes aplicaciones. Es posible colaborar en proyectos donde los miembros del equipo estén en lugares diferentes, ya que se accede a través de Internet al entorno de desarrollo. Gracias a las plataformas como servicio, se puede administrar el ciclo de vida de las aplicaciones web con eficacia.
Una desventaja de las plataformas como servicio es que es posible que los desarrolladores no pueden utilizar todas las herramientas convencionales (bases de datos relacionales, p. ej. con uniones [sentencias join] no restringidas). Otra posible desventaja es estar cerrado en una cierta plataforma. Sin embargo, la mayoría de las plataformas como servicio están relativamente libres.

## Modelos de Implementación

Según NIST podemos identificar los siguientes modelos de implementación:
* Una nube pública es una nube computacional mantenida y gestionada por terceras personas no vinculadas con la organización. En este tipo de nubes tanto los datos como los procesos de varios clientes se mezclan en los servidores, sistemas de almacenamiento y otras infraestructuras de la nube. Los usuarios finales de la nube no conocen qué trabajos de otros clientes pueden estar corriendo en el mismo servidor, red, sistemas de almacenamiento, etc. Aplicaciones, almacenamiento y otros recursos están disponibles al público a través del proveedor de servicios, que es propietario de toda la infraestructura en sus centros de datos; el acceso a los servicios solo se ofrece de manera remota, normalmente a través de internet.
Dentro de estas nubes podemos encontrar englobadas las nube privada virtual, consideradas como nubes de dominio público pero que mejoran la seguridad de los datos. Estos datos se encriptan a través de la implantación de una VPN. Algunas grandes empresas como Amazon ya permiten aprovisionar una sección de su AWS con esta posibilidad VPN.
* Las nubes privadas son una buena opción para las compañías que necesitan alta protección de datos y ediciones a nivel de servicio. Las nubes privadas están en una infraestructura bajo demanda, gestionada para un solo cliente que controla qué aplicaciones debe ejecutarse y dónde. Son propietarios del servidor, red, y disco y pueden decidir qué usuarios están autorizados a utilizar la infraestructura. Al administrar internamente estos servicios, las empresas tienen la ventaja de mantener la privacidad de su información y permitir unificar el acceso a las aplicaciones corporativas de sus usuarios.
* Las nubes híbridas combinan los modelos de nubes públicas y privadas. Un usuario es propietario de unas partes y comparte otras, aunque de una manera controlada. Las nubes híbridas ofrecen la promesa del escalado, aprovisionada externamente, a demanda, pero añaden la complejidad de determinar cómo distribuir las aplicaciones a través de estos ambientes diferentes. Las empresas pueden sentir cierta atracción por la promesa de una nube híbrida, pero esta opción, al menos inicialmente, estará probablemente reservada a aplicaciones simples sin condicionantes, que no requieran de ninguna sincronización o necesiten bases de datos complejas. Se unen mediante la tecnología, pues permiten enviar datos o aplicaciones entre ellas. Un ejemplo son los sistemas de correo electrónico empresarial.
* Nube comunitaria. De acuerdo con Joyanes Aguilar en 2012, el Instituto Nacional de Estándares y Tecnología (NIST, por sus siglas en inglés) define este modelo como aquel que se organiza con la finalidad de servir a una función o propósito común (seguridad, política…), las cuales son administradas por las organizaciones constituyentes o terceras partes.
Adicionalmente podemos identificar un modelo que cada vez tienen más presencia en el mercado:
* Modelo multinube. Este tipo de nube es un enfoque en el que se combina más de un servicio de nube formada, por lo menos, de dos proveedores de nube pública o privada. Surge por una mayor expansión de las organizaciones, de manera que las empresas, al aumentar sus servicios, obtienen un mayor número de clientes que, a su vez, demandan nuevas aplicaciones que satisfacen sus necesidades.
El uso de las multinubes presenta una serie de ventajas como: mayor rendimiento, en el caso de fallar alguna nube se puede operar con otras; la transferencia de datos se realiza a través de varias plataformas, acelerando tal operación; la seguridad es mayor ya que se pueden utilizar varios hosts, los costes se reducen y permiten la difusión con las regulaciones de diferentes países.
La multinube puede confundirse con nube híbrida. Su principal diferencia es que la multinube combina servicios de diferentes proveedores no conectados entre sí y la nube híbrida es una mezcla de nube privada local y nube pública de terceros pero conectados entre ellos.

## Ventajas y desventajas de la computación en la nube
### Ventajas

Las principales ventajas de la computación en la nube son:
* Integración probada de servicios Red. Por su naturaleza, la tecnología de computación en nube se puede integrar con mucha mayor facilidad y rapidez con el resto de las aplicaciones empresariales (tanto software tradicional como Cloud Computing basado en infraestructuras), ya sean desarrolladas de manera interna o externa.
* Prestación de servicios a nivel mundial. Las infraestructuras de cloud computing proporcionan mayor capacidad de adaptación, recuperación completa de pérdida de datos (con copias de seguridad) y reducción al mínimo de los tiempos de inactividad.
* Una infraestructura 100 % de computación en la nube permite también al proveedor de contenidos o servicios en la nube prescindir de instalar cualquier tipo de software, ya que este es provisto por el proveedor de la infraestructura o la plataforma en la nube. Un gran beneficio del esta computación es la simplicidad y el hecho de que requiera mucha menor inversión para empezar a trabajar.
* Portabilidad de la información: en sus inicios, los proveedores de almacenamiento en la nube canalizaban sus servicios a usuarios corporativos, sin embargo, actualmente los usuarios particulares se han familiarizado con la computación en la nube y son quienes los utilizan con mayor frecuencia en teléfonos inteligentes y tabletas, entre otros.
* Implementación más rápida y con menos riesgos, ya que se comienza a trabajar más rápido y no es necesaria una gran inversión. Las aplicaciones del computación en la nube suelen estar disponibles en cuestión de días u horas en lugar de semanas o meses, incluso con un nivel considerable de personalización o integración.
* Actualizaciones automáticas que no afectan negativamente a los recursos de TI. Al actualizar a la última versión de las aplicaciones, el usuario se ve obligado a dedicar tiempo y recursos para volver a personalizar e integrar la aplicación. Con la computación en la nube no hay que decidir entre actualizar y conservar el trabajo, dado que esas personalizaciones e integraciones se conservan automáticamente durante la actualización.
* Contribuye al uso eficiente de la energía. En este caso, a la energía requerida para el funcionamiento de la infraestructura. En los centros de datos tradicionales, los servidores consumen mucha más energía de la requerida realmente. En cambio, en las nubes, la energía consumida es solo la necesaria, reduciendo notablemente el desperdicio.

### Desventajas

Las desventajas de la computación en la nube, generalmente, se encuentran relacionadas con la confiabilidad, disponibilidad de los servicios, acceso, seguridad y, sobre todo, con el almacenamiento. A continuación se detallan:
* La centralización de las aplicaciones y el almacenamiento de los datos origina una interdependencia de los proveedores de servicios.
* La disponibilidad de las aplicaciones está sujeta a la disponibilidad de acceso a Internet.
* La confiabilidad de los servicios depende de la "salud" tecnológica y financiera de los proveedores de servicios en nube. Empresas emergentes o alianzas entre empresas podrían crear un ambiente propicio para el monopolio y el crecimiento exagerado en los servicios.
* La disponibilidad de servicios altamente especializados podría tardar meses o incluso años para que sean factibles de ser desplegados en la red.
* La madurez funcional de las aplicaciones hace que continuamente estén modificando sus interfaces, por lo cual la curva de aprendizaje en empresas de orientación no tecnológica tenga unas pendientes significativas, así como su consumo automático por aplicaciones.
* Seguridad. La información de la empresa debe recorrer diferentes modos para llegar a su destino, cada uno de ellos (y sus canales) son un foco de inseguridad. Si se utilizan protocolos seguros, HTTPS por ejemplo, la velocidad total disminuye debido a la sobrecarga que estos requieren.
* Escalabilidad a largo plazo. A medida que más usuarios empiecen a compartir la infraestructura de la nube, la sobrecarga en los servidores de los proveedores aumentará, si la empresa no posee un esquema de crecimiento óptimo puede llevar a degradaciones en el servicio o altos niveles de fluctuación de retardo (jitter).

## Comparaciones

La computación en la nube usualmente se confunde con la computación en malla (una forma de computación distribuida por la que "un supercomputador virtual" está compuesto de un conjunto o clúster enlazado de ordenadores débilmente acoplados, que funcionan en concierto para realizar tareas muy grandes).

## Controversia

Dado que la computación en nube no permite a los usuarios poseer físicamente los dispositivos de almacenamiento de sus datos (con la excepción de la posibilidad de copiar los datos a un dispositivo de almacenamiento externo, como una unidad flash USB o un disco duro), deja la responsabilidad del almacenamiento de datos y su control en manos del proveedor.
La computación en nube ha sido criticada por limitar la libertad de los usuarios y hacerlos dependientes del proveedor de servicios. Algunos críticos afirman que solo es posible usar las aplicaciones y servicios que el proveedor esté dispuesto a ofrecer. Así, The Times compara la computación en nube con los sistemas centralizados de los años 50 y 60, en los que los usuarios se conectaban a través de terminales "gregarios" con ordenadores centrales. Generalmente, los usuarios no tenían libertad para instalar nuevas aplicaciones, y necesitaban la aprobación de administradores para desempeñar determinadas tareas. En suma, se limitaba tanto la libertad como la creatividad. El Times argumenta que la computación en nube es un retorno a esa época y numerosos expertos respaldan la teoría.
De forma similar, Richard Stallman, fundador de la Free Software Foundation, cree que la computación en nube pone en peligro las libertades de los usuarios, porque estos dejan su privacidad y datos personales en manos de terceros. Ha afirmado que la computación en nube es «simplemente una trampa destinada a obligar a más gente a adquirir sistemas propietarios, bloqueados, que les costarán cada vez más conforme pase el tiempo».

## Aspectos de seguridad

La seguridad en la computación en la nube puede ser tan buena o mejor que la que existía en los sistemas tradicionales, porque los proveedores son capaces de proporcionar recursos que resuelvan problemas de seguridad que muchos clientes no pueden afrontar. Sin embargo, la seguridad todavía sigue siendo un asunto importante, cuando los datos tienen un matiz confidencial. Esto atrasa la adopción de la computación en la nube hasta cierto punto.

### Seguridad como servicio

En el entorno de la nube, la seguridad es provista por los proveedores. Se pueden distinguir dos métodos: El primer método, es que cualquiera puede cambiar sus métodos de entrega incluidos en los servicios de la nube. El segundo método es que los proveedores de servicio de la nube proveen seguridad solo como servicio en la nube, con información de seguridad de las compañías. Los servicios de seguridad están clasificados en categorías, según la organización Cloud Security Alliance:
* Gestión de identidades y acceso
* Prevención de pérdida de datos
* Seguridad en la web
* Seguridad para el correo electrónico
* Evaluación de la seguridad
* Gestión de instrucciones
* Seguridad de la información y gestión de eventos
* Cifrado
* Continuidad del negocio y recuperación de desastres
* Red de seguridad

### Seguridad del navegador

En el entorno de la nube, los servidores remotos son usados para la computación. Los nodos del cliente se usan solo para entrada/salida de operaciones, y para la autorización y autenticación de la información en la nube. Un navegador web estándar es una plataforma normalmente utilizada para todos los usuarios del mundo. Esto puede ser catalogado en dos tipos diferentes: software como servicio, aplicaciones web, o Web 2.0. La seguridad en la capa de transporte (TLS) se suele emplear para la encriptación de datos y la autentificación del equipo anfitrión.

### Autenticación o identificación

En el entorno de la nube, la base para el control de acceso es la autentificación, el control de acceso es más importante que nunca desde que la nube y todos sus datos son accesibles para todo el mundo a través de internet. Trusted Platform Module (TPM) es extensamente utilizado y un sistema de autentificación más fuerte que el nombre de usuario y la contraseña. Trusted Computing Group (TCG) es un estándar sobre la autorización de usuarios y otras herramientas de seguridad de comunicación en tiempo real entre el proveedor y el cliente.

### Pérdida de gobernanza

En las infraestructuras de la nube, el cliente necesariamente cede el control al proveedor de la nube en varios asuntos, los cuales influyen negativamente sobre la seguridad. Al mismo tiempo, el acuerdo de nivel de servicio no suele tener el cometido de surtir este tipo de servicios en la parte del proveedor de la nube, lo que deja una brecha en las defensas de seguridad.

### Dependencia

Esta es una pequeña oferta en este tipo de herramientas, los procedimientos o estándares de formatos de datos o interfaces de servicios que podrían garantizar los datos, las aplicaciones y el servicio de portabilidad. Esto puede hacer difícil para el cliente migrar de un proveedor a otro, o migrar los datos y servicios de nuevo a otro entorno informático, bloqueándolo en el ecosistema elegido. Esto introduce una particular dependencia en el proveedor de la nube para la provisión del servicio, especialmente en lo referente a la portabilidad de los datos, el aspecto más fundamental.

### Protección de los datos

En España, la Agencia Española de Protección de Datos y el Instituto Nacional de Tecnologías de la Comunicación (INTECO) son los organismos que se encargan de la privacidad y de la protección de los datos personales; aspectos claves para operar en la nube. La computación en la nube pone en riesgo la protección de datos para los usuarios de la nube y sus proveedores. En muchos casos, ocasiona dificultades para el proveedor (en el rol del controlador de la información) para asegurar la efectividad práctica del manejo de los datos del proveedor de la nube y para cerciorar que los datos van por el camino correcto. Este problema se suele agravar en casos de múltiples transferencias de datos, por ejemplo entre sistemas federados. Por otra parte, algunos proveedores de la nube, proporcionan información de sus prácticas de cercenamiento de datos. También hay algunas ofertas de certificaciones en el procesamiento de datos, las actividades de seguridad, y los controles de datos que tienen lugar; ejemplo, la certificación SAS70. Las corrientes de datos de Internet están unidas al malware y de paquetes señuelo para meter al usuario en una desconocida participación en actividades delictivas.

## Limitaciones

Algunas limitaciones que están retrasando un poco a la computación en la nube son algunas de las siguientes:

### Pérdidas de datos/fuga

Tener datos en la nube tiene numerosas ventajas pero pueden ser comprometidos de diferentes maneras. Pueden ser modificados o borrados sin un respaldo o copia de seguridad, pueden ser desvinculados de su contexto o accedidos por gente no autorizada.

### Dificultad de valorar la fiabilidad de los proveedores

Si los proveedores Cloud son parte de nuestra sociedad, visto de manera estadística, alguien de su personal o algún subcontratado podría no ser alguien de fiar. Es por esto que se deben tomar buenos procedimientos de investigación de antecedentes de recursos humanos, políticas y procedimientos de seguridad de la información fuertes.

### Fuerza de los mecanismos de autentificación

En la nube hay muchísimos datos, aplicaciones y recursos almacenados. La computación en la nube es muy débil en los mecanismos de autentificación, por lo tanto el atacante puede fácilmente obtener la cuenta de usuario cliente y acceder a la máquina virtual.

## Investigación

Multitud de universidades, institutos, proveedores e instituciones gubernamentales están invirtiendo en computación en la nube:
* En octubre del 2007, la Inicitativa Académica de Computación en la Nube (ACCI) se anunció como un proyecto multiuniversitario dedicado a orientar técnicamente a estudiantes en sus desafíos con la computación en la nube.
* En abril de 2009, surgió el laboratorio de computación en la nube de St Andrews, centrado en la investigación de esta nueva área. Único en el Reino Unido, StaCC pretende convertirse en un centro internacional de excelencia para la investigación y docencia en computación en la nube, y además proporciona consejo e información a empresas interesadas en servicios en la nube.
* En octubre de 2010, se inició el proyecto TClouds sobre nubes de confianza, financiado por la Comisión Europea. El objetivo del proyecto es investigar e inspeccionar las bases legales y el diseño arquitectónico para construir una infraestructura flexible y de confianza en la nube. El proyecto también desarrolla un prototipo para demostrar sus resultados.
* En diciembre de 2010, el proyecto de investigación TrustCloud fue iniciado por los laboratorios HP Singapur para abordar la transparencia y la rendición de cuentas de la computación en nube a través de detectives, los enfoques centrados en los datos encapsulados en un TrustCloud marco de cinco capas. El equipo identificó la necesidad de monitorizar los ciclos de vida y las transferencias en la nube, que conduce al abordaje de cuestiones esenciales de seguridad, como las fugas de datos, la rendición de cuentas y las transferencias de datos entre países mediante transacciones en la nube
* En enero de 2011, IRMOS EU financió el desarrollo de una plataforma en la nube en tiempo real, permitiendo aplicaciones interactivas en infraestructuras de la nube.
* En junio de 2011, dos universidades de la India, University of Petroleum and Energy Studies y University of Technology and Management, introdujeron una asignatura de computación en la nube en colaboración con IBM.
* En julio de 2011, la asociación de la industria en telecomunicaciones elaboró un documento para analizar los desafíos de integración y oportunidades entre los servicios en la nube y los servicios de comunicación tradicionales en los Estados Unidos.
* En diciembre de 2011, el proyecto VISION Cloud financiado por la UE propuso una arquitectura y una implementación para los servicios de uso intensivo de datos con el objetivo de proporcionar una infraestructura de almacenamiento virtualizada.
* En febrero de 2013, el proyecto BonFire lanzó un centro de experimentación y pruebas en la nube. La instalación ofrece acceso transparente a los recursos de la nube, con el control y la observabilidad necesaria para diseñar las futuras tecnologías en la nube.
* En abril de 2017, el proyecto School on the Cloud: lecciones aprendidas, potenció el empleo en la nube para el aprendizaje en todas las etapas educativas con la finalidad de llamar la atención a los agentes responsables de la educación en Europa.

## Aplicaciones

* Box - desarrollado por Box Inc.
* Campaign Cloud - desarrollado por ElectionMall Technologies (Cerrado)
* Doitle ajaxplorer - desarrollado por Doitle
* Dropbox - desarrollado por Dropbox
* Google Drive - desarrollado por Google
* Flokzu BPM en la nube - Desarrollado por Flokzu.
* iCloud - desarrollado por Apple
* OneDrive - desarrollado por Microsoft (antes SkyDrive)
* OwnCloud - desarrollado por OwnCloud Inc.
* Salesforce.com - desarrollado por Salesforce.com Inc.
* NetSuite - desarrollado por Oracle
* Adm Cloud - desarrollado por Fortech
* Scaleway - desarrollado por Online.net
* SugarSync - desarrollado por SugarSync
* Ubuntu One - desarrollado por Canonical (cerrado)
* Wuala - desarrollado por LaCie
* NetQuatro Cloud - desarrollado por NetQuatro
* Amazon Cloud Drive - desarrollado por Amazon
* Monday.com - desarrollado por Monday.com
* Cloud me - desarrollado por CloudMe AB
* Mega - desarrollado por Kim Dotcom
* Pipedrive - desarrollado por Pipedrive
* Fiabee - desarrollado por Tuso Technologies SL
* Skydrive - desarrollado por Microsoft
* Hubspot - desarrollado por Hubspot
* Oracle Cloud - desarrollado por Oracle
* Google App Engine - desarrollado por Google
* OpenShift - desarrollado por RedHat
* Zoho - desarrollado por Zoho