Modelos de servicios de la computación en nube, Parte 2: Plataforma como un Servicio

Descubra cómo la Plataforma como un Servicio (PaaS) ofrece oportunidades para que los desarrolladores se beneficien de la computación en nube, y cómo los propietarios de los negocios y tomadores de decisiones pueden pre-calificar a proveedores de PaaS, minimizando el potencial de errores catastróficos.

En esta serie de tres partes, de ejemplos sencillos y del mundo real sobre computación en nube, ayuda a eliminar la confusión que hay en torno al concepto. Cada artículo de esta serie cubre uno de los tres modelos de servicio: Infraestructura como un Servicio, Plataforma como un Servicio y Software como un Servicio (SaaS).

Dan Orlando, CEO, Creative RIA

Photo of Dan OrlandoDan Orlando es un reconocido líder en la comunidad de desarrollo empresarial. Como consultor durante largo tiempo, el experticio de Dan en plataformas de tecnología Adobe es solicitado con frecuencia por líderes de la industria y también por publicaciones como IBM developerWorks, Adobe Developer Connection y Amazon Web Services. Dan también puede encontrarse en los blogs con regularidad en DanOrlando.com.



30-01-2012

La Plataforma como un Servicio a menudo es la clasificación más confusa de la computación en nube porque puede ser difícil de identificar, siendo confundida con frecuencia con la Infraestructura como un Servicio o con el Software como un Servicio. En este segundo artículo de una serie de tres, aprenda qué hace que la PaaS sea única y cómo aprovecharla en su negocio.

Acrónimos de uso frecuente

  • API: Interfaz de Programación de Aplicaciones
  • HTTPS: Hypertext Transfer Protocol sobre SSL
  • IDE: Entorno de desarrollo integrado
  • ROI: Retorno sobre la inversión
  • SQL: Structured Query Language
  • SSL: Capa de sockets seguros
  • IU: Interfaz de Usuario

El factor definitivo que hace la PaaS sea única es que permite a los desarrolladores construir e implementar aplicaciones Web sobre una infraestructura hospedada. En otras palabras, la PaaS le permite aprovechar los aparentemente infinitos recursos computacionales de una infraestructura en nube.

Desde luego, lo que parece ser una cantidad infinita de recursos computacionales es una ilusión, donde la limitación se basa en el tamaño de la infraestructura. No obstante, como aprendió en el primer artículo de esta serie, se estima que la infraestructura de Google contiene más de un millón de computadores basados en x-86. Además, como la infraestructura para la PaaS es elástica—un concepto que también se trató en la Parte 1—La nube puede expandirse para proporcionar incluso más recursos computacionales según se necesite, así que la ilusión de recursos infinitos es totalmente imaginaria.

PaaS para desarrolladores

Un concepto comúnmente errado para los desarrolladores es que la computación en nube solo se aplica para administradores de red. Pero este malentendido pasa por alto las muchas posibilidades que la computación en nube aporta a los equipos de desarrollo y de aseguramiento de la calidad.

Considere algunas de las cosas que con frecuencia son problemáticas durante el ciclo de vida de desarrollo del software. En mi experiencia, el proceso de configurar el entorno de servidor que hospedará la aplicación Web que se le ha asignado construir al equipo de desarrollo puede ser una gran dificultad. Incluso en las empresas más grandes, normalmente hay un solo recurso de administrador de red asignado a varios equipos de desarrollo. Cuando la PaaS no se está utilizando, configurar un entorno de desarrollo o de pruebas normalmente requiere de las siguientes tareas:

  • Adquirir e implementar el servidor.
  • Instalar el sistema operativo, los entornos de tiempo de ejecución, el repositorio de control fuente y cualquier otro middleware requerido.
  • Configurar el sistema operativo, los entornos de tiempo de ejecución, el repositorio y el middleware adicional.
  • Mover o copiar el código existente.
  • Comprobar y ejecutar el código para asegurarse de que todo funciona.

