Computación en nube para la empresa: Parte 1: Captura de la nube

Cómo entender la computación en nube y sus tecnologías relacionadas

Si miramos hacia nuestro pasado reciente en materia tecnológica, queda claro que el movimiento de la computación en nube se ha estado gestando desde el momento en que la computación distribuida y sus tecnologías relacionadas (como por ejemplo, computación distribuida y SOA) ganaron amplia aceptación. La computación en nube ahora está con nosotros, aunque muchas personas aún tengan interrogantes acerca de esta nueva tecnología. La Parte 1 de este artículo se ocupa de la computación en nube en general, luego analiza las capas de la nube, presenta los distintos tipos de nubes junto con sus beneficios y desventajas, y explica por qué este movimiento es importante para los desarrolladores de negocios. This content is part of the IBM WebSphere Developer Technical Journal.

Dustin Amrhein, Staff Software Engineer, IBM

Author photoDustin Amrhein joined IBM as a member of the development team for the WebSphere Application Server. While in that position, Dustin worked primarily on web services infrastructure and web services programming models. In addition, Dustin worked on the development of a RESTful services framework for Java runtimes. In his current role Dustin is a WebSphere Client Technical Professional.


Nivel de autor profesional en developerWorks

Scott Quint, Cloud Computing Technology Evangelist, IBM

Scott Quint has been at IBM since 1996. He's been a developer, Lead Engineer, Chief Engineer, Quality Assurance Lead and Designer, Senior Consultant and Project Manager. Most recently Scott was a Lead Engineer for WebSphere Virtual Enterprise and is now a Cloud Computing Technology Evangelist.



01-09-2009

Introducción

¿Qué es la computación en nube?

Esta pregunta suena bastante inofensiva y simple, pero las apariencias engañan. En la actualidad, existen cientos, si no miles, de definiciones de computación en nube en la Web. Para responder adecuadamente a esta pregunta, sería indicado comprender en primer lugar de qué se trata la computación en nube antes de intentar llegar a una definición.

Algunas personas sugieren que la computación en nube es simplemente otro nombre que se da al modelo de Software as a Service (SaaS) que ha estado a la vanguardia del movimiento Web 2.0. Otros opinan que la computación en nube es una exageración marketinera que da una nueva cara a la tecnología antigua, como por ejemplo computación por demanda, virtualización, o computación distribuida. Este pensamiento ignora el hecho de que la computación en nube tiene un alcance más amplio que cualquiera de estas tecnologías particulares. Con seguridad, las soluciones de nubes a menudo incluyen estas (y otras) tecnologías, pero es la estrategia integral la que separa a la computación en nube de sus antecesores.

A los fines de este artículo, considere que la computación en nube es una solución integral en la cual todos los recursos informáticos (hardware, software, sistemas de redes, almacenamiento, etc.) son brindados a los usuarios de manera rápida según lo que determina la demanda. Los recursos o servicios que se brindan son controlables a fin de asegurar cuestiones tales como la alta disponibilidad, la seguridad y la calidad. El factor clave para estas soluciones es que poseen la capacidad de ser escaladas de manera ascendente y descendente, de manera que los usuarios obtengan los recursos que necesitan: ni más ni menos.

En suma, las soluciones de computación en nube permiten que se entregue la IT como un servicio.

¿Por qué computación en nube?

Existen muchos motivos por los cuales cada vez más empresas cambian a soluciones de IT que incluyen computación en nube. En primer lugar, la computación en nube puede recortar los costos asociados con la entrega de servicios de IT. Se pueden reducir costos de capital y operativos al obtener recursos solamente cuando se los necesita, pagando sólo por lo que se usa. Más aún, al trasladar parte de la carga asociada con la gestión de diversos recursos a toda la empresa, el personal clave de la misma puede centrarse más en la producción de valor e innovación para el negocio. Por último, los modelos de computación en nube brindan agilidad al negocio. Debido a que la totalidad de la infraestructura de IT puede escalarse de manera ascendente o descendente para cumplir con la demanda, los negocios pueden cumplir más fácilmente con sus necesidades de los rápidamente cambiantes mercados para asegurarse de estar siempre a la vanguardia para sus consumidores.

