SlideShare a Scribd company logo
1 of 39
Supporting and Using EC2/CIMI on top of
Cloud Environments via Deltacloud



Oved Ourfali
Senior Software Engineer – Red Hat


FOSDEM & Puppet Camp
February 2013
                                          1
Agenda

 Overview and Motivation
 Cloud APIs
 Using Deltacloud on top of oVirt via EC2 and CIMI
   Integration
   Installation
   EC2/CIMI examples
 Future Work
 Summary




                                                     2
Deltacloud
  Open source Apache project
  Abstracts the differences between cloud providers
  Supports Deltacloud, EC2 and CIMI APIs
  Supports many cloud providers
    EC2
    oVirt
    Eucalyptus
    OpenNebula
    OpenStack
    .....




                                                      3
Deltacloud



  CIMI API                EC2 API                   Deltacloud API


                   Deltacloud Server


  EC2 driver   oVirt driver            Eucalyptus driver



 Amazon EC2       oVirt                   Eucalyptus




                                                                     4
Motivation

  Heterogeneous cloud and virtualization environment
  Existing software working with common cloud APIs like
  EC2
     Aeolus / CloudForms – cloud management software
     Synaps – CloudWatch implementation over EC2 API
     Heat (Openstack project)
            CloudFormation and CloudWatch support
            POC to support Deltacloud
     Automated scripts
     ....


                                                       5
Bottom Line




              If you work with
        EC2 / CIMI / Deltacloud API
 you can use it on top of many different
           cloud providers!



                                       6
Cloud APIs

  DMTF CIMI API
    Cloud Infrastructure Management Interface
    http://dmtf.org/standards/cloud
    Version 1.0.0 was published in August, 29th, 2012,
    1.0.1 in October
    Still new API, but aims to be the cloud standard API
  EC2 API – Amazon Elastic Cloud API
  Deltacloud API




                                                           7
CIMI API
 REST based API
 Main entities:
   Machines - configuration, image, template
   Volumes - images, configuration, image, template
   Networks – Configuration, Forwarding Group, Template
   Network Ports – Port configuration, Port Template




                                                       8
EC2 API

  API to Amazon Elastic Cloud, that allows to perform
  various actions
  HTTP GET/POST
    Endpoint—Entry point to act on
    Action—Action to perform on the endpoint
    Parameters—Request parameters




                                                   9
EC2 API

  Main entities:
    AMI – template that contains a software configuration
    Instance Type – instance hardware configuration
    Instance – compute resource
    EBS Volume – storage resource
    Networking entities (IP Addresses, NetworkInterface,
    Network ACL, Network ACL entries....)
    Region – different geographical locations where data
    centers reside
    Availability Zone – isolated from failures in other zones


                                                            10
Deltacloud API
 REST based API
 Main entities:
   Instances
   Images
   Hardware Profiles
   Realms
   Storage Volumes and Snapshots
   Networking Entities
      IP Addresses
      Load Balancers
      Firewalls

                                   11
Using Deltacloud on top of oVirt
       via EC2 and CIMI




                                   12
oVirt Engine

  The oVirt engine is a large scale, centralized
  virtualization management platform
  Provides IaaS capabilities
  Every capability is exposed via rich API, UI, CLI and
  SDK




                                                          13
Deltacloud-oVirt integration


                    oVirt Driver




                      rbovirt


                          REST API


                    oVirt Engine




                                     14
Install and Run the Deltacloud Server
  Installing Deltacloud via GEM
    Run the following commands as super user:
    $ yum install rubygems gcc-c++ libxml libxslt libxslt-devel
    $ gem install rake deltacloud-core


  Running Deltacloud
     First set the API_PROVIDER in the following format
         API-URL; DataCenter-ID ; USER/ADMIN (default to ADMIN)
     Examples
         API_PROVIDER=”http://engine-server:port/api;dc-id;ADMIN
         API_PROVIDER=”http://engine-server:port/api;;USER
     Then, run the deltacloud daemon
      $ export API_PROVIDER=”http://ovirt-server:port/api;;USER”
      $ deltacloudd -i rhevm -f cimi,ec2,deltacloud


                                                                   15