La mayoría de las veces, el recurso administrador ya está utilizado al máximo, por lo que un nuevo entorno puede ser un proceso complicado. Otro problema principal para los desarrolladores de aplicaciones Web tanto del lado del cliente como del lado del servidor es duplicar localmente el entorno de tiempo de ejecución para sus propios propósitos de prueba.

Ahora imagine que usted es parte de un equipo de desarrollo donde usted está usando PaaS. En una situación así, usted tendría una máquina virtual (VM) que contendría todo el entorno del servidor y que literalmente podría transferirse a una memoria flash USB.

Me gustaría llevar su atención a la matriz de conceptos cruzados mostrada en la Parte 1 para que la use como referencia a medida que la serie continúa analizando la PaaS. Esa matriz también se suministra en la Tabla 1.

Tabla 1. Matriz de conceptos cruzados para las tres clasificaciones de la computación en nube
Cambio de paradigmaCaracterísticasTérminos claveVentajasDesventajas y riesgosCuando no usarla
IaaSInfraestructura como un activoNormalmente independiente de la plataforma; los costos de la infraestructura se comparten y por lo tanto se reducen; acuerdos de nivel de servicio (SLAs); pago por uso; auto-escalamiento Computación en cuadrícula, computación de herramientas, instancia de computación, hypervisor, cloudbursting, computación multi-tenencia, agrupación de recursos Evita los gastos de capital en hardware y recursos humanos; riesgo de ROI reducido; bajas barreras a la entrada; escalamiento optimizado y automatizado La eficiencia y productividad de los negocios dependen ampliamente de las capacidades de proveedor; costo a largo plazo potencialmente mayor; la centralización requiere nuevas/diferentes medidas de seguridad Cuando el presupuesto de capital es mayor que el presupuesto operacional
PaaSCompra de licenciasConsume infraestructura de nube; se encarga de métodos ágiles para gestión de proyectosPila de soluciónImplementación de versión optimizadaLa centralización requiere nuevas/diferentes medidas de seguridadN/A
SaaSSoftware como un activo (negocios y consumidor)SLAs; IU potenciada por aplicaciones de "cliente ligero"; componentes de nube; comunicación vía APIs; sin estado; acople ligero; modular; interoperabilidad semántica Cliente ligero; aplicaciones de cliente-servidorEvita los gastos de capital en software y recursos de desarrollo, riesgo de ROI reducido, actualizaciones optimizadas e iterativas La centralización de datos requiere nuevas/diferentes medidas de seguridadN/A

Los principales ingredientes de la PaaS

Tal vez la mejor forma para entender la PaaS es dividirla en sus principales componentes: plataforma y servicio. Ahora considere el servicio que se está suministrando, el cual se conoce comopila de solución. Dicho esto, es lógico suponer que los dos ingredientes principales de la PaaS son la plataforma de computación y la pila de solución.

Para ilustrar estos dos "ingredientes", profundicemos un poco en sus definiciones. Una plataforma computacional, en su forma más simple, se refiere al lugar donde el software se puede iniciar de forma consistente siempre que el código cumpla los estándares de esa plataforma. Ejemplos comunes de plataformas incluyen Windows™, Apple Mac OS X, y Linux® en cuanto a sistemas operativos; Google Android, Windows Mobile® y Apple iOS para computación móvil; y Adobe® AIR™ o la Infraestructura Microsoft® .NET para infraestructuras de software. Lo que es importante recordar es que usted no está hablando sobre el software en sí, sino de la plataforma para la cual está construido para que se ejecute. La Figura 1 proporciona una ilustración para ayudarle a entender esta relación.

Figura 1. Una interpretación gráfica de la relación que hay entre clasificaciones de computación en nube y los elementos de la PaaS
Una interpretación gráfica de la relación que hay entre clasificaciones de computación en nube y los elementos de la PaaS

Ahora que comprende el concepto de plataforma de computación, observemos lo que es una pila de solución . Una pila de solución consiste en las aplicaciones que le ayudarán en el proceso de desarrollo, así como en la implementación de la aplicación. Estas aplicaciones se refieren al sistema operativo, los entornos de tiempo de ejecución, el repositorio de control fuente y cualquier otro middleware requerido.


