01 mayo 2010

Platform-as-a-service PaaS

La categoría de servicios en la nube que otorga a los fabricantes de software las funcionalidades para diseñar, desarrollar, desplegar, integrar servicios, obtener capacidad operacional y persistencia de datos, sin tener que realizar actividades de administración ó gestión sobre el sistema contenedor/Plataforma del software se denominan Plataforma como Servicio ó simplemente PaaS. Como en otras categorías de servicios en la nube los proveedores de PaaS ofrecen la posibilidad de crear software empresarial para uso a demanda mediante el pago por suscripción, siendo en algunos casos gratuito siempre y cuando nos se exceda el consumo de recursos de la plataforma de unas cuotas preestablecidas en sus políticas de uso


La Escalabilidad, el mayor beneficio para el desarrollador


Los beneficios que brinda el uso de PaaS pueden verse reflejados en las libertades que obtienen los fabricantes de software al lograr enfocar sus esfuerzos en el proceso de construcción de su producto, delegando en los servicios del proveedor de PaaS las labores de despliegue, la administración del entorno de ejecución, el monitoreo y disponibilidad del contenedor de las aplicaciones, la gestión y disponibilidad del motor de persistencia, la calidad del servicio y caudal de infraestructura de Red y la consecución dinámica de recursos de computo. ¿ Pero acaso esto no es posible conseguirlo al interior de las organizaciones con la previsión de recursos de TI y un adecuado sistema de integración continua y procesos automatizados de despliegue?, claro es 100% viable que un fabricante de software contemple todos los escenarios a los cuales pueda estar sometido el uso de su producto, para aprovisionar en la misma medida la plataforma del cliente ó clientes con los recursos de computo esperados para un óptimo funcionamiento. ¿ Entonces cual es el beneficio real del PaaS? El escenario principal de falla para de cualquier sistema, y que no es contemplado en la mayoría de pruebas que se realizan antes de la liberación de un producto de software: El sistema a sobre-demanda ó estrés.

Cuando un producto de software es desplegado en un entorno PaaS el software cuenta con la capacidad de escalar a demanda de acuerdo a variables como cantidad de usuarios, cantidad de transacciones, uso de memoria, uso de procesador, espacio para la persistencia de datos entre otros, blindando el producto de software de bloqueos por falta de recursos, liberando a los fabricantes de procesos de contingencia y negociaciones para la adquisición de recursos de infraestructura, ofreciendo a los usuarios del software confianza en el servicio adquirido y credibilidad en el fabricante.


Proveedores PaaS


Google App Engine
Permite la ejecución de productos de software Web en la infraestructura de Google. Según la descripción que ofrece Google de su servicio encontramos que: "Las aplicaciones App Engine son fáciles de crear, mantener y actualizar al ir aumentando el tráfico y las necesidades de almacenamiento de datos. Con App Engine, no necesitarás utilizar ningún servidor: sólo tendrás que subir tu aplicación para que tus usuarios puedan empezar a utilizarla."

Windows Azure
Windows Azure y SQL Azure le dan a América Latina una oportunidad que no ha tenido en más de 20 años - depender menos de soluciones creadas en otros países y avanzar la innovación local”, comentó Luis Daniel Soto Maldonado, director de Nuevas Tecnologías para Microsoft Latinoamérica. “Azure de Microsoft es la plataforma sobre la cual los desarrolladores latinoamericanos construirán el futuro en la nube”.

Tipos de computación en nube: Pública, privada o híbrida

Definición



Las “nubes públicas” se refieren al modelo estándar de computación en nube, en el cual un proveedor de servicios, coloca sus recursos tales como aplicaciones y almacenamiento disponibles al público en general a través de Internet. Los servicios de la nube pueden ser libres o ofrecidos a través de un modelo de pago por uso.