Por muchas razones, la computación en nube es la combinación de numerosas tecnologías existentes (SOA, virtualización, computación autónoma) con nuevas ideas a fin de crear una solución informática completa.


Anatomía de una nube

Teniendo lo que esperamos sea una definición aceptable de computación en nube, observemos ahora las capas de la nube. La Figura 1 representa una síntesis de lo que, en opinión de la mayoría, constituye los tres componentes principales de un modelo de nube. Esta figura refleja de manera acertada las proporciones de la masa de IT en su relación con costos, requerimientos de espacio físico, mantenimiento, administración, supervisión gerencial y obsolescencia. Más aún, estas capas no sólo representan la anatomía de una nube, sino la anatomía de la IT en general.

Figura 1. Anatomía de una nube
Anatomía de una nube

Las capas que componen una nube incluyen:

  • Servicios de aplicaciones

    Esta es, quizás, la capa más familiar para los usuarios diarios de la Web. La capa de servicios de aplicaciones aloja a las aplicaciones que se adaptan al modelo SaaS. Estas son aplicaciones que se ejecutan en una nube y se brindan a demanda a modo de servicios a los usuarios. En algunos casos los servicios son gratuitos y los proveedores generan ingresos de cosas tales como avisos en la Web, y otras veces, los proveedores de las aplicaciones generan ingresos directamente de la utilización del servicio. ¿Le suena familiar? Probablemente, ya que casi todos nosotros las hemos usado. Si alguna vez ha hecho su declaración de impuestos online utilizando Turbo Tax, verificado su correo utilizando GMail o Yahoo Mail, o anotado sus citas en Google Calendar, usted está familiarizado con la capa superior de la nube. Estos son sólo algunos ejemplos de estos tipos de aplicaciones. Existen literalmente miles de aplicaciones SaaS, y la cantidad crece a diario gracias a las tecnologías Web 2.0.

    Algo que quizás no sea tan notable para el público en general es el hecho de que existen numerosas aplicaciones en la capa de servicios de aplicaciones que están dirigidas a la comunidad empresarial. Hay ofertas de software alojado disponibles que se ocupan del procesamiento de nóminas, la gestión de recursos humanos, la colaboración, la gestión de relaciones con los clientes, la gestión de relaciones con socios de negocios, y los ejemplos más conocidos de estas ofertas incluyen a IBM® Lotus® Live, IBM Lotus Sametime®, Unyte, Salesforce.com, Sugar CRM, y WebEx.

    En ambos casos, las aplicaciones que se entregan mediante el modelo SaaS benefician a los consumidores evitándoles tener que instalar y mantener el software, y pueden ser utilizadas mediante modelos de licencias que se basan en el concepto de pago por el uso dado.

  • Servicios de plataforma

    Esta es la capa en la cual vemos emerger a la infraestructura de las aplicaciones como un conjunto de servicios. Incluye sin limitaciones, el middleware como servicio, la integración como servicio, la información como servicio, la conectividad como servicio, etc. Aquí, los servicios intentan brindar soporte a las aplicaciones. Es posible que estas aplicaciones se ejecuten en la nube, y es posible que se ejecuten en un centro de datos empresarial más tradicional. Para lograr la escalabilidad requerida dentro de una nube, los distintos servicios que aquí se ofrecen a menudo son virtuales. Entre los ejemplos de ofertas pertenecientes a esta parte de la nube se encuentran las imágenes virtuales de IBM® WebSphere® Application Server, Amazon Web Services, Boomi, Cast Iron, y Google App Engine. Los servicios de plataforma permiten que los consumidores se aseguren de que sus aplicaciones están equipadas para cumplir con las necesidades de los usuarios porque brindan una infraestructura de aplicaciones basada en la demanda.

  • Servicios de infraestructura

    La capa inferior de la nube es la capa de servicios de infraestructura. Aquí, vemos un conjunto de recursos físicos tales como servidores, dispositivos de red, y discos de almacenamiento que se ofrecen como una provisión de servicios al cliente. Aquí, los servicios soportan a la infraestructura de aplicaciones – independientemente de si la infraestructura se provee a través de una nube – y a muchos más consumidores. Al igual que con los servicios de plataforma, la virtualización es con frecuencia el método utilizado para racionalizar los recursos. Dentro de los ejemplos de servicios de infraestructura se encuentran IBM BlueHouse, VMWare, Amazon EC2, Microsoft Azure Platform, Sun ParaScale Cloud Storage, y otros.

    Los servicios de infraestructura se ocupan del problema del equipamiento adecuado de los centros de datos, al asegurar potencia informática cuando se la necesita. Además, debido al hecho que comúnmente se emplean técnicas de virtualización en esta capa, es posible alcanzar ahorros en costos gracias a la utilización más eficiente de los recursos.


