Blog of Manuel Vieda

Blog of Manuel Vieda


Thoughts, stories and ideas.

Software Engineer, Application Developer and Information Technology enthusiast with over 8 years of experience working with Java and related technologies.

Share


Tags


Beneficios y Desventajas del Modelo de Cloud Computing

Teniendo en cuenta el modelo de despliegue y las cinco características del modelo de Cloud Computing que ha definido la NIST (Ver una descripción y ampliación de este tema en el artículo Cloud Computing – ¿Qué es?), se puede definir una lista de beneficios del modelo y que han sido aceptados de manera unánime por todos los usuarios de la nube. Para abarcar el tema de los beneficios se tomarán los dos puntos de vista: el primero hace referencia a la perspectiva que tiene el negocio y en segundo lugar la perspectiva desde el ambiente técnico. Finalmente, se describirán las desventajas que existe en este modelo y que pueden llegar a ser tan numerosas como los beneficios. (Sosinsky, 2011) y (Varia, 2011)

Beneficios desde el punto de vista del negocio

Reducción de costos:

Lo primero y lo esencial es la reducción real de los costos tanto operativos como administrativos. Dado que los proveedores de los servicios utilizan en ambientes de alta eficiencia y con altos márgenes de utilización, es posible que el costo total de operación y mantenimiento de dicha infraestructura sea repartido entre miles de usuarios a los que presta el servicio. Incluso, se puede llegar a decir que se tiene un costo nulo en la inversión inicial de infraestructura, lo que permite crear proyectos de gran escala en donde tradicionalmente se debía tener inversiones millonarias iniciales en propiedades, seguridad física, hardware (Como es el caso de servidores, routers, fuentes de poder redundantes, por ejemplo) y personal capacitado para su operación. Este tipo de inversión hacía inviable muchos proyectos interesantes debido al desgaste que suponía el conseguir a un inversionista que estuviera dispuesto a aportar el capital inicial asumiendo los riesgos del posible fracaso. Con el nuevo modelo, no existe tal problema ni los riesgos asociados, eliminado cualquier costo asociado a la inicialización del proyecto, únicamente se requiere el pago de lo que se va a consumir.

Infraestructura Just-in-Time

Uno de los problemas que afrontaba cualquier proyecto era el dimensionamiento de la infraestructura que debía montarse, asumiendo un número de usuarios y otros factores en base a proyecciones de negocio. Cuando se tenía un éxito mayor al esperado y no era posible tener un escalamiento rápido, se era una víctima del éxito propio al no tener recursos para atender las peticiones de todos los usuario y llegando a perder muchos de ellos. Por el contrario, si se invertía mucho en infraestructura y no llegaba a utilizarla, se era víctima del fracaso propio, agilizando la muerte de la empresa. Estos problemas son resueltos con el modelo de la nube, donde cada aplicación puede obtener los recursos que requiere para dar respuesta a todos los usuarios, sean pocos o muchos, reduciendo los riesgos y costos operacionales, pagando exactamente lo que se está consumiendo.

Eficiencia en la utilización de recursos

Contrario a un modelo tradicional donde debe existir un administrador que se encargue de la adquisición del hardware para cumplir con las necesidades de las compañía (Ejemplo: almacenamiento en discos) y tratando de llevar al máximo la utilización de la infraestructura en todo momento para reducir los costos, en el modelo de Cloud Computing no existe tal preocupación. Es posible crear sistemas que se encarguen de monitorear el uso de los recursos y administrarlos de manera eficiente para reducir los costos  de manera automática y eficiente, a través de llamados de petición o liberación de recursos al proveedor del servicio.

Costo basado en uso

Con el modelo de pago por utilidad que manejan todos los proveedores (una de las cinco características del modelo de NIST explicado anteriormente), cada usuario sólo paga por lo que realmente está usando y no por infraestructura que se tiene pero está siendo subutilizada, como ocurre con el modelo tradicional.  De esta manera, se obtienen ventajas que anteriormente no se tenían con el desarrollo y uso de software más eficiente. Es decir, que si actualiza el actual software de una compañía por uno que ofrece una mejora en menor uso de cache, se tiene una reducción del costo en la siguiente factura.