Install and Run the Deltacloud Server
  Installing Deltacloud via RPM
    Run the following command as super user:
    $ yum install deltacloud-core-all



  Configure Deltacloud
     Set the DRIVER, API_PROVIDER and API_FRONTEND in
     /etc/sysconfig/deltacloud-core
        API_PROVIDER=”http://ovirt-server:port/api;;USER”
        API_FRONTEND=”cimi,ec2,deltalcoud”
        DRIVER=”rhevm”
  Running the Deltacloud service
     systemctl start deltacloud-core.service


                                                            16
Install and Run the Deltacloud Server
  Admin API requests are DC-specific, whereas User ones are system-
  wide
  The API_PROVIDER can be changed by setting the “X-Deltacloud-
  Provider” HTTP Header on every request




                                                                17
Basic Operations - EC2
  The following EC2 operations are supported when using Deltacloud
  on top of oVirt engine:
     Get Clusters (Availability Zones)
     Get Templates (AMI – Amazon Machine Images + Instance Type)
     Get VMs (Instances)
     Create new VM (Run Instances)
     Start VM (Start Instances)
     Stop VM (Stop Instances)
     Delete VM (Terminate Instances)




                                                               18
Basic Operations - EC2
  Get oVirt Clusters
    HTTP GET
    http://localhost:3001/ec2/?Action=DescribeAvailabilityZones




                                                                  19
Basic Operations - EC2
  Get oVirt Templates
     HTTP GET
     http://localhost:3001/ec2/?Action=DescribeImages




                                                        20
Basic Operations - EC2
  Create VM from Template, in a Cluster
  (EC2 - run an instance, created from an image, in an availability zone)
      HTTP GET
      http://localhost:3001/ec2/?
      Action=RunInstances&Placement.AvailabilityZone=77d52ef6-
      11e3-11e2-be8c-87a6485627fe&ImageId=77ea7521-3017-4ee9-
      bcdf-d566178991c6
      Other options
         UserData=..... (Either via hooks in older versions, or via native
         oVirt VM Payload feature in newer versions)
         InstanceType=... (Will be supported when we introduce flavors
         in oVirt)




                                                                      21
Basic Operations - EC2
  Response




                         22
Basic Operations - EC2
  Get VM
    HTTP GET
    All instances - http://localhost:3001/ec2/?
    Action=DescribeInstances
    Specific instance - http://localhost:3001/ec2/?
    Action=DescribeInstances&InstanceId.1=84623036-49fe-4f22-
    ac6f-ff526e8b82be”




                                                           23
Basic Operations - EC2
  Start VM
    HTTP GET
    http://localhost:3001/ec2/?
    Action=StartInstances&InstanceId.1=84623036-49fe-4f22-ac6f-
    ff526e8b82be”




                                                             24
Basic Operations - EC2
  Stop VM
    HTTP GET
    http://localhost:3001/ec2/?
    Action=StopInstances&InstanceId.1=84623036-49fe-4f22-ac6f-
    ff526e8b82be”




                                                            25
Basic Operations - EC2
  Delete VM
    HTTP GET
    http://localhost:3001/ec2/?
    Action=TerminateInstances&InstanceId.1=84623036-49fe-4f22-
    ac6f-ff526e8b82be”




                                                           26
Basic Operations - CIMI
  The following CIMI operations are supported when using Deltacloud
  on top of oVirt engine:
     Get Templates (Get Images)
     Get VMs (Get Machines)
     Create new VM (Create Machine)
     Start VM (Start Machine)
     Stop VM (Stop Machine)
     Delete VM (Delete Machine)




                                                                27
Basic Operations - CIMI
  Get Templates
    HTTP GET
    http://localhost:3001/cimi/machine_images




                                                28
Basic Operations - CIMI
  Create VM
    HTTP POST
    http://localhost:3001/cimi/machines
    Body




                                          29
Basic Operations - CIMI
  Response:




                          30
Basic Operations - CIMI
  Get VM
    HTTP GET
    http://localhost:3001/cimi/machines/7434e6e3-a85d-4bfb-b952-
    b191288c2aa2




                                                               31
