rocci: an overview of the ruby occi framework

17
Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen Am Fassberg, 37077 Göttingen rOCCI An overview of the Ruby OCCI Framework Florian Feldhaus

Upload: florian-feldhaus

Post on 18-Nov-2014

1.316 views

Category:

Technology


0 download

DESCRIPTION

Presentation at the SNIA Cloud Plugfest in Düsseldorf, February 2012 http://www.snia.org/cloud/cloudplugfest

TRANSCRIPT

  • 1. rOCCIAn overview of the Ruby OCCI Framework Florian Feldhaus Gesellschaft fr wissenschaftliche Datenverarbeitung mbH Gttingen Am Fassberg, 37077 Gttingen
  • 2. rOCCI - History v0.1 (09.05.2011): initial release as part of SLA@SOI EU project v0.2 (13.05.2011): Plugfest release for testing v0.3 (27.07.2011): first version to support OpenNebula 3.0 beta Easy deployment using Phusion Phacker Standalone - includes all OpenNebula dependencies v0.4 (12.01.2012): Support for OpenNebula 3.0 Support for all actions in OpenNebula backend Reduced OpenNebula specific Mixins / more OCCI standards compliant and interoperable Read in OpenNebula resources at startup VNC support / WebVNC support Static support for different users in OpenNebula backend through occi-server configuration basic support for resource templates rewrite of OCCI renderingGWDG Service Computing group, 26.09.11, Gttingen 2
  • 3. rOCCI - Next steps v0.5 (first alpha released for this plugfest) OpenNebula 3.2 support (done) new backend manager to support additional backends (done) full support of JSON rendering (partly done) advanced authentication / authorization (e.g. x509 support) (partly done) Support for OS templates (started) improvements to quality assurance procedures (started) V1.0 rOCCI to become default OCCI server for OpenNebulaGWDG Service Computing group, 26.09.11, Gttingen 3
  • 4. rOCCI - Architecture Webserver!(Apache!or!NGINX!via!Passenger)! rOCCI. OCCI!ANTLR!Parser! Loca;on!Registry! Text! JSON! Renderer! Renderer! Request!Processing! OCCI!Model!/! (Sinatra)! Category!Registry! Response!Rendering! Backend!Manager! EC2! OpenNebula! Dummy! (experimental)! XML8RPC! EC2!API! OpenNebula. AWS.GWDG Service Computing group, 26.09.11, Gttingen 4
  • 5. OCCI Verification Plugfest OCCI Test Matrix Based on OCCI Tests by Thijs Metsch doyouspeakOCCI Compliance Testing Facility Google App Engine (GAE)-based checking tool Developed by Alexander Papaspyrou http://doyouspeakocci.appspot.com/ GWDG OCCI Testbed Running latest version of rOCCI with dummy backend http://occi.cloud.gwdg.de:3300/GWDG Service Computing group, 26.09.11, Gttingen 5
  • 6. Tests pyssf pyssf(&(OpenStack Ruby(OCCI(Framework occy:py Test(the(Query(Interface(as(described(in(section(3.4.1... !!!!#!retrieval!of!all!kinds,!actions!and!mixins Y Y Y Y !!!!#!filter!based!on!category Y Y Y Y !!!!#!remove!the!mixin!if!it!exists!first!to!avoid!conflicts Y Y Y Y !!!!#!adding!a!mixin!definition Y Y Y Y !!!!#!removing!a!mixin!definition Y Y Y Y Test(operations(on(mixins(or(kinds(as(described(in(section(3.4.[2,3]... y!?!note!you!cannot! specify!attributes!like! occi.compute.core!?!OS! !!!!#!POST!some!compute!instances y will!not!support!this y y !!!!#!get!them!as!described!in!section!3.4.2!?!text/plain!and!text/uri?list!should!contain!the!same!infos... y y y y !!!!#!trigger!action!on!collection y y y y !!!!#!create!a!user!defined!mixin!and!add!a!compute!instance y y y y !!!!#!check!if!the!user!defined!mixin!was!added!to!the!compute!instance y y y y !!!!#!check!if!a!get!on!the!location!of!the!user?defined!mixin!return!the!compute_loc y y y y !!!!#!replace!the!collection!and!only!add!compute_loc2!as!the!new!collection y y y y !!!!#!filter!on!/compute/!based!on!category!my_stuff... y y y y !!!!#!filter!on!/compute/!based!on!attribute!and!prev!set!hostname... y y y y !!!!#!now!also!delete!the!second!compute y y y y !!!!#!finally!delete!the!mixin y y y y !!!!#!and!delete!all!compute!instances y y y y Test(operations(on(resource(instances(as(described(in(section(3.4.4... y!?!note!you!cannot! specify!attributes!like! occi.compute.core!?!OS! !!!!#!POST!to!create y will!not!support!this y y !!!!#!trigger!action... y y y y !!!!#!POST!?!partial!update y N/A y y !!!!#!PUT!create y y y y !!!!#!PUT!for!full!update y partial y y !!!!#!GET y y y y !!!!#!DELETE y y y y Test(handling(of(link(instances(as(described(in(section(3.4.5... !!!!#!create!compute y y y y y!?!note!you!cannot! specify!attributes!like! occi.compute.core!?!OS! !!!!#!create!network y will!not!support!this y y !!!!#!now!create!a!network!link... y y y y !!!!#!check!if!links!has!source,!target!attributes y y y y !!!!#!1st!cleanup... !!!!#!now!create!compute!again!but!with!inline!link y n y y !!!!#!Now!check!if!compute!has!inline!link!rendering... y N/A y y !!!!#!2nd!cleanup... Test(Syntax(and(Semantics(of(the(Rendering(as(described(in(section(3.5... !!!!#!Test!escaping!of!quotes y y y y Test(that(the(correct(version(number(can(be(found(as(described(in(section(3.6.5... y y y y Test(Content:type(and(Accept(headers(as(described(in(section(3.6.6... y y y y Test(RFC5785(Compliance(as(described(in(section(3.6.7... !!!!#!retrieval!of!all!kinds,!actions!and!mixins y y y y !!!!#!retrieval!of!all!kinds,!actions!and!mixins y y y y Checks(if(a(certain(kind,(mixin,(action(is(complete... y y y y Test(if(the(Iaas(model(is(complete(as(defined(in(the(Infrastructure(specification... y y y y Test(interoperability(with(CDMI n!?!fiware!to!provide! CDMI!on!OpenStack!Swift! !!!!#!POST!compute!with!inline!link!to!CDMI N/A (poss.!Glance) Y N/A n!?!fiware!to!provide! CDMI!on!OpenStack!Swift! !!!!#!GET!compute N/A (poss.!Glance) Y N/A n!?!fiware!to!provide!GWDG Service Computing group, 26.09.11, Gttingen CDMI!on!OpenStack!Swift! 6 !!!!#!DELETE!compute N/A (poss.!Glance) Y N/A
  • 7. !"#"$%&(%sprechensieparle zvous)*+-.labhraonntparl DoYouSpeakOCCI iloquerisspreekjetalarduesuste dhabladoyouspeakOCCI? Proudly serving the community since February 9, 2012; with 15 tests so far. On Sun, 26 Feb 2012 11:36:41 +0000, your implementation running at http://occi.cloud.gwdg.de:3300/ turned out to be compliant. Congratulations! Description Result Tests operations on mixins or kinds as described in section 3.4.2 and 3.4.3 of the Open Cloud SUCCEEDED Computing Interface - RESTful HTTP Rendering specification. Operations on resource instances as described in section 3.4.4 of the Open Cloud Computing SUCCEEDED Interface - RESTful HTTP Rendering specification. Syntax and semantics of the rendering as described in section 3.5 of the Open Cloud Computing SUCCEEDED Interface - RESTful HTTP Rendering specification. RFC5785 compliance as described in section 3.6.7 of the Open Cloud Computing Interface - SUCCEEDED RESTful HTTP Rendering specification. Handling of link instances as described in section 3.4.5 of the Open Cloud Computing Interface - SUCCEEDED RESTful HTTP Rendering specification. Correct handling of "Content-type" and "Accept" headers as described in section 3.6.6 of the SUCCEEDED Open Cloud Computing Interface - RESTful HTTP Rendering specification. Versioning as described in section 3.6.5 of the Open Cloud Computing Interface - RESTful HTTP SUCCEEDED Rendering specification. Tests the query interface as described in section 3.4.1 of the Open Cloud Computing Interface - SUCCEEDED RESTful HTTP Rendering specification.GWDG Service Computing group,the IaaS model with respect Completeness of 26.09.11, Gttingen to the Open Cloud Computing Interface - SUCCEEDED 7 Infrastructure specification.
  • 8. OCCI / CDMI usage SLA Webservice Management OCCI / CDMI Client Template Storage OVF Network OS Resource Compute OCCI Server CDMI ServerGWDG Service Computing group, 26.09.11, Gttingen 8
  • 9. OCCI / CDMI integration Successfully tested creation of Storagelinks with CDMI objects Support for Storagelinks in OpenNebula backend. Thus it should be possible to start a VM with CDMI storage using OCCI and OpenNebula Preparation (draft) to add advanced CDMI support to OpenNebula 3.0 to enable full OCCI/CDMI integration. This will enable OpenNebula to benefit from advanced Storage capabilities like deduplication, thin provisioning, snapshotting etc. if offered by the CDMI server. This work is coordinated with the OpenNebula development team.GWDG Service Computing group, 26.09.11, Gttingen 9
  • 10. OCCI / CDMI usage with OpenNebula 3. Create OCCI Compute object with link to CDMI object 4. Deploy VM OCCI Server OpenNebula 1. Create CDMI Container 6. Access VM using VNC 5. Start VM 2. Upload Image to Container 5.a Get NFS export for CDMI Container 5.b Mount NFS export CDMI Server NFS VM Host Server 5.c Acess image on NFS exportGWDG Service Computing group, 26.09.11, Gttingen 10
  • 11. Advanced CDMI use CDMI export feature mount NFS share on VM hosts get Image from NFS share use CDMI commands to manage images (e.g. copy, delete, update metadata) CDMI server then can do - deduplication - thin provisioning - snapshots - backups - metadata management - ...GWDG Service Computing group, 26.09.11, Gttingen 11
  • 12. OCCI/CDMI clients developed a Java OCCI/CDMI client library with webfrontend usable proof of concept OCCI/CDMI integration coming soon developed a Ruby CDMI client library intended to be used in OpenNebula to support CDMI may be used by Ruby OCCI Framework to interact with CDMI serverGWDG Service Computing group, 26.09.11, Gttingen 12
  • 13. Testing Created a bunch of example OCCI 1.1 requests for testing http://dev.opennebula.org/projects/ogf-occi/wiki/ Example_requests Feedback would be very much appreciated! created a Skeleton of a combined open source OCCI/ CDMI (OCMI) test suite It may be a good idea to integrate with the existing OCCI WG test suite the OCMI-tester will focus on testing interoperability of OCCI and CDMI. https://github.com/livenson/ocmi-testerGWDG Service Computing group, 26.09.11, Gttingen 13
  • 14. OpenNebula Interoperability group group is intended to become the central point of sharing information and discussing open standards / interoperability in relation to OpenNebula We are actively participating in the recently announced OpenNebula interoperability mailinglist wed like to encourage everyone from OCCI WG to join the list Testing of OVF together with OCCI and CDMI will be next step in context of OpenNebula interoperability group collaboration with Contrail project who are developing OVF for OpenNebula investigating to test OCCI/OVF implementation by Venus-C asking other (EU-)projects to join and present their developmentsGWDG Service Computing group, 26.09.11, Gttingen 14
  • 15. Outlook integration of OCCI and CDMI works well OVF integration under active development SNIA Cloud Plugfest important for testing interoperability next steps: advance standards using exerpience from implementations write implementation experience guides develop combined OCCI / CDMI / OVF verification suite stress/scaling testing interoperability testing extending OCCI with monitoring / reservation capabilities authentication / authorizationGWDG Service Computing group, 26.09.11, Gttingen 15
  • 16. More information rOCCI - Ruby OCCI Framework http://dev.opennebula.org/projects/ogf-occi/ OCCI Working Group http://occi-wg.org/ OCCI Contribute & Communicate http://occi-wg.org/community/contribute-communicate/ OpenNebula Interoperability Mailinglist http://www.opennebula.org/ documentation:community:interoperability doyouspeakOCCI http://doyouspeakocci.appspot.com/GWDG Service Computing group, 26.09.11, Gttingen 16
  • 17. Thank you for your attention!GWDG Service Computing group, 26.09.11, Gttingen 17