Seleccionando un proveedor

La pila de solución define aparte las diferentes compañías PaaS, que es algo que usted necesita explorar a mayor profundidad antes de tomar una decisión y subirse al tren de la PaaS.

Estas son algunas de las preguntas básicas que usted tal vez desee hacerse entes de comprometerse con un proveedor PaaS específico:

  • ¿Cuáles infraestructuras y lenguajes soporta? Idealmente, una PaaS debería soportar cualquier infraestructura que esté basada en el lenguaje de selección para esa plataforma.
  • ¿Cuántas aplicaciones puedo crear? La mayoría de proveedores limitan el número de aplicaciones que usted puede crear, según el plan o paquete al que usted se inscriba. Asegúrese de que el proveedor ofrezca un plan o paquete que satisfaga sus necesidades.
  • ¿Qué tipo de contenido se permite? Las infraestructuras que soportan ofrecimientos PaaS normalmente incluyen un concepto conocido como computación multi-tenencia, donde muchos "ocupantes" comparten "residencias" de un solo servidor, separados por instancias de VM administradas por un hypervisor. Un proveedor de PaaS puede tener ciertas restricciones relacionadas con el tipo de aplicación y contenido que usted planee hospedar.
  • ¿Qué tipo de bases de datos se soportan? Esta respuesta es muy importante si usted tiene datos que va a estar moviendo como parte de su aplicación. Usted debe asegurarse de que la base de datos en el ofrecimiento del proveedor sea compatible con el formato que usted pretende utilizar para importar sus datos.
  • ¿Soporta SSL (HTTPS)? Este es otro factor importante por razones de seguridad. Usted va a tener grandes problemas si planea llevar a cabo transacciones mediante sus aplicaciones y encuentra que no se soporta SSL.

Anatomía de la PaaS

Ahora que usted ha llegado a este punto en el aprendizaje sobre PaaS, exploremos cuáles recursos debe considerar cuando compare proveedores de PaaS:

  • Infraestructura de desarrollo de aplicación. Una sólida infraestructura de desarrollo de aplicación construida sobre tecnología que se utilice ampliamente. Lo ideal es que tenga cuidado aquí con relación a posibles cláusulas de permanencia mínima de los proveedores. Las plataformas de fuente abierta como la tecnología Java™ normalmente son una opción segura a este respecto.
  • Facilidad de uso. Una PaaS debe incluir herramientas WYSIWYG fáciles de usar que tengan widgets pre-instalados, componentes de IU integrados, herramientas de arrastrar y soltar y soporte para IDEs estándar. Esta debe facilitar el desarrollo de aplicaciones fácil e iterativo.
  • Herramientas para modelaje de procesos de negocios (BPM). Usted necesita una fuerte infraestructura BPM que le permita modelar procesos de negocios y construir aplicaciones en torno a ella.
  • Disponibilidad. La plataforma de su elección debe ser accesible desde cualquier lugar, en cualquier momento.
  • Escalabilidad. La plataforma debe ser lo suficientemente inteligente como para aprovechar la capacidad elástica de una infraestructura subyacente, para manejar las cargas bajo las cuales será puesta.
  • Seguridad.Para combatir efectivamente las amenazas, la plataforma debe responder a cosas como el scripting cruzado entre sitios, la inyección de SQL, la Negación del Servicio y el cifrado de tráfico, y hacer que esto se incorpore al desarrollo de aplicaciones. Adicionalmente, la plataforma debe soportar capacidades de inicio de sesión único para que usted pueda integrarlas con sus demás aplicaciones de sus instalaciones o con cualquier otra aplicación en nube.
  • Inclusiva. La plataforma debe proporcionar la capacidad para incluir, incorporar e integrar otras aplicaciones construidas en la misma plataforma y en otras.
  • Portabilidad. La plataforma debe ser agnóstica en cuanto a la infraestructura subyacente y debe permitir a las compañías mover la aplicación de una IaaS a otra.
  • Herramientas de transporte. Para facilitar la migración fácil y rápida de datos desde las aplicaciones legadas de las instalaciones hacia la aplicación basada en la nueva plataforma, las herramientas de transformación para importación por lotes son una parte necesaria del kit de herramientas de la plataforma.
  • API. Para efectuar tareas como la autenticación de usuario y el almacenamiento y recuperación de archivos (por ejemplo, archivos y recursos de aplicaciones Web) y algunas veces incluso para realizar llamados directamente hacia una base de datos, la plataforma debe contar con una API bien documentada. Esto permitirá a su negocio tener la flexibilidad para crear y personalizar una aplicación de software para que interactúe con la plataforma, que satisfaga las necesidades específicas de la compañía.