Basic Operations - CIMI
  Start VM
    HTTP POST
    http://localhost:3001/cimi/machines/81e0908a-04da-4859-8a92-
    f80d071a2e4c/start
    Body:



    Response:
       HTTP CODE 200




                                                               32
Basic Operations - CIMI
  Stop VM
    HTTP POST
    http://localhost:3001/cimi/machines/81e0908a-04da-4859-8a92-
    f80d071a2e4c/stop
    Body:



    Response:
       HTTP CODE 200




                                                               33
Basic Operations - CIMI
  Delete VM
    HTTP DELETE
    http://localhost:3001/cimi/machines/1bac66da-7ecc-4e19-bc91-
    0623c5448fc9
    Response:
       HTTP CODE 200




                                                               34
Future Work (oVirt / Deltacloud)
  General
    Supporting VM configuration/instance type (not yet part of oVirt)
    Better mapping and support for networks
    Better mapping and support for storage volumes (Integrate into
    Deltacloud)
    Supporting VM Payload (Deltacloud)
  EC2
    Supporting more EC2 options/actions (oVirt / Deltacloud)
  CIMI
    Supporting more CIMI options/actions/entities (oVirt / Deltacloud)
    Support updating resources (Deltacloud will need to support that
    and integrate with oVirt)

                                                                     35
Summary

 Enabling the use of common cloud APIs on top of
 cloud environments is very useful
 Deltacloud exposes common cloud APIs on top of
 many cloud providers, including oVirt
 Projects who would like to use the Deltacloud-oVirt
 integration - we would be happy to know about it,
 guide you, and help! Please contact us on
 users@ovirt.org




                                                       36
Useful Links

  Deltacloud
    Developer mailing list dev@deltacloud.apache.org
    http://deltacloud.apache.org
    #deltacloud on Freenode
  oVirt
    Users mailing list users@ovirt.org
    http://ovirt.org
  My blog
    http://ovedou.blogspot.com


                                                   37
Questions



            ?
                38
THANK YOU !

http://www.ovirt.org



ovedo@redhat.com
ovedo at #ovirt (irc.oftc.net)
                                 39

More Related Content

What's hot

Scalable Object Storage with Apache CloudStack and Apache Hadoop
Scalable Object Storage with Apache CloudStack and Apache HadoopScalable Object Storage with Apache CloudStack and Apache Hadoop
Scalable Object Storage with Apache CloudStack and Apache HadoopChiradeep Vittal
 
Hitchhiker's Guide to Open Source Cloud Computing
Hitchhiker's Guide to Open Source Cloud ComputingHitchhiker's Guide to Open Source Cloud Computing
Hitchhiker's Guide to Open Source Cloud ComputingMark Hinkle
 
Networking in the Cloud Age (LISA 2012 Tutorial)
Networking in the Cloud Age (LISA 2012 Tutorial)Networking in the Cloud Age (LISA 2012 Tutorial)
Networking in the Cloud Age (LISA 2012 Tutorial)Chiradeep Vittal
 
Cloudstack networking2
Cloudstack networking2Cloudstack networking2
Cloudstack networking2Hiroaki Kawai
 
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief ComparisonCloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparisonbizalgo
 
OpenStack Quantum: Cloud Carrier Summit 2012
OpenStack Quantum: Cloud Carrier Summit 2012OpenStack Quantum: Cloud Carrier Summit 2012
OpenStack Quantum: Cloud Carrier Summit 2012Dan Wendlandt
 
OpenStack 101 Technical Overview
OpenStack 101 Technical OverviewOpenStack 101 Technical Overview
OpenStack 101 Technical OverviewOpen Stack
 
Open stack in sina
Open stack in sinaOpen stack in sina
Open stack in sinaHui Cheng
 
Cloudstack vs Openstack
Cloudstack vs OpenstackCloudstack vs Openstack
Cloudstack vs OpenstackHuzefa Husain
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesSlideTeam
 
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)Mirantis
 
Decisions behind hypervisor selection in CloudStack 4.3
Decisions behind hypervisor selection in CloudStack 4.3Decisions behind hypervisor selection in CloudStack 4.3
Decisions behind hypervisor selection in CloudStack 4.3Tim Mackey
 
