¿Qué es la Computación en la nube?
No hay comentarios
El Cloud Computing tiene como finalidad convertir los recursos TI en servicios consumibles a un precio accesible y fáciles de usar mediante las herramientas que provee. Este articlo tiene como objetivo realizar una revisión al Cloud Computing, exponiendo varios conceptos relacionados, características, ventajas, desventajas de su aplicación y las soluciones tecnológicas más populares.
Introducción
Anteriormente, tener un centro de datos físico (servidor) era una necesidad y orgullo de la tecnología de la información (TI), pero con el surgimiento del Cloud Computing (CC) esto puede olvidarse, pues satisface la misma necesidad y ha ganado popularidad tanto en la industria como en la academia. Esto puede ser visto con el aumento de servicios y aplicaciones en red (Sadiku et al., 2014).
En Cloud Computing se pueden encontrar productos importantes que permiten a los usuarios implementar aplicaciones y servicios de una forma más fácil debido a que proporcionan almacenamiento y otra serie de beneficios basados en la nube con diferentes niveles de abstracción, liberándolos en algunos casos de tener que invertir en infraestructura de hardware y su respectivo mantenimiento. Si bien tiene ventajas, existen desafíos que deben abordarse claramente para garantizar una adopción exitosa.
Por tal razón, este artículo tiene como objetivo realizar un acercamiento al Cloud Computing por tratarse de una tecnología en constante evolución. Para este fin, se llevó a cabo la revisión de diversos libros y artículos científicos teniendo como fuentes principales de literatura, las bases de datos científicas como Elsevier, Springer y el buscador académico de Google (Google Scholar).
Cloud Computing (CC)
El Instituto Nacional de Estándares y Tecnología (NIST por sus siglas en inglés, National Institute of Standards and Technology) mediante los autores Mell y Grance (2011) define Cloud computing (CC) como un modelo que habilita el acceso conveniente por demanda a un conjunto compartido de recursos computacionales configurables, (por ejemplo, redes, servidores, almacenamiento, aplicaciones y servicios) que pueden ser rápidamente provisionados y liberados con un esfuerzo mínimo de administración o de interacción con el proveedor de servicios.
Buyya y Ranjan (2011) lo definen como un espacio en la infraestructura de red el cual está disponible para acceder a los recursos informáticos como redes, bases de datos, almacenamiento, sistemas operativos, hardware informático, aplicaciones de software en el momento que sean requeridas.
Aunque como para todo concepto existen varias definiciones y para esta revisión se tomaron en cuenta las dos anteriores, la definición de mayor aceptación mundial para CC es la dada por NIST.
Características de la computación en nube
De la definición dada por Mell y Grance (2011), se identificaron 5 características esenciales de los sistemas de la computación en la nube:
Autoservicio bajo demanda: donde el consumidor puede proveerse unilateralmente recursos de computación tales como tiempo de servidor y almacenamiento en red, en la medida en que lo necesite, sin que el proveedor de servicios requiera interacción humana para ello.
Acceso amplio a la red: el acceso se puede realizar desde un teléfono móvil, navegador en internet o el pc, ya que su capacidad está disponible en la red y se tiene la posibilidad de almacenar los documentos en la nube.
Conjunto de recursos: los recursos son habilitados para la utilidad de consumidores heterogéneos empleando el modelo multi- tenant con diversas técnicas no sólo virtuales, si no también físicas asignadas conforme al requerimiento del consumidor, quién no tiene el control o la ubicación exacta de los recursos que se le están suministrando, sin embargo puede establecer una ubicación en un alto nivel de abstracción, es decir, país, estado o centro de datos que están ligados a procesadores, almacenamiento, memoria y ancho de banda.
Rápida elasticidad: la capacidad que tiene puede ser elásticamente proporcionada y ágil, técnicamente, en determinados casos puede escalar hacia adentro y hacia afuera de manera muy veloz. Estas capacidades suelen aparecer frecuentemente de manera ilimitada en la cual el consumidor puede adquirir en el momento que considere necesario.
Servicio medido: los procedimientos en la nube están controlados de manera automática y se ha optimizado el uso de sus recursos dependiendo de la capacidad de medición en la que se esté trabajando, la implementación de dichos recursos se puede monitorizar y reportar brindándole claridad al proveedor y al consumidor que esté haciendo uso del servicio.
Tipos de Cloud
Murazzo et al., (2015) en su investigación basándose en la definición dada por el NIST, exponen que el modelo de Cloud Computing se divide en dos grandes categorías: Modelos de servicio, los cuales se refieren a los servicios específicos a los que se puede acceder en una plataforma de CC y, está formada por: Software como servicio (SaaS), Plataforma como servicio (PaaS) e Infraestructura como servicio (IaaS); y el Modelo de despliegue, mediante los cuales se refieren a la posición (localización) y administración (gestión) de la infraestructura Cloud, donde se definen cuatro tipos de Cloud, que ofrecen la infraestructura necesaria para soportar los Modelos de Servicio: Pública, Privada, Híbrida y Comunitario.
Según el modelo de servicio
Por parte del modelo de servicio, Triunfo (2019) define y ejemplifica en su investigación cada uno ellos:
Saas
define un modelo de entrega en el que el software y los datos se proporcionan como servicios preparados para usar, a los cuales los clientes acceden de forma remota a través de Internet. Concretamente, los proveedores alojan el software y los datos asociados en sus servidores, los clientes acceden a ellos sin necesidad de utilizar ningún hardware o software adicional más que el dispositivo con el cual acceden a Internet. Además, normalmente por este servicio los clientes solo pagan una tarifa mensual / anual. Entre los ejemplos más comunes de aplicaciones SaaS se encuentran los sistemas de correo web (Gmail), calendarios (Yahoo Calendar), gestión de documentos (Microsoft Office 365), manipulación de imágenes (Photoshop Express), gestión de relaciones con los clientes (Salesforce).
Paas
los proveedores de la nube ofrecen una plataforma informática que generalmente incluye bases de datos, servidores de aplicaciones, entorno de desarrollo para crear, probar y ejecutar aplicaciones personalizadas. En este servicio, los desarrolladores solo se centran en la implementación de aplicaciones, debido a que los proveedores de la nube se encargan del mantenimiento y la optimización del entorno y la infraestructura, facilitándoles su proceso de desarrollo. Entre los ejemplos de este tipo de servicio se encuentran Google App Engine, Microsoft Azure y Salesforce.com.
Iaas
este modelo es la capa inferior, mediante el cual los proveedores proporcionan a los clientes recursos como CPU, discos o recursos más complejos como servidores virtualizados o sistemas operativos para respaldar sus operaciones. Los clientes de este servicio normalmente tienen habilidades en administración de sistemas y redes, debido a que tienen que ocuparse de las tareas de configuración, operación y mantenimiento. En comparación con el anterior modelo, IaaS tiene mayores costos de administración del sistema para el usuario, pero permite una personalización completa del entorno de ejecución. Los desarrolladores pueden ampliar o reducir sus servicios agregando o eliminando máquinas virtuales fácil e instantáneamente desde las imágenes de una máquina virtual. Entre los ejemplos de este tipo de servicio se encuentran Amazon EC2 y RackSpace Cloud.
Según el modelo de despliegue
En cuanto a la categoría modelo de servicio, la NIST clasificó la implementación en la nube en las siguientes cuatro categorías: nube privada, nube comunitaria, nube pública y nube híbrida. En la investigación de Chou (2015) se define:
Nube privada: este tipo nube es utilizada únicamente por una empresa, en la cual los recursos tales como el hardware, las redes, el almacenamiento, las aplicaciones, las interfaces y la infraestructura no se comparten con otras empresas. Este servicio en la nube puede ofrecer la tolerancia a fallas y capacidades de seguridad (firewall) para proteger la seguridad de las operaciones y procesos internos. Por lo tanto, la nube privada se puede implementar en un entorno altamente seguro y manejable.
Nube comunitaria: este tipo de nube posee una infraestructura compartida por diferentes empresas y está orientada a servir a un tipo de comunidad específica que tengan las mismas preocupaciones organizativas. Esta nube puede ser realizada y gestionada por las mismas empresas o por terceros; y generalmente es usada por bancos u organizaciones educativas.
Nube pública: este es el tipo de nube más común. Dentro de este modelo, el proveedor de servicios ofrece su infraestructura en la nube para uso público como un tipo de autoservicio mediante diferentes APIs, bajo demanda y pago por su uso. Los proveedores de servicios de nube pública deben crear un centro de datos extremadamente seguros, escalables y con infraestructura flexible para las necesidades de los clientes que son impredecibles, por esto los proveedores de este tipo de nube deben estar bien preparados.
Nube híbrida: es el tipo de nube que combina dos o más nubes de modelo de despliegue anteriormente definidas. En función de necesidades tales como preocupaciones estratégicas, de seguridad y/o de confidencialidad, la empresa puede asignar cargas de trabajo en infraestructuras de nube separadas. Con este tipo de nube las empresas pueden ejecutar aplicaciones que no son fundamentales en una nube pública, y guardar los datos sensibles en una nube privada.
Arquitectura Cloud Computing
Mahmoud y Xia (2019) exponen que la arquitectura de CC puede dividirse en cuatro capas las cuales son: hardware, infraestructura, plataforma y aplicación como se muestra en la figura 1 y las definen como:
La capa de hardware: es la encargada de proveer los recursos físicos de la nube, conmutadores, enrutadores, sistemas de alimentación y refrigeración. Se implementa frecuentemente en centros de datos, estos normalmente contienen muchos servidores que se encuentran almacenados en bastidores, los cuales son interconectados por medio enrutadores y conmutadores.
La capa de infraestructura: implementa la agrupación de recursos informáticos necesarios por medio de la distribución de los recursos físicos como base de datos, sistemas de almacenamiento y mecanismos de gestión y control gracias a las tecnologías de virtualización.
La capa de plataforma: se compone de sistemas operativos con el fin de disminuir la carga de ejecución de las aplicaciones directamente en los contenedores (Máquina Virtual), en los cuales se puede encontrar Google App Engine que permite poner en funcionamiento las aplicaciones sobre la infraestructura proporcionándole el almacenamiento, base de datos y la lógica de negocios de aplicaciones web.
La capa de aplicación: Consiste en aplicaciones auténticas de la nube. Las aplicaciones en la nube pueden emplear la función de escalar de manera automática mejorando el rendimiento y disponibilidad de la misma a un costo operativo muy mínimo. La arquitectura de la computación en la nube es más pronunciada si se compara con servidores tradicionales, cada una de las capas puede evolucionar por separado debido a que están unidas tanto inferior como superiormente.
Ventajas
El principal beneficio que ofrece la computación en la nube es que los usuarios de los servicios no necesitan poseer y administrar los equipos de capital involucrados. Desde el punto de vista financiero, la computación en la nube representa un modelo de negocio de pago por uso y esta es la mayor ventaja para un usuario (Mezgár y Rauschecker, 2014). Sosinsky (2010) en su libro “Cloud Computing Bible” y Chou (2015) en su investigación, exponen los siguientes aspectos ventajosos:
Menores costos: no hay necesidad de que las empresas inviertan en infraestructura de hardware y mantenimiento, ya que estas preocupaciones son atendidas por los proveedores de Cloud Computing, por ende, solo pagan por los servicios que requieran, reduciendo paralelamente consumo energético.
Facilidad de utilización y movilidad: los clientes pueden tener acceso al software en cualquier lugar que se encuentren, siempre y cuando tengan acceso a Internet. Una aplicación de Cloud Computing se puede desarrollar en solo unos pocos días, debido a las herramientas que facilitan los proveedores.
Confiabilidad: la escala de las redes de computación en la nube y su capacidad para proporcionar equilibrio de carga y conmutación por error las hace altamente confiables, a menudo mucho más confiables que lo que puede lograr en una sola organización.
Administración de TI tercerizada: una implementación de computación en la nube permite que otra persona administre su infraestructura informática, mientras que el cliente solo se debe encargar de lo que corresponde a su negocio. En la mayoría de los casos, se logran reducciones considerables en los costos de personal de TI.
Mantenimiento y actualización simplificados: ya que el sistema se encuentra centralizado, se pueden aplicar parches y actualizaciones de un modo más fácil. Permitiéndole a sus clientes siempre acceder a las últimas versiones de software.
Almacenamiento: este puede considerarse “ilimitado” teniendo en cuenta el plan de servicio que se contrate. Además, existe replicación automatizada, fragmentación y dispersión de datos, provisión de zonas de datos (por ejemplo, país) cifrado en el almacenamiento/transferencia y la retención automatizada de datos.
Soluciones tecnológicas populares
La mayoría de los avances en CC han sido llevados a cabo por parte de empresas privadas, dado el alto interés comercial de este campo. Considerando esto, Los principales CSP (Cloud Service Provider) son Amazon, Google y Microsoft. Cada uno de ellos es un gran proveedor de servicios en la nube de uno o más de los modelos de servicio de computación en la nube: SaaS, PaaS, IaaS. Amazon es pionero en IaaS, mientras que Google se centran en los modelos de entrega SaaS y PaaS, y Microsoft participa principalmente en PaaS (Marinescu, 2018).
De los tres grandes proveedores sus servicios más populares son Amazon EC2, Google App Engine y Windows Azure respectivamente.
Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2) es un conjunto de servicios que proporciona capacidad de computación escalable en la nube de Amazon Web Services (AWS). Usar este servicio suprime la necesidad de invertir en hardware, permitiendo a las empresas e individuos desarrollar e implementar aplicaciones en menos tiempo. Se puede usar Amazon EC2 para lanzar la cantidad de servidores que sean necesarios, configurar la seguridad, las redes y administrar el almacenamiento. Además, permite escalar hacia arriba o hacia abajo para controlar cambios en los requisitos o picos de popularidad, con lo que se reduce la necesidad de prever el tráfico. Se puede acceder a las ofertas de Amazon Web Services a través de HTTP, utilizando los protocolos REST y SOAP (AWS, 2020).
Google App Engine
GAE uno de los servicios que pertenecen a la familia de Google Cloud Platform que permite el alojamiento de aplicaciones web a gran escala en centros de datos. En este servicio las aplicaciones pueden ser desarrolladas en lenguajes tales como Go, PHP, Java,Python, Node.js, .NET, Ruby, entre otros lenguajes. App Engine facilita, construir, mantener y escalar la aplicación según la demanda (Google Cloud, 2020).
Windows Azure
Windows Azure es un servicio que proporciona un entorno basado en Windows para ejecutar aplicaciones y almacenar datos en servidores en sus centros de datos. El servicio puede ser utilizado tanto por aplicaciones que se ejecutan en la nube como por aplicaciones que se ejecutan en sistemas locales. Windows Azure admite aplicaciones creadas en .NET y otros lenguajes comunes compatibles con sistemas Windows tales como: C#, Visual Basic, C ++, entre otros (Microsoft Azure, 2020).
Conclusión:
Mediante la revisión realizada es posible comprender como Cloud Computing ha logrado que gran cantidad de personas y empresas se vean interesados y lo hayan adoptado debido a los múltiples servicios y recursos que provee, brindando beneficios como: facilidad de utilización, movilidad, confiabilidad y actualizaciones a precios asequibles.
Pero también se debe considerar que en la academia o en el campo de la investigación se encuentra en una etapa temprana, ya que existen problemas o desafíos que no han sido abordado de manera completa como ya se mencionaron en la revisión. Además, debido a que la computación en la nube es una tecnología en constante evolución seguirán surgiendo nuevos desafíos. Por ello, además de sus características y arquitectura, se deben tener en cuenta sus ventajas y desventajas para garantizar una adopción exitosa.