El término “nube privada” nace de la necesidad de diferenciar el modelo estándar y las nubes privadas, las cuales son redes o centros de cómputo propietarios que usan tecnologías de computación en nube, tales como la virtualización. Se caracterizan por ser administradas por la organización a la que sirven y encontrarse aseguradas por medio de un Firewall. Un tercer modelo las “nubes híbridas”, son una mezcla de los dos modelos anteriores: las nubes públicas y privadas.

Ejemplos de nubes públicas incluyen Amazon Elastic Compute Cloud (EC2), IBM Blue Cloud, Sun Cloud, Google AppEngine y Microsoft Windows Azure Services Platform.


Ventajas y desventajas




Las nubes públicas presentan ciertas ventajas y desventajas, por un lado, mantener las aplicaciones desplegadas en los diferentes entornos de computación en nube públicos nos permite crecer de manera casi ilimitada, además se tiene la posibilidad de pagar por horas (se paga por lo que se consume), solamente por lo que se necesita. Sin embargo, no todo es color de rosa, las principales preocupaciones de las empresas se centran en la seguridad de sus datos, encontrarse restringido a un solo proveedor de servicios, bitácoras de suceso y razones geopolíticas relacionadas con el lugar de almacenamiento de la información.


De igual manera, algunas empresas tienen serios inconvenientes debido a su infraestructura, básicamente la heterogeneidad de los sistemas existentes representa una barrera significativa: existen una gran variedad de equipos corriendo diferentes sistemas operativos en diferentes procesadores – Windows, AIX, Solares, Intel, PowerPC, SPARC, etc -. En contraste, la mayoría de proveedores de los servicios en la nube ofrecen opciones limitadas en reducidos rangos de hardware, dejando a empresas con infraestructura heterógenea en un dilema: pueden colocar algunas aplicaciones en la nube, mientras que las demás permanecerían en los servidores internos; esta mezcla conlleva dificultades en lo relacionado con la administración de los recursos internos y aprovechamiento de los servicios provistos por la nube.


Una solución implica operar el entorno de virtualización (la nube) de manera interna, utilizando como plataforma el recurso de hardware existente, los beneficios de esta visión es el crecimiento dinámico de nuestros recursos en un entorno virtualizado de acuerdo a la demanda, llegando a un aprovechamiento más alto de los recursos y eficiencia.

¿Cuál es la elección?


Una implementación interna de un sistema de computación en nube a través de la virtualización nos ofrece la libertad de determinar el flujo de trabajo de nuestros servicios y políticas de seguridad, la desventaja es que no podemos alcanzar el mismo nivel de escalabilidad de un proveedor de computación en nube
público. La utilización en un sistema de computación en nube público implica el estudio e implementación de las APIs y ajustarse a las ofertas del proveedor, pero el beneficio se encuentra en el crecimiento ilimitado de la aplicación.

Hay que tener en cuenta las implicaciones de emplear una solución de virtualización interna, debemos implementar un sistema de administración y monitoreo propio, así como ajustar los parámetros de configuración de las instancias virtuales; existen soluciones de software como Eucalyptus que nos entrega estos usos, también sería recomendable programar el apagado y/o encendido de los servidores dependiendo de la carga que reciben para ahorrar dinero en gastos energéticos. A pesar de todo podría llegar a existir cierta ineficiencia en la utilización de recursos utilizando sistemas heterogeneos; pero en términos de costos con respecto a un centro de datos tradicional el ahorro puede estar entre el 40 y 50 porciento en cuanto al número de servidores necesarios para llevar a cabo una tarea.

De hecho, las empresas no están restringidas a utilizar un solo centro de datos, pueden llegar a utilizar varios centros de datos e inclusive construir su propio sistema de virtualización híbrido mezclando su infraestructura interna junto con los servicios ofrecidos por los proveedores externos de
computación en nube.

Aunque la computación en nube se encuentre en sus primeros años de vida, ganancias en eficiencia de entre el 40 y 50 por ciento bien vale la pena tomar en cuenta la implementación de una nube privada para aquellas empresas que por una u otra razón no están en la capacidad de hacer uso de los sistemas de computación en nube públicos.