Nubes públicas, privadas y híbridas

Ahora que usted tiene una idea sobre qué es la computación en nube y en qué consiste una solución de computación en nube, nos dedicaremos a los principales tres tipos de nube. Para los fines de este artículo, analizaremos todos los tipos de la manera en que se relacionarían con un consumidor empresarial de computación en nube (Figura 2):

Figura 2. Tipos de nube
Tipos de nube
  • Las nubes públicas son servicios de nube provistos por un tercero (proveedor). Existen más allá del firewall de la compañía y están totalmente alojados y gestionados por el proveedor de la nube.

    Las nubes públicas intentan brindar a los consumidores elementos informáticos sin complicaciones. Se trate de software, de infraestructura de aplicaciones o de infraestructura física, el proveedor de la nube asume las responsabilidades de instalación, gestión, provisión y mantenimiento. Los clientes sólo pagan por los recursos que utilizan, de manera que se elimina la infrautilización.

    Sin embargo, esto tiene un costo. Estos servicios se ofrecen usualmente con "convención sobre configuración," lo cual significa que se entregan con la idea de adaptar los casos de uso más comunes. Las opciones de configuración con frecuencia son un subconjunto más pequeño de lo que sería si el recurso fuera controlado directamente por el consumidor. Otro punto a tener en cuenta es que debido a que los consumidores tienen poco control sobre la infraestructura, los procesos que requieren un alto nivel de seguridad y el cumplimiento con normas establecidas no siempre se adaptan bien a las nubes públicas.

  • Las nubes privadas son servicios de nube que se brindan dentro de la empresa. Estas nubes existen dentro del firewall de la empresa y están gestionadas por la misma empresa.

    Las nubes privadas ofrecen muchos de los beneficios que ofrecen las nubes públicas, con una diferencia fundamental: la empresa es la encargada de la configuración y el mantenimiento de la nube. La dificultad y el costo de establecer una nube interna a veces pueden impedir su realización, y es posible que el costo de la operación continua de la nube exceda el de utilizar una nube pública.

    Las nubes privadas ofrecen ventajas respecto de la oferta pública. El control más exhaustivo de los diversos recursos que componen la nube brinda a la empresa todas las opciones de configuración disponibles. Además, las nubes privadas resultan ideales cuando el tipo de trabajo que se realiza no es práctico para una nube pública, debido a factores regulatorios o de seguridad.

  • Las nubes híbridas son una combinación de las nubes públicas y privadas. Por lo general, estas nubes son creadas por empresas, aunque las responsabilidades de gestión se dividen entre la empresa y el proveedor de la nube pública. La nube híbrida aprovecha al máximo servicios que se encuentran tanto en el espacio público como en el privado.

    Las nubes híbridas responden a una situación en la cual una empresa necesita contratar servicios de nube pública y privada. En este sentido, una empresa puede delinear sus metas y necesidades de servicio, y obtenerlas a partir de una nube pública o privada, según resulte adecuado. Una nube bien construida podría atender procesos seguros y fundamentales para la misión de la empresa, como por ejemplo la recepción de pagos de clientes, así como procesos secundarios para el negocio, como por ejemplo, el procesamiento de la nómina de empleados.

    El principal inconveniente de esta nube es la dificultad para crear y controlar eficazmente una solución de estas características. Deben obtenerse y proveerse servicios de diferentes fuentes como si los mismos se hubieran originado en un mismo lugar, y las interacciones entre los componentes públicos y privados pueden hacer que la implementación se vuelva aún más complicada. Debido a que este es un concepto arquitectónico relativamente nuevo en la computación en nube, siguen apareciendo mejores prácticas y herramientas para este patrón, y es probable que el público se muestre reticente a adoptar este modelo hasta que no se tenga más información sobre el mismo.


