Jump to content

Cloud Infrastructure Management Interface

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Dkoper (talk | contribs) at 04:01, 30 June 2014 (added link to XML schema). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


Cloud Infrastructure Management Interface
AbbreviationCIMI
StatusPublished
Year started2010
Latest version1.1
October 2013
OrganizationDistributed Management Task Force
Related standardsOpen Virtualisation Format (OVF)
DomainCloud computing
WebsiteCloud 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

  1. ^ "CIMI XML Schema". Retrieved 2014-06-30.
  2. ^ Carlson, Mark. "Cloud Infrastructure has a new standard". Retrieved 2012-08-29.
  3. ^ Kepes, Ben (2012-09-07). "DMTF's Cloud Infrastructure Standard".
  4. ^ Norfolk, David (2012-09-20). "The DMTF's Cloud Infrastructure Management Interface (CIMI), a new cloud infrastructure management standard". Bloor.
  5. ^ "Infrastructure as a service cloud development". Retrieved 2012-01-30.
  6. ^ 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