Time to market reducido:

Una de los usos que ofrece Cloud Computing es la paralelización  de los procesos. Si un proceso requiere un uso computacional alto, con intensos trabajos de manejo de datos que toman mucho tiempo, es posible dividirlo en varios procesos y ejecutarlos paralelamente en muchas unidades de procesamiento para reducir el tiempo total de procesamiento a solo una fracción del tiempo original. Con la elasticidad del sistema  es posible pagar por esta gran cantidad de cómputo sólo en el momento que se requiere, reduciendo los tiempos de desarrollo de nuevos productos, por ejemplo, dando la ventaja competitiva al negocio.

Calidad del servicio y Fiabilidad:

La mayoría de las actuales infraestructuras donde están operando los servicios de Cloud Computing poseen acuerdos de niveles de servicio (SLA) con tiempos de disponibilidad mayores al 99.99% 24/7. Desde la perspectiva del usuario implica que se pueden obtener diferentes niveles de servicios de acuerdo a las necesidades del negocio y pueden ir hasta estándares de muy alta disponibilidad, a partir de los contratos firmados con los proveedores. Estos acuerdos suelen ser mucho más económicos y con mejores niveles que los cualquier organización normalmente podría obtener con una infraestructura interna.

Outsourcing del área de Tecnologías de Información

Actualmente se tiene la mentalidad que cada empresa debe dedicarse por completo a su negocio y no estar lidiando con los problemas que no hacen parte de este núcleo, como lo es el mantenimiento y operación de la plataforma tecnológica. Con el modelo de Cloud Computing es posible delegar estas responsabilidades a otra empresa que se dedica a estas operaciones, por lo que se incrementa la eficiencia de la empresa y se reducen los cosos.  Otra de las ventajas de delegar esta responsabilidad a un tercero que posee una infraestructura centralizada es la posibilidad de aplicar parches o realizar actualizaciones de manera sencilla, garantizando que siempre se tiene las últimas versiones del software.

Beneficios desde el punto de vista técnico

Automatización

Este modelo de desarrollo permite tener una infraestructura creada y controlado por scripts, permitiendo la creación de procesos de despliegue de las aplicaciones y nuevos recursos de manera automática a través del uso de sistemas autónomos basados en los APIs de los proveedores de la infraestructura.

Escalabilidad

El mismo proceso de automatización de los procesos dentro de la infraestructura permite que una aplicación escale de manera inmediata en razón a la demanda inesperada que está experimentando, sin la intervención de ningún operario. Así mismo, es posible tener un escalamiento proactivo en donde la aplicación puede escalar hacia arriba o hacia abajo para atender una demanda anticipada a través del entendimiento de los patrones de uso de la aplicaciones y el adecuado uso de planificación de eventos, buscando en todo momento el menor costo.

Ciclos de Desarrollo más eficientes

A través del Cloud Computing es posible tener los ambientes de desarrollo, pruebas y producción en todas las organizaciones, garantizando que todo el software producido cumple con altos niveles de calidad. Pero lo ventaja no se limita a tener los ambientes para cada ciclo, sino que permite hacerlos de manera eficiente simplemente clonando el ambiente de producción o reemplazándolo por el de pruebas cuando se aseguró la calidad de las nuevas funcionalidades.

Mejor capacidad de prueba

Siguiendo con la anterior ventaja, dentro del ambiente de pruebas es posible obtener el ambiente adecuado de pruebas, sin las limitaciones de hardware o software, como ocurre generalmente en las actuales organizaciones. De la misma manera se reduce el costo al hacer el despliegue y uso de unidades de prueba sólo en los momentos que sea necesario y pagando por su periodo de uso.

Recuperación ante desastres y Continuidad de Negocio

El modelo en la nube ofrece soluciones de muy bajo costo para el mantenimiento de plataformas de recuperación tanto de servidores y sus aplicaciones así como de datos. Además, es posible usar la amplia distribución geográfica de la infraestructura del proveedor para la replicación de ambientes en varias locaciones alrededor del mundo en minutos.

Desvetajas del Cloud Computing

