Cloud Infrastructure Management Interface
Abbreviation | CIMI |
---|---|
Status | Published |
Year started | 2010 |
Latest version | 1.1 October 2013 |
Organization | Distributed Management Task Force |
Related standards | Open Virtualisation Format (OVF) |
Domain | Cloud computing |
Website | Cloud Management Working Group |
Cloud Infrastructure Management Interface (CIMI) is an open standard API specification for managing cloud infrastructure.
CIMI aims to standardize interactions between cloud environments to achieve interoperable cloud infrastructure management between service providers and their consumers and developers, enabling users to manage their cloud infrastructure easily and without complexity.
Overview
The CIMI standard is defined and published by the Distributed Management Task Force (DMTF). It includes the Cloud Infrastructure Management Interface (CIMI) Model and RESTful HTTP-based Protocol, the CIMI XML Schema[1] and CIMI Primer:
- Cloud Infrastructure Management Interface (CIMI) Model and RESTful HTTP-based Protocol
- The Cloud Infrastructure Management Interface (CIMI) Model and RESTful HTTP-based Protocol Specification defines the architecture and concepts of CIMI.
- CIMI XML Schema
- The CIMI XML Schema defines the XML representation of the CIMI model.
- CIMI Primer
- The CIMI Primer explains how clients can use the CIMI API for some common use cases, such as listing Machine Images and Configurations, creating a Machine from a Template and then retrieving details about it.
Goals
CIMI aims to provide a single interface that a cloud consumer can use to manage their cloud infrastructure in multiple clouds, so client code no longer needs to be adapted to each of the proprietary interfaces from these multiple vendors. Also, unlike a de facto standard where typically one vendor has change control over the interface, and everyone else has to reverse engineer the inner workings of it, CIMI is a de jure standard that is under change control of a standards body.[2] It takes a pragmatic view towards the standard and is expecting vendors to embrace a dual strategy that sees them deliver two products – one a CIMI compliant offering and the second a more proprietary offering that allows for more proprietary functionality.[3]
Scope
CIMI is scoped to the core IaaS functionality such as deploying and managing Machines, Volumes, Networks, Monitoring, and Systems that group them. It includes a feature discovery mechanism to find out what functions the cloud provider supports, including the metadata describing capabilities and resource constraints.[4]
Terminology
- Cloud Provider
- An entity (person or organization) responsible for making services available to interested parties (Cloud Consumers).
- Cloud Consumer
- An entity (person or organization) that maintains a business relationship with and uses services provided by Cloud Providers.
- Collection
- A kind of Resource that contains a collection of other Resources and has a representation and serialization defined in the CIMI pecification. Synonym for “CIMI collection".
- Configuration
- A set of metadata attributes and values which serve as parameters for instantiating resources.
- Resource
- A representation of an entity managed by the Cloud Provider that is generally available to the Cloud Consumer to access or operate on by the way of the interface described in the CIMI specification. Synonym for “CIMI resource”.
- Template
- A Resource that represents the set of metadata and instructions used to instantiate some other Resource (e.g., a MachineTemplate is used to create Machines). Synonym for “CIMI template”. Templates may aggregate other metadata Resources such as other Templates, Configurations, and Images. For example, a MachineTemplate refers to a MachineConfiguration and a MachineImage.
Model and Features
Model
The CIMI model describes in details all the resources that are accessible by the Cloud Consumer and are maintained by the Cloud Provider and their relationship.
The model is self-describing and allows for querying its own metadata, e.g., to discover which extensions have been implemented. The model is also extensible by the Consumer and the Provider.
The model also defines serializations both in XML and JSON for each Resource.
Common Attributes
Each CIMI resource (with exception of few) share the following common attributes:
Attribute |
Type |
Description |
id |
URI |
The unique URI identifying this Resource; assigned upon Resource creation. This attribute is unique in the Provider’s cloud. |
name |
string |
The human-readable name of this Resource; assigned by the creator as a part of the Resource creation input. |
description |
string |
The human-readable description of this Resource; assigned by the creator as a part of the Resource creation input. |
created |
dateTime |
The timestamp when this Resource was created |
updated |
dateTime |
The timestamp when this Resources was updated |
properties |
map |
A map of key/value pairs (each entry called a "property"), some of which may control one or more aspects this Resource. Properties may also serve as an extension point, allowing Consumers to record additional information about the Resource |
Resource Metadata
…
Capabilities
Capabilities is a set of Provider-defined metadata that can be used by Consumer to discover any capability or feature supported by the Provider.
Example of capabilities:
Resource Name |
Capability Name |
Description |
CloudEntryPoint |
ExpandParameter |
If true, the Provider shall support the $expand query parameter. |
CloudEntryPoint |
FilterParameter |
If true, the Provider shall support the $filter query parameter. |
CloudEntryPoint |
FirstParameter |
If true, the Provider shall support both the $first and $last query parameters. |
CloudEntryPoint |
SelectParameter |
If true, the Provider shall support the $select query parameter |
Volume
A Volume represents storage at either the block or the file-system level. Volumes can be connected to Machines. Once connected, Volumes can be accessed by processes on that Machine.
Selected Volume attributes:
Attribute |
Type |
Description |
Network
A network is a collection of interconnected logical services with the purpose of forwarding data traffic between end points.
Job
Meter
Event
EventLog
System
A System is a realized Resource that consists of one or more Networks, Volumes, Machines, (and others) that could be connected and associated with each other. A System can be created from the interpretation of a System Template. A System can be operated and managed as a single Resource and usually forms a stack of service. For example, a shopping cart system consists of machines for web servers and databases, network addresses for public access, and volumes for database files. A System may directly provide a user-facing component, or may provide an infrastructure component.
Protocols
CIMI currently supports the RESTful [REST] architectural style using HTTP for all interactions between the Consumer and the Providers.
All CIMI operations are based on the HTTP version 1.1 protocol [RFC2616]. Each request is sent by using an HTTP verb such as PUT, GET, DELETE,HEAD, or POST and includes a message body in either JSON or XML format. Each response uses a standard HTTP status code, whose semantics are interpreted in the context of the particular request that was made.
Each Resource in the model has a MIME type that further contextualizes the payload of requests and responses. All resources in the model are identified by URIs, and each Resource's representation contains an "ID" attribute of type URI, that acts as a "self-pointer.” This URI is unique within the context of the Provider's implementation.
Serialization
.
Implementations
Apache Deltacloud, OW2 Sirocco Project, StratusLab Project, CIMI interface for OpenStack [5]
Include plug-fests for improved interoperability?[6]
History
References
- ^ "CIMI XML Schema". Retrieved 2014-06-30.
- ^ Carlson, Mark. "Cloud Infrastructure has a new standard". Retrieved 2012-08-29.
- ^ Kepes, Ben (2012-09-07). "DMTF's Cloud Infrastructure Standard".
- ^ Norfolk, David (2012-09-20). "The DMTF's Cloud Infrastructure Management Interface (CIMI), a new cloud infrastructure management standard". Bloor.
- ^ "Infrastructure as a service cloud development". Retrieved 2012-01-30.
- ^ Chawki, Jamil (2012-11-05). "la nouvelle norme de gestion IaaS : CIMI".
See also
Category:DMTF standards Category:Cloud computing Category:Cloud standards Category:Application programming interfaces Category:Open standards