Esta es la primera de una serie de puestos en los que vamos a echar un vistazo a las tecnologías, el pensamiento y proyectos de código abierto que están alimentando en futuros productos de computación en la nube de hoja de ruta de RedHat.
Diferentes nubes, tanto públicos como privados, hablan idiomas diferentes.
Que esta Torre de Babel existe no es especialmente sorprendente. La rapidez con que las tecnologías y prácticas que definen el cloud computing están evolucionando casi asegurar que no hay manera para cualquier estándar formal para salir delante de lo que los clientes y proveedores están experimentando con la aplicación y todos los días. Mientras que el cloud computing a menudo se basa en productos y enfoques existentes, sería ingenuo suponer en este momento de su desarrollo que cualquier proveedor o una organización de estándares tiene la plantilla para el "correcto" del lenguaje.
No es que debemos esperar un léxico único que ha de adoptar todas las nubes, en cualquier caso. Dejemos de lado por un momento que algunos vendedores y proveedores de servicios prefieren interfaces incompatibles que hacen más difícil para los clientes a saltar sobre la nube privada de otro proveedor u otro proveedor de servicios. Tampoco todas las nubes tienen la misma finalidad y objetivos. Se podría exponer a un montón de opciones, otro podría optar por mantener las cosas simples. Uno de ellos es más preocupados por ofrecer a sus clientes con un fuerte control a los niveles de servicio, y otra solo se concentra en los costos. Reglamento en un mandato específico de la industria puede interfaces que se relacionan con la auditoría y de cumplimiento que no son necesarios por la mayoría de los usuarios.
En resumen, una nube no sirve para todos y una nube de idioma no se ajusta a todos. Sin embargo, como vicepresidente de RedHat y gerente general de nuestra nube de Negocios Scott Crenshaw dice, "La promesa de la nube no se puede lograr si los vendedores crear islas." Eso es porque una gran parte de la visión de la computación nube es abstraer los recursos informáticos para que las aplicaciones se pueden dar con precisión los recursos que necesitan en la ubicación física que tiene sentido comercial. Eso hace mucho más difícil si las interfaces incompatibles excluir el movimiento fácil.
En este punto, vamos a ser técnicamente más precisa sobre lo que entendemos por "lenguaje" en el contexto de las infraestructuras-como-a-Service (IaaS) las nubes. Digamos que usted desea ejecutar una aplicación contenedora, es decir, una máquina virtual (VM)-en "la nube". Para ello, necesita ser capaz de girar un recurso de computación del tamaño deseado, tal vez asignar persistentes de almacenamiento, sistema interfaces de red y configurar los sistemas de copia de seguridad y así sucesivamente según las necesidades de la aplicación. Idealmente, usted sería capaz de hacer esto de la misma forma en cada nube de modo que usted puede tratar a cada nube como parte integrante de un fondo de recursos único. Pero no se puede porque las nubes diferentes tienen diferentes interfaces de programación de aplicaciones (API). Los comandos que había problema, por ejemplo, crear e iniciar una máquina virtual de un determinado tamaño o tipo no son los mismos a través de las nubes.
La respuesta obvia es utilizar algún tipo de traducción "corrección." Si hay un encantamiento para crear un pequeño ejemplo Amazon EC2 y un encantamiento diferente para hacer lo mismo en otro proveedor de servicios, sólo tiene que asignar una a la otra. Muy sencillo. Y, en efecto, vemos un grado de interoperabilidad conseguido utilizando sólo este tipo de asignación de las funciones básicas de nubes en algunos productos la gestión pública de las nubes.
Sin embargo, ir más allá de la traducción mínimo común denominador de las funciones de nivel básico-es un problema más complicado.
RedHat se inició la lucha contra este problema en septiembre de 2009 cuando se presentó el proyecto Deltacloud. Como director de tecnología Brian Stevens escribió en su momento, "El objetivo es simple. Para habilitar un ecosistema de desarrolladores, herramientas, scripts y aplicaciones que pueden interoperar a través de las nubes públicas y privadas. "
Sin embargo, aunque la meta panorama puede haber sido sencilla, los detalles implicados en conseguir que no son tan sencillas. No todos estos detalles eran técnicos. Por ejemplo, puede ser difícil para un proyecto de interoperabilidad que está bajo el control efectivo de un único proveedor para obtener un amplio apoyo. Incluso si el código es de código abierto, como una serie de marcos de interoperabilidad, incluidas Deltacloud son, los temas de participación comunitaria y gestión del proyecto siguen siendo. Eso es una razón importante que Deltacloud se hizo un proyecto de la Incubadora bajo la Fundación de Software Apache en mayo pasado. La propuesta de la incubadora declaró:
Asimismo, no hay esfuerzos que para definir una nube de código abierto realmente API, una para los que existe una gestión adecuada, independiente aguas arriba de cualquier proveedor de nube específicos. Deltacloud API se esfuerza por crear una comunidad en torno a la construcción de una nube de código abierto de la API de una manera que permite completamente por-verdadero código abierto y los mecanismos de probada eficacia como el impulsado por la innovación de usuario.
El proyecto cuenta con conceptos técnicos específicos y las metas también.
El primero de ellos es ser un lenguaje informático agnóstico. Por el contrario, un marco como jclouds está escrito en Java y se centra específicamente en el desarrollo de Java. Deltacloud está escrito en Ruby ( junto con la Web marco Sinatra ), pero todas las comunicaciones de los clientes se manejan a través de un REST interfaz, un estilo ampliamente usado de cliente ligero y la interacción de servidores. (Por ejemplo, Amazon Web Services se accede a través de interfaces REST en la gran mayoría de los casos.) Deltacloud continuación, puede interactuar con las API de nubes existentes a través de un trozo de código modular llamado controlador. Así, los clientes pueden apoyar diferentes idiomas diferentes computadoras y controladores diferentes pueden apoyar nubes diferentes destinatarios, sin que afecten el núcleo Deltacloud. (Deltacloud también puede apoyar nubes directamente con código nativo.)
Otra ventaja de este modelo es que el cliente y la nube de destino están disociados entre sí. Diferentes clientes escritos en diferentes idiomas puede hablar con un conjunto arbitrario de las nubes de apoyo. Esto se vuelve particularmente importante cuando se considera que el cloud computing introduce conceptos como la abstracción de los recursos que implican que las cargas de trabajo son en gran medida aislado de los detalles operativos, tales como dónde van a correr.
En cuanto a la cartografía de las API va, esto ocurre en un par de maneras diferentes. La primera es la de suavizar las diferencias API que son esencialmente mecánica. En términos del lenguaje humano, "caballo" en Inglés es el equivalente a "cheval" en francés. Las palabras son diferentes, sí, pero tienen exactamente el mismo significado. La traducción es por lo tanto un ejercicio sencillo, sin pérdida de matices o lenguaje riqueza simplemente haciendo una asignación directa.
Sin embargo, las asignaciones de otros no son tan sencillas. La tan contó la historia sobre el número inusualmente grande de palabras que los esquimales tienen para la nieve es al parecer una leyenda urbana, pero la idea básica es que es difícil de traducir sólo un rico vocabulario en una operación sencilla y sin perder algo en el proceso. En términos de Cloud Computing, imagine por ejemplo, si un proveedor de nube que ofrece un solo tamaño de máquina virtual, mientras que otro le permiten configurar una máquina virtual de tamaño arbitrario. Un mínimo común denominador de la API sólo permite crear ese tamaño único de VM, incluso cuando se ejecuta en la plataforma más flexible.
Deltacloud se ocupa de este desafío mediante la abstracción de los modelos y métodos utilizados por los diferentes proveedores de nubes públicas y privadas para una enfoques fundamentales pocos. En esencia, se entiende como una nube dada realiza una función determinada, como la autenticación y los recursos que una "pequeña" instancia de VM, por ejemplo, incluye en una nube determinada. perfiles definidos por el hardware que especificar la cantidad de energía de la CPU, almacenamiento, etc de una instancia se puede asignar la mayor medida posible a las posibilidades ofrecidas por una nube determinada.
Habida cuenta de cómo los conceptos centrales, tales como la abstracción y la movilidad de la carga de trabajo se cloud computing, la importancia de la interoperabilidad entre las nubes será cada vez más importante. Al mismo tiempo, este es un sector en rápido desarrollo y el líquido así que la idea de bloquear un conjunto rígido de interfaces que están ligados a un único proveedor o un esfuerzo formal de normalización de movimiento lento no es particularmente atractivo tampoco. Deltacloud aborda el problema mediante una combinación de desarrollo de código abierto y un enfoque específico y complementario en la comunidad y la gobernanza.
Próximamente: Un podcast discusión con el director técnico de Red Hat Carl Trieloff acerca de lo que es importante en una arquitectura de nube.




