SOA y la computación en nube

Los antecesores de la computación en nube son numerosas y conocidas tecnologías. A modo de ejemplo, podemos mencionar virtualización, computación por demanda, computación distribuida, hipervisores, y muchos más. Un concepto tecnológico que no siempre se incluye en las conversaciones sobre nubes (aunque definitivamente debiera) es SOA. Service Oriented Architecture ha tenido que ver en permitir que la computación en nube sea lo que es en la actualidad, y debería desempeñar un rol significativo en la evolución de la computación en nube.

En muchos aspectos, la computación en nube puede entenderse como una extensión de las aplicaciones pasadas y de la infraestructura física y de las aplicaciones de SOA. A medida que las empresas y los proveedores de servicios de nube intentan brindar soluciones de nube, su meta principal será habilitar la infraestructura de IT de la empresa como un servicio. Las lecciones aprendidas con el objeto de integrar y proveer aplicaciones empresariales como servicios individuales deberán aplicarse también a la organización y provisión como servicio de las capas de infraestructura. La infraestructura física y de aplicaciones, de manera muy similar a las aplicaciones en SOA, debe ser fácil de descubrir, gestionar y gobernar. Es de esperarse que, de manera similar a SOA, se produzca una evolución de los estándares abiertos que dictan de qué manera estos servicios se deben descubrir, consumir, gestionar y controlar. Así, estos estándares resumirían el ciclo de vida total de una solución de nube.

La Figura 3 toma la idea de un enfoque de nube de tres capas y muestra cómo cada una de ellas fundamentalmente ofrece servicios a una SOA general. En algunos casos, los servicios de las dos capas inferiores se presentan como parte de una SOA, pero lo importante es poder reconocer el enfoque basado en servicios para todas las capas de la nube.

Figura 3. Servicios de nube
Servicios de nube

La nube es importante para el desarrollo

Si usted es un desarrollador o verificador de software, quizás piense que todo suena muy lindo pero no esté demasiado seguro de si tiene importancia para usted. Después de todo, esto es para los administradores, ¿verdad? Esta es una posibilidad bastante común, pero no toma en cuenta los claros beneficios que la computación en nube brinda a los equipos de desarrollo y verificación.

Por ejemplo, uno de los elementos que más inhibe la verificación y el desarrollo es la capacidad de adquirir, implementar, configurar, y alojar entornos en los cuales realizar la verificación de unidades de desarrollo, prototipos, y la verificación de productos completos. Las soluciones de computación en nube pueden utilizarse para crear y alojar estos entornos, quitando la carga de los equipos de verificación y desarrollo y colocando el problema en el ámbito de la nube. Para los equipos de desarrollo, esto significa que se pueden lograr con más facilidad cosas como la integración continua de códigos y los prototipos, ya que resulta relativamente fácil verificar las actualizaciones de productos y los nuevos códigos. Para los equipos de verificación, será posible dedicar más tiempo a la verificación de la calidad de un producto, y menos tiempo a la habilitación de la prueba.

Además de brindar entornos de tiempo de ejecución a los equipos de desarrollo, existe otra área de la nube que apunta directamente a los desarrolladores. Herramientas como servicio - un subconjunto de SaaS – consiste en la idea de que pueden ofrecerse en las nubes las herramientas de desarrollo. Los IDE y los editores de códigos simples se convierten en piezas de software alojadas que son accesibles a los desarrolladores a través de una conexión de Internet. Esto elimina la necesidad que tienen los desarrolladores de contar con IDE locales y sus respectivas licencias en cada una de sus máquinas. Como desarrollador, probablemente comprenderá el valor potencial que se deriva de la posibilidad de acceder a entornos de desarrollo comunes desde cualquier máquina y en cualquier momento.

Existe todavía otro impacto que tiene la computación en nube para los desarrolladores. Debería un llamado para que los desarrolladores adopten APIs de modelos de programación estándar cuando sea posible. Todos los desarrolladores se esfuerzan para ser ciudadanos modelos de programación, adhiriendo estrictamente a los estándares, pero muchos de ellos probablemente se han desviado en algunas ocasiones. Quizás usted se haya desviado debido a que un API de marca registrada le brindaba algunos beneficios tangibles como por ejemplo, rendimiento: en otros casos, quizás sólo quiso “hacer que funcionara”. En la nube, cualquier desviación de un API estándar resulta especialmente peligrosa, y el motivo de esto resulta bastante claro. Si bien los consumidores saben que obtienen el servicio que solicitaron de un proveedor de servicios en nube, quizás no estén al tanto de los detalles de implementación de dicho servicio.

