SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
rOCCI
An overview of the Ruby OCCI Framework




                       Florian Feldhaus
   Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen

                    Am Fassberg, 37077 Göttingen
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 rendering

GWDG Service Computing group, 26.09.11, Göttingen                2
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 OpenNebula

GWDG Service Computing group, 26.09.11, Göttingen     3
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
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
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
!"#"$%&'(%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.
OCCI / CDMI usage

    SLA
                             Webservice
 Management



                                          OCCI / CDMI Client

                                               Template              Storage

           OVF                                                      Network
                                          OS        Resource
                                                                    Compute




               OCCI Server                                     CDMI Server

GWDG Service Computing group, 26.09.11, Göttingen                            8
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
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 export


GWDG Service Computing group, 26.09.11, Göttingen                                     10
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
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 server




GWDG Service Computing group, 26.09.11, Göttingen   12
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-tester


GWDG Service Computing group, 26.09.11, Göttingen        13
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
        developments

GWDG Service Computing group, 26.09.11, Göttingen           14
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 / authorization


GWDG Service Computing group, 26.09.11, Göttingen            15
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
Thank you for your attention!




GWDG Service Computing group, 26.09.11, Göttingen   17

Más contenido relacionado

Similar a rOCCI : An overview of the Ruby OCCI Framework

RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!Gautam Rege
 
Javascript patterns
Javascript patternsJavascript patterns
Javascript patternsChandan Jog
 
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...Nicolas Bettenburg
 
Desert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming languageDesert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming languageJames Montemagno
 
CCNxCon2012: Session 1: CCN Updates & Roadmap
CCNxCon2012: Session 1: CCN Updates &  RoadmapCCNxCon2012: Session 1: CCN Updates &  Roadmap
CCNxCon2012: Session 1: CCN Updates & RoadmapPARC, a Xerox company
 
Tack On RESTful APIs - Pinterest Backend Simulation
Tack On RESTful APIs - Pinterest Backend SimulationTack On RESTful APIs - Pinterest Backend Simulation
Tack On RESTful APIs - Pinterest Backend SimulationAkshay Wattal
 
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享elevenma
 
COMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and SoliCOMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and SoliMark Billinghurst
 
AwayJS - Open Source Workflow for WebGL
AwayJS - Open Source Workflow for WebGLAwayJS - Open Source Workflow for WebGL
AwayJS - Open Source Workflow for WebGLRob Bateman
 
Groovy 1.8 and 2.0 at GR8Conf Europe 2012
Groovy 1.8 and 2.0 at GR8Conf Europe 2012Groovy 1.8 and 2.0 at GR8Conf Europe 2012
Groovy 1.8 and 2.0 at GR8Conf Europe 2012Guillaume Laforge
 
Functional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event SystemsFunctional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event SystemsLeonardo Borges
 
Continuous Delivery in Ruby
Continuous Delivery in RubyContinuous Delivery in Ruby
Continuous Delivery in RubyBrian Guthrie
 
Javascript all the things
Javascript all the thingsJavascript all the things
Javascript all the thingsFelix Wahner
 
Amplexor drupalcamp-gent-2012 - kinepolis platform
Amplexor drupalcamp-gent-2012 - kinepolis platformAmplexor drupalcamp-gent-2012 - kinepolis platform
Amplexor drupalcamp-gent-2012 - kinepolis platformAmplexor
 
Virtual Replication Built for AWS - Session Sponsored by Zerto
Virtual Replication Built for AWS - Session Sponsored by ZertoVirtual Replication Built for AWS - Session Sponsored by Zerto
Virtual Replication Built for AWS - Session Sponsored by ZertoAmazon Web Services
 
What happens when firefox crashes?
What happens when firefox crashes?What happens when firefox crashes?
What happens when firefox crashes?Erik Rose
 

Similar a rOCCI : An overview of the Ruby OCCI Framework (20)

RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!
 
Javascript patterns
Javascript patternsJavascript patterns
Javascript patterns
 
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
 
Desert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming languageDesert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming language
 
CCNxCon2012: Session 1: CCN Updates & Roadmap
CCNxCon2012: Session 1: CCN Updates &  RoadmapCCNxCon2012: Session 1: CCN Updates &  Roadmap
CCNxCon2012: Session 1: CCN Updates & Roadmap
 
Tack On RESTful APIs - Pinterest Backend Simulation
Tack On RESTful APIs - Pinterest Backend SimulationTack On RESTful APIs - Pinterest Backend Simulation
Tack On RESTful APIs - Pinterest Backend Simulation
 
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
 
COMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and SoliCOMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and Soli
 
AwayJS - Open Source Workflow for WebGL
AwayJS - Open Source Workflow for WebGLAwayJS - Open Source Workflow for WebGL
AwayJS - Open Source Workflow for WebGL
 
Groovy 1.8 and 2.0 at GR8Conf Europe 2012
Groovy 1.8 and 2.0 at GR8Conf Europe 2012Groovy 1.8 and 2.0 at GR8Conf Europe 2012
Groovy 1.8 and 2.0 at GR8Conf Europe 2012
 
Inheritance
InheritanceInheritance
Inheritance
 
Brasil Ross 2011
Brasil Ross 2011Brasil Ross 2011
Brasil Ross 2011
 
Functional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event SystemsFunctional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event Systems
 
Continuous Delivery in Ruby
Continuous Delivery in RubyContinuous Delivery in Ruby
Continuous Delivery in Ruby
 
Javascript all the things
Javascript all the thingsJavascript all the things
Javascript all the things
 
Amplexor drupalcamp-gent-2012 - kinepolis platform
Amplexor drupalcamp-gent-2012 - kinepolis platformAmplexor drupalcamp-gent-2012 - kinepolis platform
Amplexor drupalcamp-gent-2012 - kinepolis platform
 
Virtual Replication Built for AWS - Session Sponsored by Zerto
Virtual Replication Built for AWS - Session Sponsored by ZertoVirtual Replication Built for AWS - Session Sponsored by Zerto
Virtual Replication Built for AWS - Session Sponsored by Zerto
 
What happens when firefox crashes?
What happens when firefox crashes?What happens when firefox crashes?
What happens when firefox crashes?
 
HARE 2010 Review
HARE 2010 ReviewHARE 2010 Review
HARE 2010 Review
 
Coscup
CoscupCoscup
Coscup
 

Último

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

rOCCI : An overview of the Ruby OCCI Framework

  • 1. rOCCI An 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 rendering GWDG 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 OpenNebula GWDG 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 Server GWDG 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 export GWDG 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 server GWDG 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-tester GWDG 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 developments GWDG 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 / authorization GWDG 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