Manejando las cláusulas de permanencia de los proveedores

Cláusula de permanencia significa que un cliente depende de un proveedor y que no puede usar a ningún otro sin que se le apliquen costos sustanciales por cambiarse. La oportunidad de crear un entorno que soporte cláusulas de permanencia de proveedor aumenta con las tecnologías que son relativamente nuevas y que crecen en popularidad, tal como la computación en nube. Los que las adoptan de forma temprana deben tener cuidado de lo que están obteniendo para sí antes de firmar cualquier contrato de IaaS y PaaS en este momento.

Una forma de evitar estas cláusulas es mediante la estandarización de tecnologías de APIs y de plataformas. Organizaciones como Simple Cloud (vea Recursos) ha comenzado a trabajar con proveedores de todos los tamaños para que participen en este proyecto de fuente abierta, para dar consistencia a la PHP en la nube. Para crear Simple Cloud, Zend Technologies, Microsoft, IBM y Rackspace se asociaron con la meta de proporcionar una capa de abstracción a lo largo de diferentes plataformas.

El objetivo de la API Simple Cloud es crear interfaces comunes para los servicios de almacenamiento de archivos, almacenamiento de documentos y de filas simples. Esto le permitirá escribir aplicaciones que se pueden llevar entre los principales proveedores de nube. Los proveedores que están tomando iniciativas como esta para estandarizar la computación en nube deben ser elogiados por hacerlo y se les debe alentar para que continúen con estos esfuerzos. Cuando seleccione un proveedor para que le suministre servicios PaaS a su compañía, le recomiendo especialmente que observe cuidadosamente cuáles proveedores soportan la estandarización. Los estándares facilitan la vida para todos nosotros en el sector de las TI, y lo más importante, le ahorran dinero a los negocios.

Para superar el mercado de PaaS de oportunidades con cláusulas de permanencia, se necesitan proveedores de servicios que soporten la misma API subyacente. La respuesta es simple: los proveedores de servicios que permanezcan en tecnologías patentadas deben acceder a soportar iniciativas de estandarización como las de Simple Cloud.


Conclusión

En este segundo artículo de una serie de tres sobre la anatomía de la computación en nube, usted aprendió cómo caracterizar e identificar la PaaS. También aprendió las preguntas que se deben formular cuando se selecciona un proveedor PaaS y también las precauciones que usted debe tener al seleccionar un proveedor, como las cláusulas de permanencia. El último artículo de esta serie profundizará en la anatomía del SaaS y muestra cómo caracterizarlo e identificarlo. Usted también aprenderá sobre las cosas con las que debe tener cuidado al seleccionar un proveedor de SaaS para proteger su negocio. Mientras tanto, consulte la sección Recursos para enlaces hacia más información sobre la PaaS.

Recursos

Aprender

Comentar

  • Participe en la Comunidad My developerWorks. Conéctese con otros usuarios developerWorks mientras explora los blogs, foros, grupos y wikis dirigidos a desarrolladores.

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Cloud computing
ArticleID=789489
ArticleTitle=Modelos de servicios de la computación en nube, Parte 2: Plataforma como un Servicio
publish-date=01302012