CloudStack Networking Deepdive CCCEU13
CloudStack Networking Deepdive CCCEU13CloudStack Networking Deepdive CCCEU13
CloudStack Networking Deepdive CCCEU13Chiradeep Vittal
 
Introduction to OpenStack Architecture (Grizzly Edition)
Introduction to OpenStack Architecture (Grizzly Edition)Introduction to OpenStack Architecture (Grizzly Edition)
Introduction to OpenStack Architecture (Grizzly Edition)Ken Pepple
 
CloudStack Best Practice in PPTV
CloudStack Best Practice in PPTVCloudStack Best Practice in PPTV
CloudStack Best Practice in PPTVgavin_lee
 
Building clouds with apache cloudstack apache roadshow 2018
Building clouds with apache cloudstack   apache roadshow 2018Building clouds with apache cloudstack   apache roadshow 2018
Building clouds with apache cloudstack apache roadshow 2018ShapeBlue
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolTorrid Networks Private Limited
 

What's hot (20)

Scalable Object Storage with Apache CloudStack and Apache Hadoop
Scalable Object Storage with Apache CloudStack and Apache HadoopScalable Object Storage with Apache CloudStack and Apache Hadoop
Scalable Object Storage with Apache CloudStack and Apache Hadoop
 
OpenStack Report
OpenStack ReportOpenStack Report
OpenStack Report
 
Hitchhiker's Guide to Open Source Cloud Computing
Hitchhiker's Guide to Open Source Cloud ComputingHitchhiker's Guide to Open Source Cloud Computing
Hitchhiker's Guide to Open Source Cloud Computing
 
Networking in the Cloud Age (LISA 2012 Tutorial)
Networking in the Cloud Age (LISA 2012 Tutorial)Networking in the Cloud Age (LISA 2012 Tutorial)
Networking in the Cloud Age (LISA 2012 Tutorial)
 
Cloudstack networking2
Cloudstack networking2Cloudstack networking2
Cloudstack networking2
 
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief ComparisonCloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
CloudStack vs OpenStack vs Eucalyptus: IaaS Private Cloud Brief Comparison
 
OpenStack Quantum: Cloud Carrier Summit 2012
OpenStack Quantum: Cloud Carrier Summit 2012OpenStack Quantum: Cloud Carrier Summit 2012
OpenStack Quantum: Cloud Carrier Summit 2012
 
OpenStack 101 Technical Overview
OpenStack 101 Technical OverviewOpenStack 101 Technical Overview
OpenStack 101 Technical Overview
 
Open stack in sina
Open stack in sinaOpen stack in sina
Open stack in sina
 
Introduction to CloudStack: How to Deploy and Manage Infrastructure-as-a-Serv...
Introduction to CloudStack: How to Deploy and Manage Infrastructure-as-a-Serv...Introduction to CloudStack: How to Deploy and Manage Infrastructure-as-a-Serv...
Introduction to CloudStack: How to Deploy and Manage Infrastructure-as-a-Serv...
 
OpenStack Framework Introduction
OpenStack Framework IntroductionOpenStack Framework Introduction
OpenStack Framework Introduction
 
Cloudstack vs Openstack
Cloudstack vs OpenstackCloudstack vs Openstack
Cloudstack vs Openstack
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
 
Decisions behind hypervisor selection in CloudStack 4.3
Decisions behind hypervisor selection in CloudStack 4.3Decisions behind hypervisor selection in CloudStack 4.3
Decisions behind hypervisor selection in CloudStack 4.3
 
CloudStack Networking Deepdive CCCEU13
CloudStack Networking Deepdive CCCEU13CloudStack Networking Deepdive CCCEU13
CloudStack Networking Deepdive CCCEU13
 
Introduction to OpenStack Architecture (Grizzly Edition)
Introduction to OpenStack Architecture (Grizzly Edition)Introduction to OpenStack Architecture (Grizzly Edition)
Introduction to OpenStack Architecture (Grizzly Edition)
 
CloudStack Best Practice in PPTV
CloudStack Best Practice in PPTVCloudStack Best Practice in PPTV
CloudStack Best Practice in PPTV
 
