SlideShare a Scribd company logo
Deltacloud API




      Michal Fojtik, Software Engineer, Red Hat Czech
Deltacloud API
Cloud? Just another buzzword?

       Similar to electrical power
        generation and delivery through
        electrical grid
           On-demand service
           Large cost saving
       Pay as you go pricing model
       Different cloud models: SaaS,
        PaaS, IaaS
       Private or public clouds ?




3
Infrastructure as a Service – How it works?

       Massive usage of virtualization delivered through Internet
           Choose a template of virtual machine
           Choose hardware profile for VM
           Run it!
       Nice, but not really useful Web2.0* interfaces
       Providers obviously expose all services via API
           Real tool for interacting with cloud
           Allow to develop custom applications for cloud




                                                                     * buzzword #2




4
API?

       What you can do with this 'API'?
           Launch virtual machines on-demand
           Manage state of virtual machines
           Get information about virtual machine (IP, state,
            etc.)
           Create own virtual machine templates
           Attach/detach some storage to virtual machine




5
Many API's == Many problems

       Providers wants to lock-in you to their API
       No standards
       Too complex to change your application code
       Too lazy to watch all changes in their API




6
Deltacloud API

       Apache Deltacloud (http://incubator.apache.org/deltacloud/)
           Cloud-agnostic provisioning and management API
       Manage resources in different IaaS clouds using a single REST-based API
       Moved to Apache Foundation Incubator (2010), ASF Licence




7
Why another API ?

       Avoiding lock-in by providing an
        API abstraction that can be
        implemented as a wrapper around
        a large number of clouds, freeing
        users of cloud from dealing with
        the particulars of each cloud’s API.
       Providing a basis for open-source
        evolution of cloud API’s.
       Providing backward compatibility
        for API XML structure




8
Deltacloud API: SOA




9
Deltacloud API: Supported cloud providers

        Deltacloud currently supports:
            Amazon EC2 and S3 + Eucalyptus
            Rackspace Cloud Servers and Cloud Files
            Gogrid Cloud Servers
            Terremark Vcloud Express
            Rimuhosting VPS
            Red Hat Enterprise Virtualisation (RHEV-M API)
            Open-nebula Cloud
            IBM SBC
            ...more coming soon...




10
Accessing Deltacloud API

        Deltacloud API is a simple state-full
         application written using almighty
         power of Ruby and Sinatra web
         framework


        Installation:
             gem install deltacloud-core
        Running an instance:
             deltacloudd -i [ec2|rhevm|gogrid|
              rackspace|opennebula|mock]
        Accessing Web UI:
             http://localhost:3000/api




11
Deltacloud API: Top level entry-point

        Easy ramp-up
            No need to know the resource types ahead of time, simply load the ‘Primary
             Entry Point’ and start navigating among resource
        Deltacloud uses HTTP basic authentication




12
Basic cloud abstraction collections

        Realms
            A distinct organizational unit within the back-end cloud such as a data center
        Hardware Profiles
            Sizing of a virtual machine in a cloud
        Images
            Templates (virtual machine images) from which Instances are created
        Instances
            A realized virtual server, running in a given back-end cloud




13
Extended cloud abstraction

        Storage volumes
            Virtual storage device that can be attached to an Instance
        Storage snapshots
            Snapshots of a Storage Volume at a specified point in time
        Key-value storage (blob)
            Generic ‘key ==> value’ based data store
        Authentication keys
            Credentials used to access a running Instance
        Loadbalancers
            Maintain high availability for Instances (Elastic LoadBalancing, F5 LoadBalancer)




14
Deltacloud API: Why REST ?

        Better than SOAP :-)
        Based on HTTP protocol thus
         state-less
        Programming language agnostic
            Clients in Java, Ruby, Perl, C,
             <add your language here>
        Content negotiation
            Supported formats: XML, JSON,
             HTML
            Recommended method: HTTP
             'Accept' headers




15
Deltacloud API: Features vs Capabilities

        Features                                  Capabilities
         Enhance standard API behavior              Give an option for client to check if
         with additional features defined for       given operation is supported by
         each collection                            back-end cloud




        Both “features” and “capabilities” are advertised by Deltacloud API top entry-
         point.




16
Deltacloud API: Launching an Instance (1)

        Step 1: Choose VM Image
        Each Image defines the root
         partition and initial storage for the
         instance operating system
        Available actions:
             Filtering using owner_id and
              architecture
        Future operations:
             Creating custom images using
              Image Warehouse




17
Deltacloud API: Launching an Instance (2)

        Step 2: Choose Hardware Profile
        Describes the sizing of a virtual
         machine in a cloud and prescribes
         details such as how many virtual
         CPU’s, how much memory or how
         much local storage an instance
         might have
        Properties are:
            Fixed
            Range
            Enumerative




