La Interfaz de Gestión de Infraestructura en la Nube (CIMI, por sus siglas en inglés) es una especificación de API estándar y abierta para la gestión de infraestructura en la nube.
El objetivo de CIMI es permitir que los usuarios administren la infraestructura de la nube de manera simple, estandarizando las interacciones entre los entornos de la nube para lograr una gestión interoperable de la infraestructura de la nube entre proveedores de servicios y sus consumidores y desarrolladores.
CIMI 1.1 fue registrado como un Estándar Internacional en agosto de 2014 por el Comité Técnico Conjunto 1 (JTC 1) de la Organización Internacional para Estandarización (ISO) y la Comisión Electrotécnica Internacional (IEC).[1]
El estándar CIMI está definido y publicado por Grupo de Trabajo de Gestión Distribuida (DMTF, por sus siglas en inglés).. Incluye la especificación del Modelo y Protocolo RESTful basado en HTTP de la Interfaz de Gestión de Infraestructura en la Nube (CIMI),[2] el esquema XML de CIMI, el manual básico de CIMI y el documento técnico de casos de uso de CIMI :[3]
CIMI tiene como objetivo proporcionar un único conjunto de interfaces que un consumidor en la nube puede utilizar para proveer y gestionar su infraestructura en la nube en múltiples nubes, por lo que el código del cliente no necesita ser adaptado a cada una de las interfaces propietarias de estos múltiples proveedores. El CIMI se ha descrito como un estándar de jure que está bajo el control del cambio de un cuerpo de normas, contrastándolo con un estándar de facto en el que normalmente un proveedor tiene un control de cambio sobre la interfaz, y todos los demás tienen que cambiar el funcionamiento interno de la misma.[4] Se espera que los proveedores adopten una estrategia dual de ofrecer dos opciones: una oferta compatible con el CIMI y la segunda una oferta más patentada que permita una funcionalidad más patentada.[5]
CIMI está ajustado a la funcionalidad básica de IaaS, tales como el despliegue y la gestión de Máquinas, Volúmenes, Redes, Monitoreo y Sistemas que los agrupan. Incluye un mecanismo de descubrimiento de características para averiguar qué funciones soporta el proveedor de la nube, incluyendo los metadatos que describen capacidades y restricciones de recursos.[6]
El modelo CIMI describe en detalle todos los recursos a los que puede acceder el consumidor de la nube y que son mantenidos por el proveedor de la nube, y sus relaciones.
El principal punto de entrada para el consumidor CIMI es el Punto de Entrada en la Nube del Proveedor de IaaS. Todos los demás datos se descubren, iterativamente:[7]
El modelo es autodescriptivo y permite consultar sus propios metadatos, por ejemplo, para descubrir qué extensiones se han implementado. El modelo también es extensible por el consumidor y el proveedor.[8]
El modelo también define serializaciones tanto en XML como en JSON para cada recurso.
CIMI aborda la gestión del ciclo de vida de la infraestructura proporcionada por un proveedor de IaaS, como la creación, eliminación, visualización y alteración de máquinas virtuales, redes y almacenamiento, y operaciones de inicio y detención. También define operaciones de recursos, como la creación de imágenes de máquinas o instantáneas de máquinas para copia de seguridad y restauración, o para la creación de máquinas virtuales idénticas adicionales.
CIMI permite la importación de un paquete OVF para crear un Sistema con Máquinas y otros recursos CIMI, así como la exportación de un Sistema CIMI de recursos a un paquete OVF.[9] La importación y exportación reales de paquetes OVF son manejadas por el hipervisor subyacente bajo la administración de la implementación de CIMI.
Actualmente, CIMI admite el estilo arquitectónico REST mediante HTTP para todas las interacciones entre el consumidor y los proveedores. También se consideran asignaciones a SOAP y WS-MAN .[8]
Este vínculo de protocolo sigue los principios REST y describe la asignación de verbos de protocolo HTTP a operaciones en el modelo: cada solicitud se envía mediante un verbo HTTP como GET, POST, PUT y DELETE, e incluye un cuerpo de mensaje en formato JSON o XML. . Cada respuesta utiliza un código de estado HTTP estándar, cuya semántica se interpreta en el contexto de la solicitud particular que se realizó.
Se han desarrollado varios adaptadores que exponen un extremo de la API de CIMI para que las aplicaciones de los clientes consuman y traduzcan las llamadas de API a las llamadas de API patentadas de los proveedores admitidos de la nube de destino.
La siguiente es una lista de implementaciones de CIMI:
El grupo de trabajo de CIMI ha anunciado plug-fests para mejorar la interoperabilidad entre las implementaciones de CIMI.[12]