Difference between revisions of "VT OCCI for CMF"
m |
|||
(19 intermediate revisions by 2 users not shown) | |||
Line 14: | Line 14: | ||
The mini-project aims at providing an ability to control the life-cycle of virtual machines at multiple sites of EGI's federated cloud environment using standardized tools. As different cloud management platforms are already actively used at different sites, enforcing a particular platform across all sites at this point is neither practical nor desirable. Therefore there is a need for an interoperability layer to bridge this gap. The OCCI protocol, an OGF standard, has been chosen to provide a uniform interface for the management of virtual machines. | The mini-project aims at providing an ability to control the life-cycle of virtual machines at multiple sites of EGI's federated cloud environment using standardized tools. As different cloud management platforms are already actively used at different sites, enforcing a particular platform across all sites at this point is neither practical nor desirable. Therefore there is a need for an interoperability layer to bridge this gap. The OCCI protocol, an OGF standard, has been chosen to provide a uniform interface for the management of virtual machines. | ||
For implementation, the rOCCI framework and the rOCCI-server have been selected to add OCCI support to existing applications and cloud management platforms. By using their existing features, and extending their architecture to include an interoperability layer based on the fog.io abstraction library for cloud services, this project will provide OCCI support for a large number of open source and commercial cloud platforms including OpenNebula, OpenStack, RackSpace, CloudStack and AWS with focus on extended support for cloud platforms used within the EGI Federated Clouds Task Force. | For implementation, the rOCCI framework and the rOCCI-server have been selected to add OCCI support to existing applications and cloud management platforms. By using their existing features, and extending their architecture to include an interoperability layer <del>based on the fog.io abstraction library for cloud services</del>, this project will provide OCCI support for ''multiple cloud platforms'' <del>a large number of open source and commercial cloud platforms including OpenNebula, OpenStack, RackSpace, CloudStack and AWS</del> with focus on extended support for cloud platforms used within the EGI Federated Clouds Task Force. | ||
See also Mini-project introduction talk at EGI CF 2013: https://indico.egi.eu/indico/materialDisplay.py?contribId=152&sessionId=29&materialId=slides&confId=1222 | See also Mini-project introduction talk at EGI CF 2013: https://indico.egi.eu/indico/materialDisplay.py?contribId=152&sessionId=29&materialId=slides&confId=1222 | ||
Line 24: | Line 24: | ||
== Actions out of Scope or left Open after Mini-Project Ends == | == Actions out of Scope or left Open after Mini-Project Ends == | ||
* OCCI library in Java | |||
* Backends other than OpenNebula (and possibly <del>StratusLab</del> CloudStack) | |||
== Tasks == | == Tasks == | ||
Line 37: | Line 38: | ||
* '''[Done]''' Action 1.1: Mini-project setup (Official start, introduction, Web page setup, team establishment and team internal procedures) | * '''[Done]''' Action 1.1: Mini-project setup (Official start, introduction, Web page setup, team establishment and team internal procedures) | ||
* Action 1.2: Progress report at EGI TF 13 | * '''[Done]''' Action 1.2: Progress report at EGI TF 13 | ||
* '''[Done]''' Action 1.3: Continuous progress reports | |||
<!-- Additional details in [http://www.asana.com Asana] --> | <!-- Additional details in [http://www.asana.com Asana] --> | ||
Line 43: | Line 45: | ||
=== Task 2: rOCCI Framework Changes === | === Task 2: rOCCI Framework Changes === | ||
Remove unmaintained dependencies, refactor core and client gems, do code cleanup. | |||
==== Actions ==== | ==== Actions ==== | ||
* '''[Done]''' Action 1.1: rOCCI refactoring (split the code base into core, api and client) | |||
* '''[Done]''' Action 1.2: Update core classes (attribute handling, actions etc.) | |||
* '''[Done]''' Action 1.3: Implement support for modular client-side authentication (add native Keystone support) | |||
* '''[Done]''' Action 1.4: Provide documentation for rOCCI-core (to help future developers utilizing rOCCI framework) | |||
* '''[Done]''' Action 1.5: Provide documentation for rOCCI-{api,cli} | |||
* '''[Done]''' Action 1.6: Extend existing testing harness to provide reasonable QA | |||
<!-- Details curently only in [http://www.asana.com Asana] --> | |||
=== Task 3: rOCCI-server Re-design === | |||
Re-implement the rOCCI-server to provide a stable base for further development and increase interoperability. | |||
==== Actions ==== | |||
* '''[Done]''' Action 1.1: Design the new rOCCI-server | |||
* '''[Done]''' Action 1.2: Provide detailed documentation of the new design | |||
* '''[Done]''' Action 1.3: Implement the new rOCCI-server | |||
* '''[Done]''' Action 1.4: Implement a Dummy back-end serving as an example (and for testing purposes) | |||
<!-- Details curently only in [http://www.asana.com Asana] --> | |||
=== Task 4: Back-ends for CMFs === | |||
Implement support for widely used virtualization stacks in general, primarily for OpenNebula. | |||
==== Actions ==== | |||
* '''[Done]''' Action 1.1: Implement fully-featured back-end for OpenNebula | |||
* '''[Cancelled]''' Action 1.2: Help with the development of a fully-featured back-end for StratusLab | |||
* '''[Done]''' Action 1.3: Provide a skeleton and examples for other developers | |||
* '''[Cancelled]''' Action 1.4: Help with the development of a fully-featured back-end for CloudStack | |||
=== Task 5: Testing and deployment === | |||
Test the newly implemented rOCCI-server, verify its compliance with the OCCI specification and deploy it in production in the EGI FedCloud environment | |||
==== Actions ==== | ==== Actions ==== | ||
* '''[Done]''' Action 1.1: Unit, functional and integration testing (automated) | |||
* '''[Done]''' Action 1.2: Test deployment and interactive testing | |||
* '''[Done]''' Action 1.3: Production deployment | |||
=== Task | === Task 6: Documentation === | ||
Provide documentation | |||
==== Actions ==== | ==== Actions ==== | ||
* '''[Done]''' Action 1.1: Installation documentation | |||
* '''[Done]''' Action 1.2: Management documentation | |||
* '''[Done]''' Action 1.3: User documentation with examples | |||
== Members == | == Members == | ||
Line 69: | Line 106: | ||
* Boris Parak, CESNET | * Boris Parak, CESNET | ||
* Zdenek Sustr, CESNET | * Zdenek Sustr, CESNET | ||
* Maik Srba, GWDG, | * <del>Maik Srba, GWDG, unfunded participation</del> (no participation) | ||
* Florian Feldhaus, | * <del>Florian Feldhaus, unfunded participation</del> (considerable time spent on rOCCI-core) | ||
* Piotr Kasprzak, GWDG, | * <del>Piotr Kasprzak, GWDG, unfunded participation</del> (no participation) | ||
== Resources == | == Resources == | ||
Line 77: | Line 114: | ||
{{{VTP_Resources | | {{{VTP_Resources | | ||
* '''VCS''' | * '''VCS''' | ||
** | ** original [https://github.com/gwdg/rOCCI rOCCI framework] at gitHub | ||
** [https://github.com/ | ** [https://github.com/EGI-FCTF/rOCCI-server rOCCI-server] at gitHub | ||
** current [https://github.com/ | ** current [https://github.com/EGI-FCTF/rOCCI-core rOCCI-core] at gitHub | ||
** current [https://github.com/ | *** rOCCI-core [https://github.com/EGI-FCTF/rOCCI-core/wiki documentation] | ||
** current [https://github.com/ | ** current [https://github.com/EGI-FCTF/rOCCI-api rOCCI-api] at gitHub | ||
** current [https://github.com/EGI-FCTF/rOCCI-cli rOCCI-cli] at gitHub | |||
** Obsolete (resources no longer used, kept for reference) | ** Obsolete (resources no longer used, kept for reference) | ||
*** [https://github.com/CESNET/fog fog.io source fork at gitHub] | *** [https://github.com/CESNET/fog fog.io source fork at gitHub] | ||
Line 95: | Line 133: | ||
{{{VTP_Progress| | {{{VTP_Progress| | ||
* Task 1 (CONTINUOUS) | * Task 1 (CONTINUOUS) | ||
** Progress report at EGI TF 13 | ** Initial tasks (DONE) | ||
* Task 2 ( | ** Progress report at EGI TF 13 (DONE) | ||
* Task 2 (DONE) | |||
** Refactoring finished for practical purposes. Original ''rOCCI'' package split into: | ** Refactoring finished for practical purposes. Original ''rOCCI'' package split into: | ||
*** [https://github.com/ | *** [https://github.com/EGI-FCTF/rOCCI-core rOCCI-core] | ||
*** [https://github.com/ | *** [https://github.com/EGI-FCTF/rOCCI-api rOCCI-api] | ||
*** [https://github.com/ | *** [https://github.com/EGI-FCTF/rOCCI-cli rOCCI-cli] | ||
** Documentation | ** Documentation for rOCCI-core (DONE) | ||
* Task 3 ( | ** Documentation for rOCCI-{api,cli} (DONE) | ||
** | ** Unit tests for rOCCI-core (DONE) | ||
* Task 4 ( | * Task 3 (DONE) | ||
** Design of the new rOCCI-server (DONE) | |||
** Documentation/specification of the design (DONE) | |||
** Implementation of the new design (DONE) | |||
*** [https://github.com/EGI-FCTF/rOCCI-server rOCCI-server] | |||
* Task 4 (DONE) | |||
** '''Fog.io rejected''' for lack of versatility. | ** '''Fog.io rejected''' for lack of versatility. | ||
** Backends | ** Backends implemented in the rOCCI-server | ||
*** OpenNebula (DONE) | |||
**** [https://github.com/EGI-FCTF/rOCCI-server rOCCI-server] | |||
*** Dummy (DONE) | |||
**** [https://github.com/EGI-FCTF/rOCCI-server rOCCI-server] | |||
*** CloudStack (UNKNOWN) | |||
*** StratusLab (UNKNOWN) | |||
*** EC2 (UNKNOWN) | |||
* Task 5 (DONE) | |||
* Task 6 (DONE) | |||
}}} | }}} | ||
Latest revision as of 23:05, 4 May 2014
General Project Information
- Full title: Providing OCCI support for arbitrary Cloud Management Frameworks
- Leader: Boris Parak, CESNET
- Mailing List: inspire-mp-rocci@mailman.egi.eu
- Status: active
- Start Date: 01/04/2013
- End Date: 31/03/2014
- Meetings: INDICO
- Workflow and Task management: Asana.com (private)
Motivation
The mini-project aims at providing an ability to control the life-cycle of virtual machines at multiple sites of EGI's federated cloud environment using standardized tools. As different cloud management platforms are already actively used at different sites, enforcing a particular platform across all sites at this point is neither practical nor desirable. Therefore there is a need for an interoperability layer to bridge this gap. The OCCI protocol, an OGF standard, has been chosen to provide a uniform interface for the management of virtual machines.
For implementation, the rOCCI framework and the rOCCI-server have been selected to add OCCI support to existing applications and cloud management platforms. By using their existing features, and extending their architecture to include an interoperability layer based on the fog.io abstraction library for cloud services, this project will provide OCCI support for multiple cloud platforms a large number of open source and commercial cloud platforms including OpenNebula, OpenStack, RackSpace, CloudStack and AWS with focus on extended support for cloud platforms used within the EGI Federated Clouds Task Force.
See also Mini-project introduction talk at EGI CF 2013: https://indico.egi.eu/indico/materialDisplay.py?contribId=152&sessionId=29&materialId=slides&confId=1222
Output
Actions out of Scope or left Open after Mini-Project Ends
- OCCI library in Java
- Backends other than OpenNebula (and possibly
StratusLabCloudStack)
Tasks
Only higher-level tasks are supposed to be listed here. Day-to-day tasks are tracked at Asana.com
Task 1: Mini-Project Management
Not only leadership but also general work that moves the mini-project along, such as publishing and reporting
Actions
- [Done] Action 1.1: Mini-project setup (Official start, introduction, Web page setup, team establishment and team internal procedures)
- [Done] Action 1.2: Progress report at EGI TF 13
- [Done] Action 1.3: Continuous progress reports
Task 2: rOCCI Framework Changes
Remove unmaintained dependencies, refactor core and client gems, do code cleanup.
Actions
- [Done] Action 1.1: rOCCI refactoring (split the code base into core, api and client)
- [Done] Action 1.2: Update core classes (attribute handling, actions etc.)
- [Done] Action 1.3: Implement support for modular client-side authentication (add native Keystone support)
- [Done] Action 1.4: Provide documentation for rOCCI-core (to help future developers utilizing rOCCI framework)
- [Done] Action 1.5: Provide documentation for rOCCI-{api,cli}
- [Done] Action 1.6: Extend existing testing harness to provide reasonable QA
Task 3: rOCCI-server Re-design
Re-implement the rOCCI-server to provide a stable base for further development and increase interoperability.
Actions
- [Done] Action 1.1: Design the new rOCCI-server
- [Done] Action 1.2: Provide detailed documentation of the new design
- [Done] Action 1.3: Implement the new rOCCI-server
- [Done] Action 1.4: Implement a Dummy back-end serving as an example (and for testing purposes)
Task 4: Back-ends for CMFs
Implement support for widely used virtualization stacks in general, primarily for OpenNebula.
Actions
- [Done] Action 1.1: Implement fully-featured back-end for OpenNebula
- [Cancelled] Action 1.2: Help with the development of a fully-featured back-end for StratusLab
- [Done] Action 1.3: Provide a skeleton and examples for other developers
- [Cancelled] Action 1.4: Help with the development of a fully-featured back-end for CloudStack
Task 5: Testing and deployment
Test the newly implemented rOCCI-server, verify its compliance with the OCCI specification and deploy it in production in the EGI FedCloud environment
Actions
- [Done] Action 1.1: Unit, functional and integration testing (automated)
- [Done] Action 1.2: Test deployment and interactive testing
- [Done] Action 1.3: Production deployment
Task 6: Documentation
Provide documentation
Actions
- [Done] Action 1.1: Installation documentation
- [Done] Action 1.2: Management documentation
- [Done] Action 1.3: User documentation with examples
Members
- Boris Parak, CESNET
- Zdenek Sustr, CESNET
Maik Srba, GWDG, unfunded participation(no participation)Florian Feldhaus, unfunded participation(considerable time spent on rOCCI-core)Piotr Kasprzak, GWDG, unfunded participation(no participation)
Resources
- VCS
- original rOCCI framework at gitHub
- rOCCI-server at gitHub
- current rOCCI-core at gitHub
- rOCCI-core documentation
- current rOCCI-api at gitHub
- current rOCCI-cli at gitHub
- Obsolete (resources no longer used, kept for reference)
- OpenNebula + RVM + rOCCI-server testbed appliance v.2
- VT Documentation
Progress
Only higher-level progress statemets will be listed here. Day-to-day tasks are tracked at Asana.com
{{{VTP_Progress|
- Task 1 (CONTINUOUS)
- Initial tasks (DONE)
- Progress report at EGI TF 13 (DONE)
- Task 2 (DONE)
- Refactoring finished for practical purposes. Original rOCCI package split into:
- Documentation for rOCCI-core (DONE)
- Documentation for rOCCI-{api,cli} (DONE)
- Unit tests for rOCCI-core (DONE)
- Task 3 (DONE)
- Design of the new rOCCI-server (DONE)
- Documentation/specification of the design (DONE)
- Implementation of the new design (DONE)
- Task 4 (DONE)
- Fog.io rejected for lack of versatility.
- Backends implemented in the rOCCI-server
- OpenNebula (DONE)
- Dummy (DONE)
- CloudStack (UNKNOWN)
- StratusLab (UNKNOWN)
- EC2 (UNKNOWN)
- Task 5 (DONE)
- Task 6 (DONE)
}}}