SlideShare une entreprise Scribd logo
1  sur  28
Interop Clouds with OCCI
Thijs Metsch - Platform Computing, an IBM Company
Andrew Edmonds - Intel Corporation

Cloud Plugfest – February/March 2012, Düsseldorf Germany
Starring

   In Order of apprerances
         OCCI As the cool kid in town
    OpenStack As the „Cloud“
           ISF As the Platform Cloud
Andy Edmonds As the Developer
  Thijs Metsch As the Integrator
THE OCCI SOFTWARE PACKAGE
The OCCI library
                              HTTP Header
                               Rendering
                                                                Backend

                            HTTP text/uri-list
                              Rendering                         Backend
WSGI App




            HTTP            HTTP text/plain             OCCI    Backend   Your
           Handling           Rendering                Model*             App

                                                                Backend
                             HTTP text/html
                                Rendering
           The WSGI Application                                  …
           can be embedded inHTTP app/json
               many Python      Rendering
             environments &
               frameworks

                                  http://pyssf.sf.net
                                 * http://www.occi-wg.org
The OCCI library
                                      HTTP Header
                                       Rendering
                                                                        Backend

                                    HTTP text/uri-list
                                      Rendering                         Backend
WSGI App




                HTTP                HTTP text/plain             OCCI    Backend   Your
               Handling               Rendering                Model*             App

                                                                        Backend
                                     HTTP text/html
                                       Rendering
             Handles the HTTP
           stuff (POST,PUT,DELETE,GET) &
                                         HTTP app/json
                                                                         …
            and REST semantics
                (REST, Security, etc.)     Rendering



                                           http://pyssf.sf.net
                                         * http://www.occi-wg.org
The OCCI library
                         HTTP Header
                          Rendering
                                                           Backend

                       HTTP text/uri-list
                         Rendering                         Backend
WSGI App




            HTTP        HTTP text/plain            OCCI    Backend   Your
           Handling       Rendering               Model*             App

                                                           Backend
                        HTTP text/html
                          Rendering
                                                            …
                        HTTP app/json
                          Rendering

                      Map the HTTP Data to
                        the OCCI Model
                             (Automatic)

                            * http://www.occi-wg.org
The OCCI library
                        HTTP Header
                         Rendering
                                                                         Backend

                      HTTP text/uri-list
                        Rendering                                        Backend
WSGI App




            HTTP      HTTP text/plain             OCCI                   Backend   Your
           Handling     Rendering                Model*                            App

                                                                         Backend
                      HTTP text/html
                        Rendering

                                             Backends define
                                                                          …
                       HTTP app/json        categories they can
                         Rendering          handle – this all you
                                            need to implement
                                                 (Automatic selection)



                            http://pyssf.sf.net
                           * http://www.occi-wg.org
The software package is flexible
• OCCI‘s IaaS extension is provided within
  but with own extensions you can:
  – Use it for you IaaS based cloud
     • From „Dummy Cloud“ to OpenStack OCCI
       services
  – A Platformish approach
     • As a proxy for another web services – Platform ISF
  – Job submission
     • See OCCI DRMAA proposal Specification
  – Key Value storage
     • Described in a Springer book:
OCCI‘s default rendering
               text/plain*
> GET /-/ HTTP/1.1
> User-Agent: curl/7.24.0 (i386-pc-solaris2.10) libcurl/7.24.0
   OpenSSL/0.9.7d zlib/1.1.4
> Host: fjjutraa.joyent.us:8888
> Accept: text/plain
>
< HTTP/1.1 200 OK
< Content-Length: 4323
< Etag: "7b77faa1ad14fd15fc44090e6f245de9f096ccb9"
< Content-Type: text/plain
< Server: pyssf OCCI/1.1
<

Category: network; scheme="http://schemas.ogf.org/occi/infrastructure#";
[...]




   * Might be renamed to text/occi+plain
OCCI‘s lightweight rendering
               text/occi
> GET /-/ HTTP/1.1
> User-Agent: curl/7.24.0 (i386-pc-solaris2.10) libcurl/7.24.0
   OpenSSL/0.9.7d zlib/1.1.4
> Host: fjjutraa.joyent.us:8888
> Accept: text/occi
>
< HTTP/1.1 200 OK
< Category: network;
   scheme="http://schemas.ogf.org/occi/infrastructure#";