Así como existe una gran cantidad de ventajas, existe un número también elevado de desventajas que deben ser tomadas en cuenta a la hora de optar por el uso de este nuevo modelo de computación.

Servicios poco Personalizables

Para las pequeñas organizaciones este puede ser un punto más crítico y con mayor dificultad que los es para las grandes organizaciones, quienes cuentan con un departamento de TI con el personal capacitado para realizar todas estas tareas de ajuste y personalización de las aplicaciones a sus necesidades. Por lo general, las aplicaciones bajo el esquema de SaaS son algo de lo que se puede disponer mas no modificar. En muchos casos las aplicaciones desarrolladas bajo demanda, a las que se tiene acceso en el modelo tradicional suelen tener una gran cantidad de funcionalidad desarrolladas específicamente para el usuario, lo cual no ocurre por lo general en la nube y esto suele ser un gran obstáculo para ser parte de la nube.

Alta latencia

Todas las aplicaciones en la nube sufren de este problema asociado a la latencia generada por las conexiones WAN (Wide Area Network) con la que el usuario se conecta a la infraestructura de la nube. Esta restricción hace que las aplicaciones con tareas de alto procesamiento de datos sean óptimas para usar este modelo, mientras que las aplicaciones que requieren de la transferencia de volúmenes de datos considerables o con modelos de transferencia de mensajes, de cualquier tamaño, entre varias unidades de procesamiento, no lo son debido a la latencia en las comunicaciones.

Sistema sin estado

Todos los sistemas en Cloud Computing no poseen la capacidad de llevar un estado de las comunicaciones, como ocurre por lo general en cualquier sistema en internet. La propia arquitectura de este tipo de infraestructura hace que las comunicaciones deban ser unidireccionales, como ocurre con todas las solicitudes HTTP que se realizan (PUT y GET), logrando que cada petición tenga su respuesta pero sin garantizar que se tenga una conversación a través de varias peticiones. Esto se debe a que cada mensaje, al ser un sistema distribuido, puede tomar rutas diferentes y no se garantiza el orden de llegada de cada mensaje, aunque debido a esta naturaleza se garantiza que todos los mensajes son entregados.  Esto hace que sea necesario la implementación de encabezados y de capas intermedias (middleware) para lograr este tipo de funcionalidades.

Privacidad y seguridad

Una de las desventajas más graves que existe actualmente, al tiempo de ser el reto más grande al que se ven afrontadas las compañías, y que cualquier usuario que desee usar un sistema en la nube debe tener en cuenta es la privacidad y la seguridad de los datos. Aun cuando el proveedor del servicio, a través de los acuerdo de niveles de servicio (SLA) se comprometen a llevar un control de la seguridad del aplicación y la infraestructura, así como de la privacidad de la información de la información almacenada en sus instalaciones, existe un riesgo remanente que no puede ser eliminado ni olvidado. El riego existe en que al estar la información viajando y permaneciendo en una infraestructura que no se puede controlar, se incrementa el riesgo que dicha información pueda ser interceptada o modificada por un tercero. Pero el peor problema consiste en el marco legal que involucra y que todavía no ha sido desarrollado para estos ambientes de prestación de servicios. Actualmente, aunque es posible delegar la funciones, no es posible delegar la responsabilidad de la información, así que ante el gobierno es la empresa la responsable de dicha información, por lo que al no tener el control de la infraestructura donde está viviendo, es decir la nube,  no es posible tomar las medidas de protección o al menos no se sabe con qué medidas cuenta el proveedor para asegurar el nivel de seguridad exigido debido a la virtualización de los ambientes.

Bibliografía

Rittinghouse, J. W., & Ransome, J. F. (2011). Cloud Computing. Implementation, Managment and Security. CRC Press. Taylor and Francis Group.

Sosinsky, B. (2011). Cloud Computing Bible. Indianápolis, IN, Estados Unidos: Wiley Pubblishing, Inc.

Varia, J. (Enero de 2011). Amazon Web Services – Architecting for the Cloud: Best Practices. Amazon Web Services.

Software Engineer, Application Developer and Information Technology enthusiast with over 8 years of experience working with Java and related technologies.

View Comments