Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

Difference between revisions of "Fedcloud-tf:WorkGroups:Scenario1"

From EGIWiki
Jump to navigation Jump to search
(Redirected page to Federated Cloud VM Management)
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Fedcloud-tf:Menu}} {{Fedcloud-tf:WorkGroups:Menu}} {{TOC_right}}
#REDIRECT[[Federated_Cloud_VM_Management]]
 
= Scenario 1: Virtual Machine Management  =
 
{| class="wikitable"
|-
! Role
! Institution
! Name
|-
| Scenario leader
| CESNET
| Boris Parák
|-
| Collaborator
| CESNET
| Zdeněk Šustr
|-
| Collaborator
| IFCA
| Enol Fernández
|-
| Collaborator
| GRNET
| Kostas Koumantaros
|}
 
== Scenario Task(s) ==
* Review available Open Standards for Virtual Machine Management.
* Choose an appropriate Open Standard to handle Virtual Machine Management in EGI Federated Cloud.
* (if necessary) Implement support for the chosen Open Standard in/for as many Cloud Management Frameworks (CMFs)/Public Cloud Service Providers (PCSP) as possible.
* (if necessary) Implement/integrate client(s) harnessing all relevant available features of the chosen Open Standard.
* Deploy and continuously maintain deployed components.
* Provide EGI Operations with extensive installation documentation.
* Provide EGI UCST with extensive user documentation.
* Provide feedback to organization(s) developing the chosen Open Standard and help with its future development.
 
== Available Open Standards ==
=== OCCI ===
 