< [...]
OK
OCCI‘s uri-list rendering
                text/uri-list
> GET / HTTP/1.1
> User-Agent: curl/7.24.0 (i386-pc-solaris2.10) libcurl/7.24.0
   OpenSSL/0.9.7d zlib/1.1.4
> Host: fjjutraa.joyent.us:8888
> Accept: text/uri-list
>
< HTTP/1.1 200 OK
< Content-Length: 84
< Etag: "b76b8c36b40cfbfbeac66779ceb8334aadeb5462"
< Content-Type: text/uri-list
< Server: pyssf OCCI/1.1
<
# uri:/
http://fjjutraa.joyent.us:8888/compute/09ce8c50-ada0-4f71-bfc8-
   afce2324c6e5
[...]
OCCI‘s upcoming JSON rendering
       application/occi+json
> GET /-/ HTTP/1.1
> User-Agent: curl/7.24.0 (i386-pc-solaris2.10) libcurl/7.24.0
    OpenSSL/0.9.7d zlib/1.1.4
> Host: 10.0.2.2:8888
> Accept: application/occi+json
>
< HTTP/1.0 200 OK
< Content-length: 5567
< Content-Type: application/occi+json
< Server: pyssf OCCI/1.1
<
[
  {
     "scheme": "http://schemas.ogf.org/occi/infrastructure/ [...]
     "term": "online",
     "title": "Bring storage online"
  }, [...]
A HTML rendering
                     text/html*




* Fully customizable with CSS
pyssf is OCCI compliant
OCCI & OPENSTACK
OCCI & OpenStack Features
• Status
  – General support for VM management is available
  – First set of tests available
  – Aligned with the coding Standards of OpenStack!
  – OCCI Compliant – thanks pyssf! 
• Features
  – Deployment and Management of VMs & Volumes
  – Scale up (Resize), Rebuild, Imaging of VMs
  – Integrated as a nova-wsgi WSGI service
OS OCCI Parity*
• Summary:
  – Servers  (5/5)
  – Server Addresses  (1/2)
  – Flavors  (1/2)
  – Images  (1/2)
  – Metadata  (0/6)
• Further details here: http://bit.ly/os-occi


                               * Does not include OS API Extensions
Install & Play
• 1: Install pyssf
    – From code repository at pyssf.sf.net
    – pip/easy_install install pyssf

• Option 1 - Easiest way will be using devstack
    – Configure stackrc to clone nova code from:
                 git://git@github.com/dizz/nova

• Option 2 - Get the Code (Optional) & Do It Yourself:
    – cd $YOUR_NOVA_INSTALL_LOCATION
    – git add remote occi-upstream
      git://git@github.com/dizz/nova
    – git fetch occi-upstream
    – git merge occi-upstream/master
OCCI & OpenStack Security
• OpenStack defines 3 HTTP Headers
  – X-Auth-Token
  – X-Auth-Tenant-ID
  – X-Auth-User
                  POST '{"auth":{"passwordCredentials":
                     {"username": "admin", "password":
                     "admin"}}}'
                                                          Keystone

                             Token: 123-123-123




               Token: 123-123-123
                                                          Nova/O
                                                            CCI
OpenStack & OCCI Architecture

                                  EC2


                                  osapi



                                  OCCI     nova


1. Register WSGI app
2. Register back-ends                               A Sea of Physical &
3. Register OS templates (per user)       Image
                                          service      Virtual Servers
4. Register Resource templates
   (m1.tiny...)
5. Register Extensions
                                          Quantum
„Paper“ Demo
• Get a Security Token
   $ curl -d '{"auth":{"passwordCredentials":{"username":
      “Admin", "password": “<password>"}}}' -H "Content-type:
      application/json" http://127.0.0.1:35357/v2.0/tokens
   $ export KID=$TOKEN_VALUE




• Query the OCCI Service:
   $ curl -v -H 'X-Auth-Token: '$KID -H 'X-Auth-Tenant-Id: '$TEN_ID -H
      'X-Auth-User: '$OS_USER -X   GET                /-/
                                         localhost:8787
An OCCI & OpenStack Sample
curl -v -X POST localhost:8787/compute/
-H 'Content-Type: text/occi'
-H 'X-Auth-Token: '$KID
-H 'X-Auth-Tenant-ID: ’$TEN_ID
-H 'X-Auth-User: ’$USER

