Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen Am Fassberg, 37077 Göttingen rOCCI An overview of the Ruby OCCI Framework Florian Feldhaus
Presentation at the SNIA Cloud Plugfest in Düsseldorf, February 2012 http://www.snia.org/cloud/cloudplugfest
Citation preview
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
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