18
Deltacloud API: Launching an Instance (3)

        Step 3: Choose a Realm
        Represents a distinct unit within
         the same cloud like Data Center
         location
        Changes many aspects of cloud:
            Pricing
            SLA
            Geo location




19
Deltacloud API: Launching an Instance!

        Final: Glue all things together
        Additional parameters:
            Name – Each instance should
            have name
            Hardware profile properties – Fine
            tune memory, CPU, storage size
            Features – Parameters defined by
            features




20
Deltacloud API: Managing instance state

        Client access to the back-end state
         machine
        Basic virtual machine operations:
            Reboot
            Stop
            Start
            Destroy




21
Deltacloud API: Run command on instance

        Currently only Linux instances are
         supported.
        Authentication:
            SSH private keys (Amazon)
            Password (Gogrid, Rackspace)




22
Deltacloud API consumers

        Native Ruby client shipped by Deltacloud API core framework
             Allows full control of back-end cloud and provide access to all features
        Command line client
             Control cloud from terminal, can be used for testing and batch operations
        Java client library
             Used by many jBoss projects developed by Red Hat (jCloud, Eclipse Deltacloud
              plugin, BoxGrinder...)
        C client library
             Used by Condor Grid to queue cloud operations (Aeolus project)
        Native implementations
             virtualmaster.cz, <put your company here ;-)>




23
24
Contributing to Deltacloud API

        Everyone can contribute, ask questions, ask about new features...
        ...even in real time on IRC: #deltacloud @ freenode.net
        ...or send patches to:



                   deltacloud-dev@incubator.apache.org




25
Thank you!

       Questions ?

     mfojtik@redhat.com




26

More Related Content

PDF
Deltacloud Presentation - OSSConf 2010
PDF
Design Patterns para Microsserviços com MicroProfile
PPTX
GIDS_what does_cloud-native_mean_anyway?
PDF
Distributed Locking in Kubernetes
PDF
Why kubernetes for Serverless (FaaS)
PDF
How to deal second interface service discovery and load balancer in kubernetes
PPTX
Service mesh from linkerd to conduit (cloud native taiwan meetup)
PDF
QtQuick Day 1
Deltacloud Presentation - OSSConf 2010
Design Patterns para Microsserviços com MicroProfile
GIDS_what does_cloud-native_mean_anyway?
Distributed Locking in Kubernetes
Why kubernetes for Serverless (FaaS)
How to deal second interface service discovery and load balancer in kubernetes
Service mesh from linkerd to conduit (cloud native taiwan meetup)
QtQuick Day 1

What's hot (20)

PPTX
Kubernetes at (Organizational) Scale
PDF
Architectural patterns for high performance microservices in kubernetes
PDF
JDO 2019: What you should be aware of before setting up kubernetes on premise...
PDF
Kubernetes Architecture - beyond a black box - Part 1
PDF
QtQuick Day 4
PDF
Openstack Keystone
PDF
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
PDF
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
PPTX
WebLogic and GraalVM
PDF
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
PDF
Intro to Kubernetes
PPTX
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
PDF
Weaving Through the Mesh: Making Sense of Istio and Overlapping Technologies
PDF
OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...
PDF
QtQuick Day 2
PDF
Kubernetes - A Comprehensive Overview
PPTX
KuberNETes - meetup
PPTX
Microservices with Node.js and Apache Cassandra
PDF
OpenShift In a Nutshell - Episode 05 - Core Concepts Part I
PPTX
KubeCon USA 2017 brief Overview - from Kubernetes meetup Bangalore
Kubernetes at (Organizational) Scale
Architectural patterns for high performance microservices in kubernetes
JDO 2019: What you should be aware of before setting up kubernetes on premise...
Kubernetes Architecture - beyond a black box - Part 1
QtQuick Day 4
Openstack Keystone
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
WebLogic and GraalVM
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
Intro to Kubernetes
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Weaving Through the Mesh: Making Sense of Istio and Overlapping Technologies
OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...
QtQuick Day 2
Kubernetes - A Comprehensive Overview
KuberNETes - meetup
Microservices with Node.js and Apache Cassandra
OpenShift In a Nutshell - Episode 05 - Core Concepts Part I
KubeCon USA 2017 brief Overview - from Kubernetes meetup Bangalore
Ad

Viewers also liked (20)

