SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Deltacloud API




      Michal Fojtik, Software Engineer, Red Hat Czech
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

Weitere ähnliche Inhalte

Was ist angesagt?

Kubernetes at (Organizational) Scale
Kubernetes at (Organizational) ScaleKubernetes at (Organizational) Scale
Kubernetes at (Organizational) ScaleJeff Zellner
 
Architectural patterns for high performance microservices in kubernetes
Architectural patterns for high performance microservices in kubernetesArchitectural patterns for high performance microservices in kubernetes
Architectural patterns for high performance microservices in kubernetesRafał Leszko
 
JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...PROIDEA
 
Kubernetes Architecture - beyond a black box - Part 1
Kubernetes Architecture - beyond a black box - Part 1Kubernetes Architecture - beyond a black box - Part 1
Kubernetes Architecture - beyond a black box - Part 1Hao H. Zhang
 
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Red Hat Developers
 
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystemNETFest
 
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s worldDávid Kőszeghy
 
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kevin Lynch
 
Weaving Through the Mesh: Making Sense of Istio and Overlapping Technologies
Weaving Through the Mesh: Making Sense of Istio and Overlapping TechnologiesWeaving Through the Mesh: Making Sense of Istio and Overlapping Technologies
Weaving Through the Mesh: Making Sense of Istio and Overlapping TechnologiesVMware Tanzu
 
OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...
OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...
OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...NETWAYS
 
Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewBob Killen
 
KuberNETes - meetup
KuberNETes - meetupKuberNETes - meetup
KuberNETes - meetupNathan Ness
 
Microservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache CassandraMicroservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache CassandraJorge Bay Gondra
 
OpenShift In a Nutshell - Episode 05 - Core Concepts Part I
OpenShift In a Nutshell - Episode 05 - Core Concepts Part IOpenShift In a Nutshell - Episode 05 - Core Concepts Part I
OpenShift In a Nutshell - Episode 05 - Core Concepts Part IBehnam Loghmani
 
KubeCon USA 2017 brief Overview - from Kubernetes meetup Bangalore
KubeCon USA 2017 brief Overview - from Kubernetes meetup BangaloreKubeCon USA 2017 brief Overview - from Kubernetes meetup Bangalore
KubeCon USA 2017 brief Overview - from Kubernetes meetup BangaloreKrishna-Kumar
 

Was ist angesagt? (20)

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

Andere mochten auch

Introduction to research on open source software
Introduction to research on open source softwareIntroduction to research on open source software
Introduction to research on open source softwareMatthias Stürmer
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Michal Fojtik
 
Evaluation Question 1
Evaluation Question 1Evaluation Question 1
Evaluation Question 104tollidayl
 
Open source: a job and adventure
Open source: a job and adventureOpen source: a job and adventure
Open source: a job and adventureDawn Foster
 
Play2 ou l'architecture web réactive
Play2 ou l'architecture web réactivePlay2 ou l'architecture web réactive
Play2 ou l'architecture web réactiveNicolas Martignole
 
Open Source Software For Education (Mel Mc Intyre) Open App
Open Source Software For Education (Mel Mc Intyre) Open AppOpen Source Software For Education (Mel Mc Intyre) Open App
Open Source Software For Education (Mel Mc Intyre) Open AppThe 4C Initiative
 
9.7 Things Every Programmer Should Know About User Experience
9.7 Things Every Programmer Should Know About User Experience9.7 Things Every Programmer Should Know About User Experience
9.7 Things Every Programmer Should Know About User ExperienceBurr Sutter
 
Open Data Vorlesung 2015: Open Corporate Data
Open Data Vorlesung 2015: Open Corporate DataOpen Data Vorlesung 2015: Open Corporate Data
Open Data Vorlesung 2015: Open Corporate DataMatthias Stürmer
 
An overview of open source in East Asia (China, Japan, Korea)
An overview of open source in East Asia (China, Japan, Korea)An overview of open source in East Asia (China, Japan, Korea)
An overview of open source in East Asia (China, Japan, Korea)OSCON Byrum
 
Enterprise Developer Journey to the IoT
Enterprise Developer Journey to the IoTEnterprise Developer Journey to the IoT
Enterprise Developer Journey to the IoTBurr Sutter
 
