Your SlideShare is downloading. ×
rOCCI: An overview of the Ruby OCCI Framework
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

rOCCI : An overview of the Ruby OCCI Framework

988
views

Published on

Presentation at the SNIA Cloud Plugfest in Düsseldorf, February 2012 …

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

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
988
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. rOCCIAn overview of the Ruby OCCI Framework Florian Feldhaus Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen Am Fassberg, 37077 Göttingen
  • 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, Göttingen 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, Göttingen 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, Göttingen 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, Göttingen 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, Göttingen CDMI!on!OpenStack!Swift! 6 !!!!#!DELETE!compute N/A (poss.!Glance) Y N/A
  • 7. !"#"$%&(%sprechensieparle zvous)*+ά-.labhraíonntúparl 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, Göttingen 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, Göttingen 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, Göttingen 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, Göttingen 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, Göttingen 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, Göttingen 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, Göttingen 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 •  we‘d 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, Göttingen 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, Göttingen 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, Göttingen 16
  • 17. Thank you for your attention!GWDG Service Computing group, 26.09.11, Göttingen 17

×