Developed by the [http://occi-wg.org/ Open Grid Forum], OCCI is a boundary protocol and API that acts as a service front-end to a provider’s internal management framework by exposing its resources. As of this writing (early 2015) the specification consist of three documents:
 
* OCCI Core describing the formal definition of the the OCCI Core Model
* OCCI Infrastructure defining the OCCI Infrastructure extension for the IaaS domain, defining additional resource types, their attributes and the actions that can be taken on each resource type
* OCCI HTTP Rendering defining interaction with the OCCI Core Model using the RESTful OCCI API
 
The OCCI Working Group is also working on additional specification, currently in various stages of progress:
 
* OCCI XML Rendering
* OCCI JSON Rendering
* OCCI Billing and Monitoring
* OCCI PaaS extension
* OCCI SLAs extension
 
=== CIMI ===
 
The Cloud Infrastructure Management Interface is a standard released by [http://dmtf.org/standards/cloud DMTF]. Similarly to OCCI, it also
consists of multiple specifications:
 
* CIMI Primer (DSP2027) v. 1.0.0
* CIMI (DSP0263) v. 1.1.0
* CIMI-CIM (DSP0264) v. 1.0.0
 
CIMI is a highly specific IaaS protocol, defining a wide range of attributes
applicable in the context of IaaS. This is what mainly distinguishes it from OCCI,
which is a much more light-weight, generic boundary-level protocol, relying on
its extensibility to cover specific areas.
 
== OGF's Open Cloud Computing Interface ==
 
OCCI was selected for the FedCloud environment for multiple reasons, chief among them its simplicity, extensibility and the fact that other standards of that kind (such asi CIMI) have not been published until well after the initiative started.
 
For protocol details, please, read:
* OGF OCCI 1.1 Core Specification -- [http://ogf.org/documents/GFD.183.pdf GFD-183]
* OGF OCCI 1.1 Infrastructure Specification -- [http://ogf.org/documents/GFD.184.pdf GFD-184]
* OGF OCCI 1.1 HTTP Rendering Specification -- [http://ogf.org/documents/GFD.185.pdf GFD-185]
 
== Available OCCI implementations ==
=== Server-side Implementations ===
==== rOCCI-server ====
 
rOCCI-server, part of the rOCCI Framework, is a stand-alone service providing "translation" between OCCI and proprietary cloud management frameworks, which are not otherwise OCCI-compatible. Individual types of clod management framework are provided through specific backends. The list of currently available backends is available in the [[ROCCI-server_Backend_development_status]] page.
 
rOCCI-server can be obtained [https://github.com/EGI-FCTF/rOCCI-server as source from GitHub] or in the form of [https://appdb.egi.eu/store/software/rocci.server packages from EGI's AppDB].
 
Common documentation for the whole rOCCI framework is available at the [[rOCCI:ROCCI|EGI Wiki]].
 
==== OCCI-OS ====
 
OCCI-OS provides a python egg which can be easily deployed in OpenStack and will thereby add OCCI support and interface to OpenStack. Available and documented at [https://github.com/stackforge/occi-os].
 
==== snf-occi ====
 
snf-occi implements the OCCI specification and maps it to the Synnefo OpenStack API, so it acts as a translation bridge between OCCI and Synnefo, providing an OCCI compatibility layer. [https://github.com/grnet/snf-occi/blob/master/docs/index.rst]
 
=== Client-side Implementations ===
==== rOCCI-cli ====
 
rOCCI-cli, another part of the rOCCI Framework, is a command-line client capable of communicating with any OCCI-enabled server. It supports several methods of authentication, including X.509 certificates and proxy certificates.
 
rOCCI-cli can be obtained [https://github.com/EGI-FCTF/rOCCI-cli as source from GitHub] or in the form of [https://appdb.egi.eu/store/software/rocci.cli packages from EGI's AppDB].
 
Common documentation for the whole rOCCI framework is available at the [[rOCCI:ROCCI|EGI Wiki]].
 
=== Libraries ===
==== rOCCI-core and rOCCI-api ====
 
Core parts of the rOCCI framework, the rOCCI-core library implements the OCCI class structure in Ruby, which allows developers to work with OCCI concepts natively. rOCCI-api takes care of transporting OCCI messages, currently supporting HTTP as the only transport protocol.
 
==== pyssf ====
 
pyssf is a set of python modules developed by Platform Computing, man contributors to the OCCI standard. Source as well as documentation is available from GitHub [https://github.com/tmetsch/pyssf].
 
==== jOCCI-core and jOCCI-api ====
 
jOCCI is an independent OCCI implementation by the authors of rOCCI. It satisfies the demand for a Java library, replacing the previous alternative based on JRuby. Currently in development, is is available as source from Github [https://github.com/EGI-FCTF/jOCCI-core] [https://github.com/EGI-FCTF/jOCCI-api].
 
== Ongoing Efforts ==
=== Interoperability ===
Aligning behavior between different implementations and CMFs.
 
See [[Fedcloud-tf:WorkGroups:Scenario1#Interoperability_Table]]
 
=== Authentication ===
Introducing the support for Keystone-like authentication protocol in every available implementation and CMF.
 
See [http://keystone-voms.readthedocs.org/en/stable-juno/test.html Keystone-VOMS docs]
 
=== Deployment ===
Continuous deployment of maintenance updates and new versions for every implementation and CMF.
 
=== Support for new platforms & public providers ===
Introducing support for new CMFs and public cloud providers.
 
=== Support for native interfaces ===
Exploring the possibility of exploiting native CMF interfaces as well as inter-operable interfaces.
 
== Activities ==
{| class="wikitable" width="100%"
!Activity
!Description
!Responsible
!Deadline
!Status
|-
|
|
|
|
|
|}
 
== Interoperability Table ==
 
{|border="1" style="border-collapse:collapse; text-align:center;" cellpadding="4" width="100%"
|+ Legend
! rowspan="1"|Symbol
! rowspan="1"|Meaning
|-
| style="background-color:lightgreen;"| OK
| style="text-align:left;"            | Compliant with the official specification and EGI Federated Cloud requirements/extensions.
|-
| style="background-color:yellow;"    | PART
| style="text-align:left;"            | Partially compliant with the official specification and EGI Federated Cloud requirements/extensions. Details available in ''Comments''.
|-
| style="background-color:#ff7777;"  | NOK
| style="text-align:left;"            | Not compliant with the official specification and EGI Federated Cloud requirements/extensions. Details available in ''Comments''.
|-
| style="background-color:gray;"      | UNKN
| style="text-align:left;"            |Compliance with the official specification and EGI Federated Cloud requirements/extensions is unknown.
|}
 
=== Servers ===
'''Please note that this table is work in progress!'''
 
{|border="1" style="border-collapse:collapse; text-align:center;" cellpadding="4" width="100%"
|+ Compatibility of different OCCI server implementations – this table sums up basic tasks that can be performed over OCCI in different cloud management frameworks
! rowspan="2"|Task
! rowspan="2"|Subtask
! colspan="3"|<font color="#cc342d">r</font><font color="#0091c5">OCCI</font>-server
! rowspan="2"|OCCI-OS<BR>OpenStack
! rowspan="2"|snf-occi<BR>Synnefo
! rowspan="2"|Comments
|-
!OpenNebula
! width="80px"|AWS
! width="80px"|MS Azure
|-
|rowspan="4" style="text-align:left;"| Retrieving model
| Category Classes<BR>(<code>Kind</code>, <code>Action</code>, <code>Mixin</code>)
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| Core Kinds<BR>(<code>Entity</code>, <code>Resource</code>, <code>Link</code>)
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| Infrastructure Kinds<BR>(<code>Compute</code>, <code>Network</code>, <code>Storage</code>)
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| Infrastructure Mixins<BR>(<code>os_tpl</code>, <code>resource_tpl</code>)
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|style="text-align:left;" colspan="2"|Creating <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Querying <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Destroying <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Creating <code>Storage</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|colspan="2" style="text-align:left;"|Querying <code>Storage</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|colspan="2" style="text-align:left;"|Destroying <code>Storage</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|rowspan="2" style="text-align:left;"|Attaching <code>Storage</code> to <code>Compute</code>
|On creation
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|In run-time
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|colspan="2" style="text-align:left;"|Detaching <code>Storage</code> from <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|colspan="2" style="text-align:left;"|Creating <code>Network</code>
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
|
|-
|colspan="2" style="text-align:left;"|Querying <code>Network</code>
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
|
|-
|colspan="2" style="text-align:left;"|Destroying <code>Network</code>
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
| style="background-color:#ff7777;"| NOK
|
|-
|rowspan="2" style="text-align:left;"|Attaching <code>Network</code> to <code>Compute</code>
|On creation
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|In run-time
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|colspan="2" style="text-align:left;"|Detaching <code>Network</code> from <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|rowspan="11" style="text-align:left;"|<code>Action</code>s on <code>Resource</code>s
| style="text-align:left;background-color:#f0f0f0;"| Compute &ndash; <code>start</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Compute &ndash; <code>stop</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Compute &ndash; <code>restart</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Compute &ndash; <code>suspend</code>
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;"| Storage &ndash; <code>online</code>
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;"| Storage &ndash; <code>offline</code>
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;"| Storage &ndash; <code>backup</code>
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;"| Storage &ndash; <code>snapshot</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;"| Storage &ndash; <code>resize</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Network &ndash; <code>up</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Network &ndash; <code>down</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|
|
|-
|colspan="2" style="text-align:left;"|Contextualization on <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|
|
|}
 
=== Clients ===
'''Please note that this table is work in progress!'''
 
{|border="1" style="border-collapse:collapse; text-align:center;" cellpadding="4" width="100%"
|+ Compatibility of different OCCI client implementations &ndash; this table sums up basic tasks that can be performed over OCCI in different clients
! rowspan="1"|Task
! rowspan="1"|Subtask
! rowspan="1"|<font color="#cc342d">r</font><font color="#0091c5">OCCI</font>-{core, api, cli}
! rowspan="1"|jOCCI-{core, api}
! rowspan="1"|Comments
|-
|rowspan="4" style="text-align:left;"| Retrieving model
| Category Classes<BR>(<code>Kind</code>, <code>Action</code>, <code>Mixin</code>)
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
| Core Kinds<BR>(<code>Entity</code>, <code>Resource</code>, <code>Link</code>)
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
| Infrastructure Kinds<BR>(<code>Compute</code>, <code>Network</code>, <code>Storage</code>)
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
| Infrastructure Mixins<BR>(<code>os_tpl</code>, <code>resource_tpl</code>)
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|style="text-align:left;" colspan="2"|Creating <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Querying <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Destroying <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Creating <code>Storage</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Querying <code>Storage</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Destroying <code>Storage</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|rowspan="2" style="text-align:left;"|Attaching <code>Storage</code> to <code>Compute</code>
|On creation
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|In run-time
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Detaching <code>Storage</code> from <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Creating <code>Network</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|-
|colspan="2" style="text-align:left;"|Querying <code>Network</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|-
|colspan="2" style="text-align:left;"|Destroying <code>Network</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|-
|rowspan="2" style="text-align:left;"|Attaching <code>Network</code> to <code>Compute</code>
|On creation
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|In run-time
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|colspan="2" style="text-align:left;"|Detaching <code>Network</code> from <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
|rowspan="11" style="text-align:left;"|<code>Action</code>s on <code>Resource</code>s
| style="text-align:left;background-color:#f0f0f0;"| Compute &ndash; <code>start</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Compute &ndash; <code>stop</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Compute &ndash; <code>restart</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Compute &ndash; <code>suspend</code>
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|-
| style="text-align:left;"| Storage &ndash; <code>online</code>
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|-
| style="text-align:left;"| Storage &ndash; <code>offline</code>
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|-
| style="text-align:left;"| Storage &ndash; <code>backup</code>
| style="background-color:lightgreen;"| OK
| style="background-color:#ff7777;"  | NOK
|
|-
| style="text-align:left;"| Storage &ndash; <code>snapshot</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:lightgreen;"| OK
|
|-
| style="text-align:left;"| Storage &ndash; <code>resize</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Network &ndash; <code>up</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|-
| style="text-align:left;background-color:#f0f0f0;"| Network &ndash; <code>down</code>
| style="background-color:#ff7777;"  | NOK
| style="background-color:#ff7777;"  | NOK
|
|-
|colspan="2" style="text-align:left;"|Contextualization on <code>Compute</code>
| style="background-color:lightgreen;"| OK
| style="background-color:lightgreen;"| OK
|
|}
 
=== Installation Manuals ===
==== OpenNebula ====
==== OpenStack ====
==== Synnefo ====
==== Amazon WS EC2 ====
==== Microsoft Azure ====
 
== References ==
<references />

Latest revision as of 15:45, 8 June 2015