-H 'Category: compute;
   scheme="http://schemas.ogf.org/occi/infrastructure#";
   class="kind"’

-H 'Category: m1.tiny;
   scheme="http://schemas.openstack.org/template/resource#";
   class="mixin"'
-H 'Category: cirros-0.3.0-x86_64-blank;
   scheme="http://schemas.openstack.org/template/os#";
   class="mixin"‘
                                           That’s all! 
Live Demo Overview
• Faisal needs a VM to process data
  – He Creates a VM
• Realises it’s not powerful enough
  –Resizes it
• Begins to crunch his data
• His boss finds out: “You’re using the Cloud?
  OMFG!”
  – Faisal quickly Tears   Down his resources
Developing with Open/Dev-Stack
• Experiences – „WAT!?“
   – Devstack can be helpful
   – BUT: Sometimes not!
   – Set Root password!

• Unittesting
   – Writing Unittests for our OCCI-api was straight
     forward

• Changing APIs
   – Especially integration with Keystone was „fun“
OCCI-OpenStack Roadmap
• Submit to OpenStack review process

• Add features:
    1.   Documentation
    2.   OCCI registry backend - OS Nova DB
    3.   OCCI on OS to parity
    4.   CDMI volume management e.g. rOCCI
    5.   Quantum

•   Use it as a proving ground of OCCI awesome sauce!
OUTLOOK
Conclusions
• OCCI offers flexibility while being a Standard
  – Thanks to the Model and our renderings
  – Discoverability
• Can be used for way more than just IaaS
  – Examples: FiWare and ISF extensions
  – Other use cases
• CDMI & swift
  – New Blueprint with updated details
  – Expose nova-volume via CDMI
Closing remarks
• This work was partly funded by the projects:




     http://dgsi.d-grid.de        http://fi-ware.eu

Contenu connexe

Tendances

Metarhia: Node.js Macht Frei
Metarhia: Node.js Macht FreiMetarhia: Node.js Macht Frei
Metarhia: Node.js Macht FreiTimur Shemsedinov
 
Creating a Java EE 7 Websocket Chat Application
Creating a Java EE 7 Websocket Chat ApplicationCreating a Java EE 7 Websocket Chat Application
Creating a Java EE 7 Websocket Chat ApplicationMicha Kops
 
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific LanguagesGoing to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific LanguagesGuillaume Laforge
 
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ BehaviourWAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ BehaviourSoroush Dalili
 
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술John Kim
 
When dynamic becomes static
When dynamic becomes staticWhen dynamic becomes static
When dynamic becomes staticWim Godden
 
Java Web Programming [8/9] : JSF and AJAX
Java Web Programming [8/9] : JSF and AJAXJava Web Programming [8/9] : JSF and AJAX
Java Web Programming [8/9] : JSF and AJAXIMC Institute
 
A python web service
A python web serviceA python web service
A python web serviceTemian Vlad
 
Vorlesung "Web-Technologies"
Vorlesung "Web-Technologies" Vorlesung "Web-Technologies"
Vorlesung "Web-Technologies" Wolfgang Wiese
 
Building domain-specific testing tools : lessons learned from the Apache Slin...
Building domain-specific testing tools : lessons learned from the Apache Slin...Building domain-specific testing tools : lessons learned from the Apache Slin...
Building domain-specific testing tools : lessons learned from the Apache Slin...Robert Munteanu
 
Getting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent EventsGetting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent EventsArun Gupta
 
Intro Java Rev010
Intro Java Rev010Intro Java Rev010
Intro Java Rev010Rich Helton
 
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016Christian Schneider
 
High Performance Ajax Applications
High Performance Ajax ApplicationsHigh Performance Ajax Applications
High Performance Ajax ApplicationsSiarhei Barysiuk
 
Warsaw Frontend Meetup #1 - Webpack
Warsaw Frontend Meetup #1 - WebpackWarsaw Frontend Meetup #1 - Webpack
Warsaw Frontend Meetup #1 - WebpackRadosław Rosłaniec
 
