Sei sulla pagina 1di 27

CLOUD COMPUTING Deltacloud API

Michal Fojtik mfojtik@redhat.com

Services everywhere...

Software as A Service

Gmail, Salesforge AppEngine, Heroku EC2, GoGrid, RHEV

Platform as a Service

Infrastructure as a Service

Cloud computing types


Public Cloud Private Cloud Hybrid Cloud


Community / Government Cloud

Who is it for ?

For large (Fortune 500) companies, owning data center is easy cost For medium companies, it's unrealistic For small companies, it's a dream

7 from 10 startups choose cloud deployment

Disadvantages when using 'in-house' server

Disadvantages when using 'in-house' server

Small is

expensive (upgrades, power, admin...) less reliable (redundancy, failovers...) risky (All you eggs in one basket) inflexible (remote access is difficult)

Advantages of using 'cloud' solution


Pay as you go model Infinite on-demand resources High elasticity Minimal initial costs

Common cloud questions


Data security Political restrictions Connectivity

Key components of Cloud


Massive virtualization (KVM, Xen, Hyper-V) Network (Internet in most cases) Easy administration (API)

API ?

More convenient way for managing clouds Gives a lot of power to end-users Scaling your applications/infrastructure using custom application Using web UI is not effective

Many clouds == many problems...

Vendor lock-in

Similar to the many virtualization hypervisors (KVM, Xen, Hyper-V) before libvirt OpenStack ? (Rackspace) Amazon EC2 API VMWare vCloud ? (VMWare)

Each provider has own API


Many clouds, one API

Deltacloud API

Incubated under Apache Foundation (ASF)

REST based cloud abstraction API Managing resources in different IaaS clouds Profiting from open-source model

Deltacloud Supported IaaS providers

Implemented as 'driver':

Amazon EC2/S3, Rackspace, GoGrid, Terremark (vCloud), OpenNebula, RimuHosting, RHEV-M Comming soon: Linode, VMWare vCloud

Native providers For developers: Mock driver

API specification

REST API

thus programming language agnostic supports XML, JSON, HTML build-in documentation

Entry-point model (/api) Collections and operations Features (we failed here in abstraction ;-)

API capabilities (1)

Base collections:

hardware_profiles realms images instances keys, buckets, storage_volumes, storage_snapshots

Extended collections:

API capabilities (2)

Operations

Basic set of CRUD operations


Create (instance) Read/List (instances, images, hardware profiles...) Update (instance state reboot, stop, start) Destroy (instance, images) Upload blob to bucket (S3) Assign instance to loadbalancer

Extended operations

API capabilities (3)


Capabilities are reported on entry-point level Using 'RESTish' practices


Linking between resources HTTP status codes

Additional features

Instance authentication User data injection Security groups Loadbalancers... Features are reported in entry-point level

Clients Ruby, Java, C (libdeltacloud), Perl, ....add your language here

Advantages of using Deltacloud API


Freedom in choosing provider QOS (Quality of Service) Simple fail-over Simple migration from one provider to another Making cloud development fun, instead of frustration

Future ?

Project Aeolus

(God of wind manages clouds) Enterprise web application for managing clouds

Includes Image building, deploying, QoS, Quotas...

Support more cloud providers (VMWare) Native providers

Where to start ? Official homepage: deltacloud.org

git.apache.org/deltacloud.git
deltacloud-dev-subscribe@incubator.apache.org

Interested in Ruby ? Looking for Ruby programmers !


jobs.cz.redhat.com

Thank you! Questions ?

Potrebbero piacerti anche