Por ejemplo, considere solicitar un servicio de servidor de aplicaciones J2EE™ de un proveedor de servicios en nube. El proveedor de servicios en nube produce el servicio de servidor de aplicaciones, pero probablemente usted no tenga idea de cuál es el proveedor del servidor que recibe, a menos que haya negociado un acuerdo específico con dicho proveedor. Toda aplicación que usted elija implementar en el servidor provisto deberá estar libre de códigos específicos del proveedor, debido a que usted puede terminar teniendo una implementación de servidor de aplicaciones que no esperaba.


Herramientas para las nubes

Uno de los componentes principales de la computación en nube mencionada anteriormente son las herramientas. En muchos aspectos, éste puede ser el factor más crítico para el éxito de una solución de computación en nube. El mercado ofrece tecnología significativa para entregar soluciones de computación en nube, pero estas tecnologías a menudo son difíciles de entregar debido a la falta de herramientas integrales y comprensibles.

Considere la capa de servicios de aplicaciones de la nube. Las herramientas de esta capa podrían brindar un entorno que ayudara al desarrollo de una aplicación en la nube, y debería brindar los medios para empaquetar e implementar la aplicación en una infraestructura de nube. Sabemos que ya existen muchas herramientas que se adecuan a esta descripción, pero el problema radica en que casi siempre están relacionadas con la infraestructura del proveedor de servicios de nube. Los estándares abiertos resultan clave para obtener la mayor potencia y flexibilidad de estas herramientas. Los desarrolladores no cuentan con los medios para pagar los costos de capacitarse en el uso de nuevas herramientas cada vez que cambian de infraestructura de nube; más aún, los negocios de desarrollo no pueden continuamente afrontar los costos de reprogramar sus aplicaciones por haber cambiado de infraestructura de nube. Por este motivo, las herramientas deberán ayudar al desarrollo, el empaquetado y la implementación de las aplicaciones de un modo que permita que el proyecto final pueda utilizarse en múltiples infraestructuras de nube.

Las herramientas también desempeñan un rol muy claro en la capa de servicios de la infraestructura. La construcción de infraestructura para una nube no es un proceso trivial. Es necesario considerar todos los recursos físicos de un proveedor de servicios de nube, ya sea interno o externo, de manera tal que se asignen a la nube los recursos físicos adecuados. Las herramientas en este espacio deberán ayudar a las empresas a visualizar sus recursos de IT de modo de no dejar de lado ninguno de ellos para la nube. Sin embargo, brindar al constructor de la nube una visualización de los recursos no será suficiente. Las herramientas de este espacio deberán ofrecer cierto nivel de inteligencia en cuanto a la creación de la nube. En el pasado, los administradores de IT han tenido un arduo trabajo al tratar de hallar una correspondencia entre la demanda esperada y los recursos físicos. Esto ha llevado al problema de la subutilización de los recursos, y este problema aparece como un enorme catalizador para la nube. Las herramientas deberán guiar a los usuarios a través de la composición física de la nube en base a las características de demanda esperadas del sistema.


Resumen

La computación en nube se plantea como un actor significativo en la industria tecnológica actual y del futuro cercano. En su última expresión, brindará los medios para que IT pueda ser entregada a los consumidores como un servicio. La cantidad de ofertas de productos y servicios del espacio de la computación en nube sigue en aumento y subraya el hecho de que éste es el destino de las cosas. Estamos entusiasmados con las oportunidades que presenta la computación en nube a nuestros desarrolladores de WebSphere, y en los próximos artículos, seguiremos ocupándonos de algunas de estas oportunidades y analizando algunas de las soluciones de WebSphere que hacen que la computación en nube pase de ser una idea a generar ganancias para las empresas.

Recursos

Aprender

Comentar

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=WebSphere, Lotus, Rational
ArticleID=424839
ArticleTitle=Computación en nube para la empresa: Parte 1: Captura de la nube
publish-date=09012009