PyGrunn 2017 - Django Performance Unchained - slides
PyGrunn 2017 - Django Performance Unchained - slidesPyGrunn 2017 - Django Performance Unchained - slides
PyGrunn 2017 - Django Performance Unchained - slidesArtur Barseghyan
 

Tendances (20)

Metarhia: Node.js Macht Frei
Metarhia: Node.js Macht FreiMetarhia: Node.js Macht Frei
Metarhia: Node.js Macht Frei
 
Creating a Java EE 7 Websocket Chat Application
Creating a Java EE 7 Websocket Chat ApplicationCreating a Java EE 7 Websocket Chat Application
Creating a Java EE 7 Websocket Chat Application
 
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific LanguagesGoing to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
 
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ BehaviourWAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
 
Mongo db eng
Mongo db engMongo db eng
Mongo db eng
 
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
 
When dynamic becomes static
When dynamic becomes staticWhen dynamic becomes static
When dynamic becomes static
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
 
Java Web Programming [8/9] : JSF and AJAX
Java Web Programming [8/9] : JSF and AJAXJava Web Programming [8/9] : JSF and AJAX
Java Web Programming [8/9] : JSF and AJAX
 
A python web service
A python web serviceA python web service
A python web service
 
Vorlesung "Web-Technologies"
Vorlesung "Web-Technologies" Vorlesung "Web-Technologies"
Vorlesung "Web-Technologies"
 
drmaatutggf12
drmaatutggf12drmaatutggf12
drmaatutggf12
 
Building domain-specific testing tools : lessons learned from the Apache Slin...
Building domain-specific testing tools : lessons learned from the Apache Slin...Building domain-specific testing tools : lessons learned from the Apache Slin...
Building domain-specific testing tools : lessons learned from the Apache Slin...
 
Getting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent EventsGetting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent Events
 
Intro Java Rev010
Intro Java Rev010Intro Java Rev010
Intro Java Rev010
 
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
 
High Performance Ajax Applications
High Performance Ajax ApplicationsHigh Performance Ajax Applications
High Performance Ajax Applications
 
netbeans
netbeansnetbeans
netbeans
 
Warsaw Frontend Meetup #1 - Webpack
Warsaw Frontend Meetup #1 - WebpackWarsaw Frontend Meetup #1 - Webpack
Warsaw Frontend Meetup #1 - Webpack
 
PyGrunn 2017 - Django Performance Unchained - slides
PyGrunn 2017 - Django Performance Unchained - slidesPyGrunn 2017 - Django Performance Unchained - slides
PyGrunn 2017 - Django Performance Unchained - slides
 

Similaire à Cloud Plugfest OCCI, pyssf and OpenStack

ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 
Restful web services rule financial
Restful web services   rule financialRestful web services   rule financial
Restful web services rule financialRule_Financial
 
Charlton Barreto - The OGF | Open Cloud Computing Interface
Charlton Barreto - The OGF | Open Cloud Computing InterfaceCharlton Barreto - The OGF | Open Cloud Computing Interface
Charlton Barreto - The OGF | Open Cloud Computing InterfaceCloudCamp Hamburg
 
Networked APIs with swift
Networked APIs with swiftNetworked APIs with swift
Networked APIs with swiftTim Burks
 
Web Technology Management Lecture III
Web Technology Management Lecture IIIWeb Technology Management Lecture III
Web Technology Management Lecture IIIsopekmir
 
Weekly Tech Session
Weekly Tech SessionWeekly Tech Session
Weekly Tech SessionPravin Vaja
 
Past, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web AppsPast, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web AppsSmartBear
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation ServerPavel Vlasov
 