Tui the phoenix project book review
Tui the phoenix project book reviewTui the phoenix project book review
Tui the phoenix project book reviewRudiger Wolf
 
SXSW Hacking RSS: Filtering & Processing Obscene Amounts of Information
SXSW Hacking RSS: Filtering & Processing Obscene Amounts of InformationSXSW Hacking RSS: Filtering & Processing Obscene Amounts of Information
SXSW Hacking RSS: Filtering & Processing Obscene Amounts of InformationDawn Foster
 
Devoxx 2011 integration-camel-cxf-servicemix-activemq
Devoxx 2011 integration-camel-cxf-servicemix-activemqDevoxx 2011 integration-camel-cxf-servicemix-activemq
Devoxx 2011 integration-camel-cxf-servicemix-activemqCharles Moulliard
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersBurr Sutter
 
My 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary JourneyMy 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary JourneyBurr Sutter
 
Event Report - Acumatica Summit 2017
Event Report - Acumatica Summit 2017Event Report - Acumatica Summit 2017
Event Report - Acumatica Summit 2017Holger Mueller
 
Understand Open Source ecosystems
Understand Open Source ecosystemsUnderstand Open Source ecosystems
Understand Open Source ecosystemsKnowmades.com
 
Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linke...
Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linke...Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linke...
Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linke...Tobias Kuhn
 
Limited WIP Meeting presentation - The Phoenix Project book review
Limited WIP Meeting presentation - The Phoenix Project book reviewLimited WIP Meeting presentation - The Phoenix Project book review
Limited WIP Meeting presentation - The Phoenix Project book reviewRudiger Wolf
 
Event Report - ADP ReThink 2017
Event Report - ADP ReThink 2017Event Report - ADP ReThink 2017
Event Report - ADP ReThink 2017Holger Mueller
 

Andere mochten auch (20)

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

Ähnlich wie Deltacloud API

Automating Your CloudStack Cloud with Puppet
Automating Your CloudStack Cloud with PuppetAutomating Your CloudStack Cloud with Puppet
Automating Your CloudStack Cloud with Puppetbuildacloud
 
Automating CloudStack with Puppet - David Nalley
Automating CloudStack with Puppet - David NalleyAutomating CloudStack with Puppet - David Nalley
Automating CloudStack with Puppet - David NalleyPuppet
 
Supporting and Using EC2/CIMI on top of Cloud Environments via Deltacloud
Supporting and Using EC2/CIMI on top of Cloud Environments via DeltacloudSupporting and Using EC2/CIMI on top of Cloud Environments via Deltacloud
Supporting and Using EC2/CIMI on top of Cloud Environments via DeltacloudOved Ourfali
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your wayJohannes Brännström
 
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019Alex Thissen
 
.NET Core Apps: Design & Development
.NET Core Apps: Design & Development.NET Core Apps: Design & Development
.NET Core Apps: Design & DevelopmentGlobalLogic Ukraine
 
Higher order infrastructure: from Docker basics to cluster management - Nicol...
Higher order infrastructure: from Docker basics to cluster management - Nicol...Higher order infrastructure: from Docker basics to cluster management - Nicol...
Higher order infrastructure: from Docker basics to cluster management - Nicol...Codemotion
 
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 PreviewCloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 PreviewChip Childers
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesAtlassian
 
Getting Started with jClouds: Multi Cloud Framework
Getting Started with jClouds: Multi Cloud FrameworkGetting Started with jClouds: Multi Cloud Framework
Getting Started with jClouds: Multi Cloud FrameworkIndicThreads
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetesLiran Cohen
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudMassimiliano Dessì
 
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCome costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCodemotion
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassPaul Withers
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Patrick Chanezon
 
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...PT Datacomm Diangraha
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with DockerAndrey Hristov
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with DockerAndrey Hristov
 
Docker OpenStack Cloud Foundry
Docker OpenStack Cloud FoundryDocker OpenStack Cloud Foundry
Docker OpenStack Cloud FoundryAnimesh Singh
 

Ähnlich wie Deltacloud API (20)

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

Deltacloud API

  • 1. Deltacloud API Michal Fojtik, Software Engineer, Red Hat Czech
  • 2.
  • 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