PDF
Introduction to research on open source software
PDF
Deltacloud Presentation OpenHouse 2010
PPT
Evaluation Question 1
PDF
Open source: a job and adventure
PDF
Play2 ou l'architecture web réactive
PDF
Open Source Software For Education (Mel Mc Intyre) Open App
PDF
9.7 Things Every Programmer Should Know About User Experience
PDF
Open Data Vorlesung 2015: Open Corporate Data
PDF
An overview of open source in East Asia (China, Japan, Korea)
PDF
Enterprise Developer Journey to the IoT
PDF
Tui the phoenix project book review
PDF
SXSW Hacking RSS: Filtering & Processing Obscene Amounts of Information
PDF
Devoxx 2011 integration-camel-cxf-servicemix-activemq
PPT
Cloud State of the Union for Java Developers
PDF
My 'Phoenix Project'—One Developer's Evolutionary Journey
PDF
Event Report - Acumatica Summit 2017
PDF
Understand Open Source ecosystems
PDF
Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linke...
PDF
Limited WIP Meeting presentation - The Phoenix Project book review
PDF
Event Report - ADP ReThink 2017
Introduction to research on open source software
Deltacloud Presentation OpenHouse 2010
Evaluation Question 1
Open source: a job and adventure
Play2 ou l'architecture web réactive
Open Source Software For Education (Mel Mc Intyre) Open App
9.7 Things Every Programmer Should Know About User Experience
Open Data Vorlesung 2015: Open Corporate Data
An overview of open source in East Asia (China, Japan, Korea)
Enterprise Developer Journey to the IoT
Tui the phoenix project book review
SXSW Hacking RSS: Filtering & Processing Obscene Amounts of Information
Devoxx 2011 integration-camel-cxf-servicemix-activemq
Cloud State of the Union for Java Developers
My 'Phoenix Project'—One Developer's Evolutionary Journey
Event Report - Acumatica Summit 2017
Understand Open Source ecosystems
Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linke...
Limited WIP Meeting presentation - The Phoenix Project book review
Event Report - ADP ReThink 2017
Ad

Similar to Deltacloud API (20)

PPT
Automating Your CloudStack Cloud with Puppet
PDF
Automating CloudStack with Puppet - David Nalley
ODP
Supporting and Using EC2/CIMI on top of Cloud Environments via Deltacloud
PDF
Red Hat and kubernetes: awesome stuff coming your way
PPTX
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019
PPT
.NET Core Apps: Design & Development
PDF
Higher order infrastructure: from Docker basics to cluster management - Nicol...
PPTX
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
PDF
Connect + Docker + AWS = Bitbucket Pipelines
PDF
Getting Started with jClouds: Multi Cloud Framework
PDF
Getting started with jClouds
PDF
Scaling docker with kubernetes
PDF
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
PDF
Dessi docker kubernetes paas cloud
PDF
IBM Think Session 8598 Domino and JavaScript Development MasterClass
PPTX
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
PDF
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...
PPTX
Accelerate your development with Docker
PDF
Accelerate your software development with Docker
PPTX
Docker OpenStack Cloud Foundry
Automating Your CloudStack Cloud with Puppet
Automating CloudStack with Puppet - David Nalley
Supporting and Using EC2/CIMI on top of Cloud Environments via Deltacloud
Red Hat and kubernetes: awesome stuff coming your way
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019
.NET Core Apps: Design & Development
Higher order infrastructure: from Docker basics to cluster management - Nicol...
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
Connect + Docker + AWS = Bitbucket Pipelines
Getting Started with jClouds: Multi Cloud Framework
Getting started with jClouds
Scaling docker with kubernetes
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Dessi docker kubernetes paas cloud
IBM Think Session 8598 Domino and JavaScript Development MasterClass
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...
Accelerate your development with Docker
Accelerate your software development with Docker
Docker OpenStack Cloud Foundry