Tutorial: Writing Sencha Touch Mobile Apps using ]project-open[
Tutorial: Writing Sencha Touch Mobile Apps using ]project-open[Tutorial: Writing Sencha Touch Mobile Apps using ]project-open[
Tutorial: Writing Sencha Touch Mobile Apps using ]project-open[Klaus Hofeditz
 
2010 code camp rest for the rest of us
2010 code camp   rest for the rest of us2010 code camp   rest for the rest of us
2010 code camp rest for the rest of usKen Yagen
 
High quality ap is with api platform
High quality ap is with api platformHigh quality ap is with api platform
High quality ap is with api platformNelson Kopliku
 
Web Server-Side Programming Techniques
Web Server-Side Programming TechniquesWeb Server-Side Programming Techniques
Web Server-Side Programming Techniquesguest8899ec02
 
CodeCamp Iasi 10 March 2012 - Gabriel Enea - ASP.NET Web API
CodeCamp Iasi 10 March 2012 -   Gabriel Enea - ASP.NET Web APICodeCamp Iasi 10 March 2012 -   Gabriel Enea - ASP.NET Web API
CodeCamp Iasi 10 March 2012 - Gabriel Enea - ASP.NET Web APICodecamp Romania
 
Getting started with node JS
Getting started with node JSGetting started with node JS
Getting started with node JSHamdi Hmidi
 
Native REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gNative REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gMarcelo Ochoa
 
RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8Gajendra Sharma
 
RESTFul Web Services - Intro
RESTFul Web Services - IntroRESTFul Web Services - Intro
RESTFul Web Services - IntroManuel Correa
 

Similaire à Cloud Plugfest OCCI, pyssf and OpenStack (20)

Helping Things to REST
Helping Things to RESTHelping Things to REST
Helping Things to REST
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 
Restful web services rule financial
Restful web services   rule financialRestful web services   rule financial
Restful web services rule financial
 
Charlton Barreto - The OGF | Open Cloud Computing Interface
Charlton Barreto - The OGF | Open Cloud Computing InterfaceCharlton Barreto - The OGF | Open Cloud Computing Interface
Charlton Barreto - The OGF | Open Cloud Computing Interface
 
Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)
 
Rest with Spring
Rest with SpringRest with Spring
Rest with Spring
 
Networked APIs with swift
Networked APIs with swiftNetworked APIs with swift
Networked APIs with swift
 
Web Technology Management Lecture III
Web Technology Management Lecture IIIWeb Technology Management Lecture III
Web Technology Management Lecture III
 
Weekly Tech Session
Weekly Tech SessionWeekly Tech Session
Weekly Tech Session
 
Past, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web AppsPast, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web Apps
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation Server
 