Building clouds with apache cloudstack apache roadshow 2018
Building clouds with apache cloudstack   apache roadshow 2018Building clouds with apache cloudstack   apache roadshow 2018
Building clouds with apache cloudstack apache roadshow 2018
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management tool
 

Similar to 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 wayJohannes Brännström
 
murakumo Cloud Controller
murakumo Cloud Controllermurakumo Cloud Controller
murakumo Cloud ControllerShingo Kawano
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...Tobias Schneck
 
The Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud NativeThe Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud NativeBen Hall
 
ApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformNicola Ferraro
 
.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
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibilityDocker, Inc.
 
Integrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementIntegrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementJoel W. King
 
Presentation1.pptx
Presentation1.pptxPresentation1.pptx
Presentation1.pptxJayakumarS71
 
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes MeetupCreating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes MeetupTobias Schneck
 
Okd wg kubecon marathon azure & vsphere
Okd wg kubecon marathon azure & vsphereOkd wg kubecon marathon azure & vsphere
Okd wg kubecon marathon azure & vsphereWalid Shaari
 
.NET Core Apps: Design & Development
.NET Core Apps: Design & Development.NET Core Apps: Design & Development
.NET Core Apps: Design & DevelopmentGlobalLogic Ukraine
 
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2Alfonso Martino
 
Ato2019 weave-services-istio
Ato2019 weave-services-istioAto2019 weave-services-istio
Ato2019 weave-services-istioLin Sun
 
Weave Your Microservices with Istio
Weave Your Microservices with IstioWeave Your Microservices with Istio
Weave Your Microservices with IstioAll Things Open
 
All Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioAll Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioLin Sun
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation ToolsEdwin Beekman
 
Monitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & MicroservicesMonitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & MicroservicesAjeet Singh Raina
 

Similar to Supporting and Using EC2/CIMI on top of Cloud Environments via Deltacloud (20)

Deltacloud API
Deltacloud APIDeltacloud API
Deltacloud API
 
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
 
murakumo Cloud Controller
murakumo Cloud Controllermurakumo Cloud Controller
murakumo Cloud Controller
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
 
The Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud NativeThe Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud Native
 
ApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platform
 
.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
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
 
Integrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementIntegrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud management
 
Presentation1.pptx
Presentation1.pptxPresentation1.pptx
Presentation1.pptx
 
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes MeetupCreating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
 
Okd wg kubecon marathon azure & vsphere
Okd wg kubecon marathon azure & vsphereOkd wg kubecon marathon azure & vsphere
Okd wg kubecon marathon azure & vsphere
 
.NET Core Apps: Design & Development
.NET Core Apps: Design & Development.NET Core Apps: Design & Development
.NET Core Apps: Design & Development
 
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 2
 
Ato2019 weave-services-istio
Ato2019 weave-services-istioAto2019 weave-services-istio
Ato2019 weave-services-istio
 
Weave Your Microservices with Istio
Weave Your Microservices with IstioWeave Your Microservices with Istio
Weave Your Microservices with Istio
 
All Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioAll Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istio
 
Cloud foundry
Cloud foundryCloud foundry
Cloud foundry
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation Tools
 
Monitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & MicroservicesMonitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & Microservices
 