Deltacloud API

  • 1. Deltacloud API Michal Fojtik, Software Engineer, Red Hat Czech
  • 3. Cloud? Just another buzzword?  Similar to electrical power generation and delivery through electrical grid  On-demand service  Large cost saving  Pay as you go pricing model  Different cloud models: SaaS, PaaS, IaaS  Private or public clouds ? 3
  • 4. Infrastructure as a Service – How it works?  Massive usage of virtualization delivered through Internet  Choose a template of virtual machine  Choose hardware profile for VM  Run it!  Nice, but not really useful Web2.0* interfaces  Providers obviously expose all services via API  Real tool for interacting with cloud  Allow to develop custom applications for cloud * buzzword #2 4
  • 5. API?  What you can do with this 'API'?  Launch virtual machines on-demand  Manage state of virtual machines  Get information about virtual machine (IP, state, etc.)  Create own virtual machine templates  Attach/detach some storage to virtual machine 5
  • 6. Many API's == Many problems  Providers wants to lock-in you to their API  No standards  Too complex to change your application code  Too lazy to watch all changes in their API 6
  • 7. Deltacloud API  Apache Deltacloud (http://incubator.apache.org/deltacloud/)  Cloud-agnostic provisioning and management API  Manage resources in different IaaS clouds using a single REST-based API  Moved to Apache Foundation Incubator (2010), ASF Licence 7
  • 8. Why another API ?  Avoiding lock-in by providing an API abstraction that can be implemented as a wrapper around a large number of clouds, freeing users of cloud from dealing with the particulars of each cloud’s API.  Providing a basis for open-source evolution of cloud API’s.  Providing backward compatibility for API XML structure 8
  • 10. Deltacloud API: Supported cloud providers  Deltacloud currently supports:  Amazon EC2 and S3 + Eucalyptus  Rackspace Cloud Servers and Cloud Files  Gogrid Cloud Servers  Terremark Vcloud Express  Rimuhosting VPS  Red Hat Enterprise Virtualisation (RHEV-M API)  Open-nebula Cloud  IBM SBC  ...more coming soon... 10
  • 11. Accessing Deltacloud API  Deltacloud API is a simple state-full application written using almighty power of Ruby and Sinatra web framework  Installation:  gem install deltacloud-core  Running an instance:  deltacloudd -i [ec2|rhevm|gogrid| rackspace|opennebula|mock]  Accessing Web UI:  http://localhost:3000/api 11
  • 12. Deltacloud API: Top level entry-point  Easy ramp-up  No need to know the resource types ahead of time, simply load the ‘Primary Entry Point’ and start navigating among resource  Deltacloud uses HTTP basic authentication 12
  • 13. Basic cloud abstraction collections  Realms A distinct organizational unit within the back-end cloud such as a data center  Hardware Profiles Sizing of a virtual machine in a cloud  Images Templates (virtual machine images) from which Instances are created  Instances A realized virtual server, running in a given back-end cloud 13
  • 14. Extended cloud abstraction  Storage volumes Virtual storage device that can be attached to an Instance  Storage snapshots Snapshots of a Storage Volume at a specified point in time  Key-value storage (blob) Generic ‘key ==> value’ based data store  Authentication keys Credentials used to access a running Instance  Loadbalancers Maintain high availability for Instances (Elastic LoadBalancing, F5 LoadBalancer) 14
  • 15. Deltacloud API: Why REST ?  Better than SOAP :-)  Based on HTTP protocol thus state-less  Programming language agnostic  Clients in Java, Ruby, Perl, C, <add your language here>  Content negotiation  Supported formats: XML, JSON, HTML  Recommended method: HTTP 'Accept' headers 15
  • 16. Deltacloud API: Features vs Capabilities  Features  Capabilities Enhance standard API behavior Give an option for client to check if with additional features defined for given operation is supported by each collection back-end cloud  Both “features” and “capabilities” are advertised by Deltacloud API top entry- point. 16
  • 17. Deltacloud API: Launching an Instance (1)  Step 1: Choose VM Image  Each Image defines the root partition and initial storage for the instance operating system  Available actions:  Filtering using owner_id and architecture  Future operations:  Creating custom images using Image Warehouse 17
  • 18. Deltacloud API: Launching an Instance (2)  Step 2: Choose Hardware Profile  Describes the sizing of a virtual machine in a cloud and prescribes details such as how many virtual CPU’s, how much memory or how much local storage an instance might have  Properties are: Fixed Range Enumerative 18
  • 19. Deltacloud API: Launching an Instance (3)  Step 3: Choose a Realm  Represents a distinct unit within the same cloud like Data Center location  Changes many aspects of cloud: Pricing SLA Geo location 19
  • 20. Deltacloud API: Launching an Instance!  Final: Glue all things together  Additional parameters: Name – Each instance should have name Hardware profile properties – Fine tune memory, CPU, storage size Features – Parameters defined by features 20
  • 21. Deltacloud API: Managing instance state  Client access to the back-end state machine  Basic virtual machine operations:  Reboot  Stop  Start  Destroy 21
  • 22. Deltacloud API: Run command on instance  Currently only Linux instances are supported.  Authentication:  SSH private keys (Amazon)  Password (Gogrid, Rackspace) 22
  • 23. Deltacloud API consumers  Native Ruby client shipped by Deltacloud API core framework  Allows full control of back-end cloud and provide access to all features  Command line client  Control cloud from terminal, can be used for testing and batch operations  Java client library  Used by many jBoss projects developed by Red Hat (jCloud, Eclipse Deltacloud plugin, BoxGrinder...)  C client library  Used by Condor Grid to queue cloud operations (Aeolus project)  Native implementations  virtualmaster.cz, <put your company here ;-)> 23
  • 24. 24
  • 25. Contributing to Deltacloud API  Everyone can contribute, ask questions, ask about new features...  ...even in real time on IRC: #deltacloud @ freenode.net  ...or send patches to: deltacloud-dev@incubator.apache.org 25
  • 26. Thank you! Questions ? mfojtik@redhat.com 26