Tutorial: Writing Sencha Touch Mobile Apps using ]project-open[
Tutorial: Writing Sencha Touch Mobile Apps using ]project-open[Tutorial: Writing Sencha Touch Mobile Apps using ]project-open[
Tutorial: Writing Sencha Touch Mobile Apps using ]project-open[
 
2010 code camp rest for the rest of us
2010 code camp   rest for the rest of us2010 code camp   rest for the rest of us
2010 code camp rest for the rest of us
 
High quality ap is with api platform
High quality ap is with api platformHigh quality ap is with api platform
High quality ap is with api platform
 
Web Server-Side Programming Techniques
Web Server-Side Programming TechniquesWeb Server-Side Programming Techniques
Web Server-Side Programming Techniques
 
CodeCamp Iasi 10 March 2012 - Gabriel Enea - ASP.NET Web API
CodeCamp Iasi 10 March 2012 -   Gabriel Enea - ASP.NET Web APICodeCamp Iasi 10 March 2012 -   Gabriel Enea - ASP.NET Web API
CodeCamp Iasi 10 March 2012 - Gabriel Enea - ASP.NET Web API
 
Getting started with node JS
Getting started with node JSGetting started with node JS
Getting started with node JS
 
Native REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gNative REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11g
 
RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8
 
RESTFul Web Services - Intro
RESTFul Web Services - IntroRESTFul Web Services - Intro
RESTFul Web Services - Intro
 

Dernier

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Dernier (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Cloud Plugfest OCCI, pyssf and OpenStack

  • 1. Interop Clouds with OCCI Thijs Metsch - Platform Computing, an IBM Company Andrew Edmonds - Intel Corporation Cloud Plugfest – February/March 2012, Düsseldorf Germany
  • 2. Starring In Order of apprerances OCCI As the cool kid in town OpenStack As the „Cloud“ ISF As the Platform Cloud Andy Edmonds As the Developer Thijs Metsch As the Integrator
  • 4. The OCCI library HTTP Header Rendering Backend HTTP text/uri-list Rendering Backend WSGI App HTTP HTTP text/plain OCCI Backend Your Handling Rendering Model* App Backend HTTP text/html Rendering The WSGI Application … can be embedded inHTTP app/json many Python Rendering environments & frameworks http://pyssf.sf.net * http://www.occi-wg.org
  • 5. The OCCI library HTTP Header Rendering Backend HTTP text/uri-list Rendering Backend WSGI App HTTP HTTP text/plain OCCI Backend Your Handling Rendering Model* App Backend HTTP text/html Rendering Handles the HTTP stuff (POST,PUT,DELETE,GET) & HTTP app/json … and REST semantics (REST, Security, etc.) Rendering http://pyssf.sf.net * http://www.occi-wg.org
  • 6. The OCCI library HTTP Header Rendering Backend HTTP text/uri-list Rendering Backend WSGI App HTTP HTTP text/plain OCCI Backend Your Handling Rendering Model* App Backend HTTP text/html Rendering … HTTP app/json Rendering Map the HTTP Data to the OCCI Model (Automatic) * http://www.occi-wg.org
  • 7. The OCCI library HTTP Header Rendering Backend HTTP text/uri-list Rendering Backend WSGI App HTTP HTTP text/plain OCCI Backend Your Handling Rendering Model* App Backend HTTP text/html Rendering Backends define … HTTP app/json categories they can Rendering handle – this all you need to implement (Automatic selection) http://pyssf.sf.net * http://www.occi-wg.org
  • 8. The software package is flexible • OCCI‘s IaaS extension is provided within but with own extensions you can: – Use it for you IaaS based cloud • From „Dummy Cloud“ to OpenStack OCCI services – A Platformish approach • As a proxy for another web services – Platform ISF – Job submission • See OCCI DRMAA proposal Specification – Key Value storage • Described in a Springer book:
  • 9. OCCI‘s default rendering text/plain* > GET /-/ HTTP/1.1 > User-Agent: curl/7.24.0 (i386-pc-solaris2.10) libcurl/7.24.0 OpenSSL/0.9.7d zlib/1.1.4 > Host: fjjutraa.joyent.us:8888 > Accept: text/plain > < HTTP/1.1 200 OK < Content-Length: 4323 < Etag: "7b77faa1ad14fd15fc44090e6f245de9f096ccb9" < Content-Type: text/plain < Server: pyssf OCCI/1.1 < Category: network; scheme="http://schemas.ogf.org/occi/infrastructure#"; [...] * Might be renamed to text/occi+plain
  • 10. OCCI‘s lightweight rendering text/occi > GET /-/ HTTP/1.1 > User-Agent: curl/7.24.0 (i386-pc-solaris2.10) libcurl/7.24.0 OpenSSL/0.9.7d zlib/1.1.4 > Host: fjjutraa.joyent.us:8888 > Accept: text/occi > < HTTP/1.1 200 OK < Category: network; scheme="http://schemas.ogf.org/occi/infrastructure#"; < [...] OK
  • 11. OCCI‘s uri-list rendering text/uri-list > GET / HTTP/1.1 > User-Agent: curl/7.24.0 (i386-pc-solaris2.10) libcurl/7.24.0 OpenSSL/0.9.7d zlib/1.1.4 > Host: fjjutraa.joyent.us:8888 > Accept: text/uri-list > < HTTP/1.1 200 OK < Content-Length: 84 < Etag: "b76b8c36b40cfbfbeac66779ceb8334aadeb5462" < Content-Type: text/uri-list < Server: pyssf OCCI/1.1 < # uri:/ http://fjjutraa.joyent.us:8888/compute/09ce8c50-ada0-4f71-bfc8- afce2324c6e5 [...]
  • 12. OCCI‘s upcoming JSON rendering application/occi+json > GET /-/ HTTP/1.1 > User-Agent: curl/7.24.0 (i386-pc-solaris2.10) libcurl/7.24.0 OpenSSL/0.9.7d zlib/1.1.4 > Host: 10.0.2.2:8888 > Accept: application/occi+json > < HTTP/1.0 200 OK < Content-length: 5567 < Content-Type: application/occi+json < Server: pyssf OCCI/1.1 < [ { "scheme": "http://schemas.ogf.org/occi/infrastructure/ [...] "term": "online", "title": "Bring storage online" }, [...]
  • 13. A HTML rendering text/html* * Fully customizable with CSS
  • 14. pyssf is OCCI compliant
  • 16. OCCI & OpenStack Features • Status – General support for VM management is available – First set of tests available – Aligned with the coding Standards of OpenStack! – OCCI Compliant – thanks pyssf!  • Features – Deployment and Management of VMs & Volumes – Scale up (Resize), Rebuild, Imaging of VMs – Integrated as a nova-wsgi WSGI service
  • 17. OS OCCI Parity* • Summary: – Servers  (5/5) – Server Addresses  (1/2) – Flavors  (1/2) – Images  (1/2) – Metadata  (0/6) • Further details here: http://bit.ly/os-occi * Does not include OS API Extensions
  • 18. Install & Play • 1: Install pyssf – From code repository at pyssf.sf.net – pip/easy_install install pyssf • Option 1 - Easiest way will be using devstack – Configure stackrc to clone nova code from: git://git@github.com/dizz/nova • Option 2 - Get the Code (Optional) & Do It Yourself: – cd $YOUR_NOVA_INSTALL_LOCATION – git add remote occi-upstream git://git@github.com/dizz/nova – git fetch occi-upstream – git merge occi-upstream/master
  • 19. OCCI & OpenStack Security • OpenStack defines 3 HTTP Headers – X-Auth-Token – X-Auth-Tenant-ID – X-Auth-User POST '{"auth":{"passwordCredentials": {"username": "admin", "password": "admin"}}}' Keystone Token: 123-123-123 Token: 123-123-123 Nova/O CCI
  • 20. OpenStack & OCCI Architecture EC2 osapi OCCI nova 1. Register WSGI app 2. Register back-ends A Sea of Physical & 3. Register OS templates (per user) Image service Virtual Servers 4. Register Resource templates (m1.tiny...) 5. Register Extensions Quantum
  • 21. „Paper“ Demo • Get a Security Token $ curl -d '{"auth":{"passwordCredentials":{"username": “Admin", "password": “<password>"}}}' -H "Content-type: application/json" http://127.0.0.1:35357/v2.0/tokens $ export KID=$TOKEN_VALUE • Query the OCCI Service: $ curl -v -H 'X-Auth-Token: '$KID -H 'X-Auth-Tenant-Id: '$TEN_ID -H 'X-Auth-User: '$OS_USER -X GET /-/ localhost:8787
  • 22. An OCCI & OpenStack Sample curl -v -X POST localhost:8787/compute/ -H 'Content-Type: text/occi' -H 'X-Auth-Token: '$KID -H 'X-Auth-Tenant-ID: ’$TEN_ID -H 'X-Auth-User: ’$USER -H 'Category: compute; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"’ -H 'Category: m1.tiny; scheme="http://schemas.openstack.org/template/resource#"; class="mixin"' -H 'Category: cirros-0.3.0-x86_64-blank; scheme="http://schemas.openstack.org/template/os#"; class="mixin"‘ That’s all! 
  • 23. Live Demo Overview • Faisal needs a VM to process data – He Creates a VM • Realises it’s not powerful enough –Resizes it • Begins to crunch his data • His boss finds out: “You’re using the Cloud? OMFG!” – Faisal quickly Tears Down his resources
  • 24. Developing with Open/Dev-Stack • Experiences – „WAT!?“ – Devstack can be helpful – BUT: Sometimes not! – Set Root password! • Unittesting – Writing Unittests for our OCCI-api was straight forward • Changing APIs – Especially integration with Keystone was „fun“
  • 25. OCCI-OpenStack Roadmap • Submit to OpenStack review process • Add features: 1. Documentation 2. OCCI registry backend - OS Nova DB 3. OCCI on OS to parity 4. CDMI volume management e.g. rOCCI 5. Quantum • Use it as a proving ground of OCCI awesome sauce!
  • 27. Conclusions • OCCI offers flexibility while being a Standard – Thanks to the Model and our renderings – Discoverability • Can be used for way more than just IaaS – Examples: FiWare and ISF extensions – Other use cases • CDMI & swift – New Blueprint with updated details – Expose nova-volume via CDMI
  • 28. Closing remarks • This work was partly funded by the projects: http://dgsi.d-grid.de http://fi-ware.eu

Notes de l'éditeur

  1. Flavour and image is a ML discussion – note there is limited support for details in QIMetadata is a ML discussion
  2. This is through the default keystone middleware. OS nova authmiddlware or an OCCI specific middleware could be implemented to reduce the requirements just to X-Auth-Token
  3. Logically and at the code level