Supporting and Using EC2/CIMI on top of Cloud Environments via Deltacloud

  • 1. Supporting and Using EC2/CIMI on top of Cloud Environments via Deltacloud Oved Ourfali Senior Software Engineer – Red Hat FOSDEM & Puppet Camp February 2013 1
  • 2. Agenda Overview and Motivation Cloud APIs Using Deltacloud on top of oVirt via EC2 and CIMI Integration Installation EC2/CIMI examples Future Work Summary 2
  • 3. Deltacloud Open source Apache project Abstracts the differences between cloud providers Supports Deltacloud, EC2 and CIMI APIs Supports many cloud providers EC2 oVirt Eucalyptus OpenNebula OpenStack ..... 3
  • 4. Deltacloud CIMI API EC2 API Deltacloud API Deltacloud Server EC2 driver oVirt driver Eucalyptus driver Amazon EC2 oVirt Eucalyptus 4
  • 5. Motivation Heterogeneous cloud and virtualization environment Existing software working with common cloud APIs like EC2 Aeolus / CloudForms – cloud management software Synaps – CloudWatch implementation over EC2 API Heat (Openstack project) CloudFormation and CloudWatch support POC to support Deltacloud Automated scripts .... 5
  • 6. Bottom Line If you work with EC2 / CIMI / Deltacloud API you can use it on top of many different cloud providers! 6
  • 7. Cloud APIs DMTF CIMI API Cloud Infrastructure Management Interface http://dmtf.org/standards/cloud Version 1.0.0 was published in August, 29th, 2012, 1.0.1 in October Still new API, but aims to be the cloud standard API EC2 API – Amazon Elastic Cloud API Deltacloud API 7
  • 8. CIMI API REST based API Main entities: Machines - configuration, image, template Volumes - images, configuration, image, template Networks – Configuration, Forwarding Group, Template Network Ports – Port configuration, Port Template 8
  • 9. EC2 API API to Amazon Elastic Cloud, that allows to perform various actions HTTP GET/POST Endpoint—Entry point to act on Action—Action to perform on the endpoint Parameters—Request parameters 9
  • 10. EC2 API Main entities: AMI – template that contains a software configuration Instance Type – instance hardware configuration Instance – compute resource EBS Volume – storage resource Networking entities (IP Addresses, NetworkInterface, Network ACL, Network ACL entries....) Region – different geographical locations where data centers reside Availability Zone – isolated from failures in other zones 10
  • 11. Deltacloud API REST based API Main entities: Instances Images Hardware Profiles Realms Storage Volumes and Snapshots Networking Entities IP Addresses Load Balancers Firewalls 11
  • 12. Using Deltacloud on top of oVirt via EC2 and CIMI 12
  • 13. oVirt Engine The oVirt engine is a large scale, centralized virtualization management platform Provides IaaS capabilities Every capability is exposed via rich API, UI, CLI and SDK 13
  • 14. Deltacloud-oVirt integration oVirt Driver rbovirt REST API oVirt Engine 14
  • 15. Install and Run the Deltacloud Server Installing Deltacloud via GEM Run the following commands as super user: $ yum install rubygems gcc-c++ libxml libxslt libxslt-devel $ gem install rake deltacloud-core Running Deltacloud First set the API_PROVIDER in the following format API-URL; DataCenter-ID ; USER/ADMIN (default to ADMIN) Examples API_PROVIDER=”http://engine-server:port/api;dc-id;ADMIN API_PROVIDER=”http://engine-server:port/api;;USER Then, run the deltacloud daemon $ export API_PROVIDER=”http://ovirt-server:port/api;;USER” $ deltacloudd -i rhevm -f cimi,ec2,deltacloud 15
  • 16. Install and Run the Deltacloud Server Installing Deltacloud via RPM Run the following command as super user: $ yum install deltacloud-core-all Configure Deltacloud Set the DRIVER, API_PROVIDER and API_FRONTEND in /etc/sysconfig/deltacloud-core API_PROVIDER=”http://ovirt-server:port/api;;USER” API_FRONTEND=”cimi,ec2,deltalcoud” DRIVER=”rhevm” Running the Deltacloud service systemctl start deltacloud-core.service 16
  • 17. Install and Run the Deltacloud Server Admin API requests are DC-specific, whereas User ones are system- wide The API_PROVIDER can be changed by setting the “X-Deltacloud- Provider” HTTP Header on every request 17
  • 18. Basic Operations - EC2 The following EC2 operations are supported when using Deltacloud on top of oVirt engine: Get Clusters (Availability Zones) Get Templates (AMI – Amazon Machine Images + Instance Type) Get VMs (Instances) Create new VM (Run Instances) Start VM (Start Instances) Stop VM (Stop Instances) Delete VM (Terminate Instances) 18
  • 19. Basic Operations - EC2 Get oVirt Clusters HTTP GET http://localhost:3001/ec2/?Action=DescribeAvailabilityZones 19
  • 20. Basic Operations - EC2 Get oVirt Templates HTTP GET http://localhost:3001/ec2/?Action=DescribeImages 20
  • 21. Basic Operations - EC2 Create VM from Template, in a Cluster (EC2 - run an instance, created from an image, in an availability zone) HTTP GET http://localhost:3001/ec2/? Action=RunInstances&Placement.AvailabilityZone=77d52ef6- 11e3-11e2-be8c-87a6485627fe&ImageId=77ea7521-3017-4ee9- bcdf-d566178991c6 Other options UserData=..... (Either via hooks in older versions, or via native oVirt VM Payload feature in newer versions) InstanceType=... (Will be supported when we introduce flavors in oVirt) 21
  • 22. Basic Operations - EC2 Response 22
  • 23. Basic Operations - EC2 Get VM HTTP GET All instances - http://localhost:3001/ec2/? Action=DescribeInstances Specific instance - http://localhost:3001/ec2/? Action=DescribeInstances&InstanceId.1=84623036-49fe-4f22- ac6f-ff526e8b82be” 23
  • 24. Basic Operations - EC2 Start VM HTTP GET http://localhost:3001/ec2/? Action=StartInstances&InstanceId.1=84623036-49fe-4f22-ac6f- ff526e8b82be” 24
  • 25. Basic Operations - EC2 Stop VM HTTP GET http://localhost:3001/ec2/? Action=StopInstances&InstanceId.1=84623036-49fe-4f22-ac6f- ff526e8b82be” 25
  • 26. Basic Operations - EC2 Delete VM HTTP GET http://localhost:3001/ec2/? Action=TerminateInstances&InstanceId.1=84623036-49fe-4f22- ac6f-ff526e8b82be” 26
  • 27. Basic Operations - CIMI The following CIMI operations are supported when using Deltacloud on top of oVirt engine: Get Templates (Get Images) Get VMs (Get Machines) Create new VM (Create Machine) Start VM (Start Machine) Stop VM (Stop Machine) Delete VM (Delete Machine) 27
  • 28. Basic Operations - CIMI Get Templates HTTP GET http://localhost:3001/cimi/machine_images 28
  • 29. Basic Operations - CIMI Create VM HTTP POST http://localhost:3001/cimi/machines Body 29
  • 30. Basic Operations - CIMI Response: 30
  • 31. Basic Operations - CIMI Get VM HTTP GET http://localhost:3001/cimi/machines/7434e6e3-a85d-4bfb-b952- b191288c2aa2 31
  • 32. Basic Operations - CIMI Start VM HTTP POST http://localhost:3001/cimi/machines/81e0908a-04da-4859-8a92- f80d071a2e4c/start Body: Response: HTTP CODE 200 32
  • 33. Basic Operations - CIMI Stop VM HTTP POST http://localhost:3001/cimi/machines/81e0908a-04da-4859-8a92- f80d071a2e4c/stop Body: Response: HTTP CODE 200 33
  • 34. Basic Operations - CIMI Delete VM HTTP DELETE http://localhost:3001/cimi/machines/1bac66da-7ecc-4e19-bc91- 0623c5448fc9 Response: HTTP CODE 200 34
  • 35. Future Work (oVirt / Deltacloud) General Supporting VM configuration/instance type (not yet part of oVirt) Better mapping and support for networks Better mapping and support for storage volumes (Integrate into Deltacloud) Supporting VM Payload (Deltacloud) EC2 Supporting more EC2 options/actions (oVirt / Deltacloud) CIMI Supporting more CIMI options/actions/entities (oVirt / Deltacloud) Support updating resources (Deltacloud will need to support that and integrate with oVirt) 35
  • 36. Summary Enabling the use of common cloud APIs on top of cloud environments is very useful Deltacloud exposes common cloud APIs on top of many cloud providers, including oVirt Projects who would like to use the Deltacloud-oVirt integration - we would be happy to know about it, guide you, and help! Please contact us on users@ovirt.org 36
  • 37. Useful Links Deltacloud Developer mailing list dev@deltacloud.apache.org http://deltacloud.apache.org #deltacloud on Freenode oVirt Users mailing list users@ovirt.org http://ovirt.org My blog http://ovedou.blogspot.com 37
  • 38. Questions ? 38