viernes, 10 de enero de 2014

SaaS, IaaS, PaaS, Las tres clases de computación en la Nube

SaaS - Software como Servicio

Es un modelo de distribución de software que proporciona al los clientes el acceso al mismo a través de la red(generalmente Internet), de manera que les libra del mantenimiento de las aplicaciones, de operaciones técnicas y de soporte. Las aplicaciones distribuidas en la modalidad SaaS pueden llegar  a cualquier tipo de empresa sin importar su tamaño o su ubicación geográfica. Se trata de un modelo que une el producto(software) al servicio, para dotar a las empresas  de una solución completa que permita optimizar sus costes y sus recursos.
Implicaciones del Modelo SaaS:
  • Desaparece el concepto de licencia, se pasa de hablar de pago por uso. De manera que los clientes se "suscriben" al servicio aportado para poder utilizar las aplicaciones ofrecidas en la modalidad SaaS.
  • El software no se distribuye in-house, sino a través de la red .
  • La aplicación esta hosteada, de manera que da servicio a muchos clientes.
  • Es un modelo descentralizado de uso de aplicaciones de software.
  • Los clientes pasan a ser virtuales.
  • Hablamos de plataformas de N clientes.
Implicaciones tecnológicas para el fabricante de software:
  • Es necesario reescribir el código de las aplicaciones para que funcione correctamente en un entorno descentralizado, permite N-Usuarios y N-Empresas.
  • Las aplicaciones tienen que incluir servicios que no existían tradicionalmente: monitorización, facturación, etc.
  • Gestión de la escalabilidad y los recursos en la medida en que la infraestructura de hosting puede ser compartida por distintas aplicaciones y un número indeterminado de usuarios.
  • Soporte 24x7, hay que asegurar a los clientes que las aplicaciones funcionan correctamente las 24 horas y que no se producen anomalías en el servicio ofrecido.
  • Hay que elaborar un plan de puesta en marcha de mejoras continuas y nuevas versiones.
  • Seguridad en los datos y en las transacciones.

IaaS - Infraestructura como servicio

Es un modelo de distribución de infraestructura de computación como un servicio, normalmente mediante el uso de una plataforma de virtualización. Los clientes de TI en vez de adquirir equipamiento físico como servidores, espacio en un centro de datos o equipamiento de redes, compran todos estos recursos a un proveedor de servicios externo. Esto es completamente diferente respecto al uso de un hosting virtual, ya que el aprovisionamiento de estos servicios se hace de manera completamente integral a través de la web. Sin la fiabilidad, escalabilidad y ampliabilidad del hardware (CPU, almacenamiento, redes, etc.) como objetivos fundamentales, la construcción de capas de virtualización y los servicios de alto nivel seria un trabajo completamente inútil. Además, cabe señalar, que ciertas infraestructuras especializadas en Cloud Computing pueden no tener, después de todo, una capa de virtualización. Por lo tanto, una capa física en forma flexible es aún más crucial. IaaS a menudo toma la forma de un entorno de computación virtualizado, aprovechando las imágenes virtuales para aliviar los problemas típicos asociados con la acogida de aplicaciones remotas en la adecuación de los sistemas operativos, servidores de aplicaciones, hardware y otros detalles específicos de la aplicación con las necesidades del cliente. Los entornos de computación virtualizados permiten al cliente configurar y desplegar la aplicación en una imagen virtual a nivel local y luego ejecutarla en un entorno remoto sin tener que preocuparse por los servidores y la infraestructura de la red.

PaaS - Plataforma como Servicio

Existen muchas definiciones de PaaS, se dice que es una evolucion de SaaS, pero pienso que la definicion mas acertada es la siguiente:
PaaS es el resultado de la aplicación al desarrollo de Software del modelo SaaS. El modelo PaaS abarca el ciclo completo para desarrollar e implantar aplicaciones desde Internet.
PaaS incluye todas las facilidades al programador para prototipar, analizar, desarrollar, testear, documentar y poner en marcha aplicaciones todo en un solo proceso. PaaS da servicio de integración de la base de datos, seguridad, escalabilidad, almacenaje, copias de seguridad y facilidad para colaborar en la comunidad.
Todos estos servicios son ofrecidos e integrados en una sola solución PaaS de internet.

Algunos datos sobre PaaS:

  • El crecimiento de PaaS será impulsado, en parte, por la frustración de los desarrolladores de aplicaciones que no quieren invertir mucho esfuerzo en juntar los componentes de middleware, señala Ried. “El cloud computing es emocionante para los profesionales del desarrollo y entrega de aplicaciones, ya que ofrece acceso instantáneo a los recursos para el desarrollo y las pruebas; despliegue en cuestión de minutos; fácil, incluso automático escalamiento de arriba abajo; y pague por lo que está usando”, escribió en su informe. Hoy en día, la gran mayoría de los usuarios de PaaS son desarrolladores individuales que se están pasando a la nube para crear aplicaciones relativamente simples, señala Massimo Pezzini, analista de Gartner. Pero la adopción empresarial está creciendo, al menos para fines de desarrollo y de pruebas, aunque no necesariamente para su implementación. La razón es que todavía existen barreras como la seguridad, confidencialidad de los datos, y las preocupaciones sobre la calidad del servicio. “Con un producto como App Engine, usted realmente no tiene ninguna seguridad de calidad del servicio (QoS)“, comenta Pezzini.
  • Los desarrolladores que buscan una oferta PaaS probablemente pueden encontrar una que se acomoda al lenguaje de programación de su elección. Google App Engine soporta principalmente Java y Python, y está previsto el soporte para el idioma experimental Go. Azure soporta los idiomas.Net, PHP, Java y Python. Force.com utiliza HTML, JavaScript y Flash de Adobe como parte del marco Visualforce UI de la empresa, y utiliza el código de Salesforce.com, Apex, para los procedimientos de almacenamiento de base datos y disparadores. La nube Yard de Engine está orientada a Ruby on Rails. La variedad existe porque no existe un idioma PaaS predominante, señala Pezzini: “Por el momento, la ley darwiniana de la supervivencia del más fuerte está pasando en lo referido a los lenguajes de programación de PaaS”. Lenguajes como Java probablemente será uno de los sobrevivientes, agrega, así como los lenguajes dinámicos como Ruby: “Sin embargo, los nuevos idiomas, específicamente diseñado para aprovechar las capacidades de múltiples núcleos y el paralelismo cloud, como Scala, y modelos basados en entornos, como BPMN, también jugarán un papel importante.

Algunos ejemplos de SaaS, PaaS, IaaS
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Frase del día: Pequeños toques hacen grandes rasgos...