Cloud APIs Overview



    What they are
    How they work
     Discussion



                    Lew Tucker
                    VP, CTO Cloud Computing
                    Sun Microsystems, Inc
                    1/20/2010
Computing Economics - P.O.V
●   Fall in cost of computing bounded only by the
    cost of power
●   Commoditization is inevitable and good
●   The sustainable value that a provider can
    charge for a service will all be above this base
●   So, accelerate commoditization of base-level
    APIs through agreed upon standards to
    accelerate development of higher-level, higher-
    value services
What Cloud APIs Do
●   Application level: SaaS
    ●   Programatic way interact with App
    ●   Very app specific
●   Development environment: PaaS
    ●   Application development
    ●   Language/programming model/service specific
●   Access to raw compute and storage: IaaS
    ●   Create and manage computational resources
        – Typically: virtual, shared, dynamically provisioned
    ●   Lowest level – best chance of standardization
    ●   Large amount of commonality
                                    our focus is here – cloud resources
Today each cloud provider makes their own
                  ...and the number is growing

●   Today:
    ●   Amazon's AWS set: EC2, S3, SQS, …
    ●   Microsoft's Azure
    ●   Google App Engine
    ●   RackSpace
    ●   VMware Vcloud
    ●   Sun's Cloud API
    ●   GoGrid,
    ●   IBM Developer Cloud API
    ●   Several standards groups, software libraries .........
EC2 Query API example
GET:
https://ec2.amazonaws.com/
?Action=RunInstances &ImageId=ami-60a54009 &MaxCount=3
&MinCount=1
&Placement.AvailabilityZone=us-east-1b &...auth parameters...

RESPONSE:
<RunInstancesResponse
xmlns="http://ec2.amazonaws.com/doc/2008-08-08">
 <reservationId>r-47a5402e</reservationId>
 <ownerId>495219933132</ownerId>
   :
 <instancesSet>
   <item>
     <instanceId>i-2ba64342</instanceId>
     <imageId>ami-60a54009</imageId>
     <instanceState>
      <code>0</code>
      <name>pending</name>
     </instanceState>
     <keyName>example-key-name</keyName>
     <amiLaunchIndex>0</amiLaunchIndex>
     <InstanceType>m1.small</InstanceType>
     <launchTime>2007-08-07T11:51:50.000Z</launchTime>
</instancesSet>
</RunInstancesResponse>
Feature Set Catalog
       http://forge.ogf.org/sf/wiki/do/viewPage/projects.occi-wg/wiki/FeatureMatrix




                                see Rich Miller's Catalog
API Differences
●   Language bindings vs http protocols
●   Use of HTTP: RESTful vs query vs SOAP
●   Authentication
●   Resource properties and representations
●   Error codes and response handling
●   Machine images
●   Level of detail and variability of resources
Interfaces and Providers




           http://architects.dzone.com/news/opennebula-14-challenges
Let's start with basic HTTP resource
            representations
Open Cloud Computing Interface
         (Open Grid Forum)




                        http://forge.ogf.org/sf/projects/occi-wg
Cloud Data Management Interface
             (SNIA)




                        CDMI
OCCI Example: Get VM
> GET /us-east/webapp/vm01 HTTP/1.1
> User-Agent: occi-client/1.0 (linux) libcurl/7.19.4 OCCI/1.0
> Host: cloud.example.com
> Accept: */*
-------------------------------------------------------------------------------------
< HTTP/1.1 200 OK
< Content-Type: application/ovf
< Link: </us-east/webapp/vm01;start>;
<       rel="http://purl.org/occi/action#start";
<       title="Start"
< Link: </us-east/webapp/build.pdf>;
<       rel="related";
<       title="Documentation";
<       type="application/pdf"
< Category: compute;
<       label="Compute Resource";
<       scheme="http://purl.org/occi/kind#"
< Server: occi-server/1.0 (linux) OCCI/1.0
< Connection: close
<
< <?xml version="1.0" encoding="UTF-8"?>
...
Security Requirements
●   Identity, Roles, Access Control, Policies
●   Cryptography, Key and Certificate Mgmt
●   Network Security
●   Data/Storage Security
●   Even Auditing and Reporting
●   Federation Patterns
    ●   ID, Trust, Access Mgmt, SSO, Audit, Config Mgmt

                    Cloud Computing Interoperability Forum
                    http://groups.google.com/group/cloud-computing-use-cases/files
The Network is the Computer
Clo u d
The Network is the Computer



       Are we getting there yet?
What's this “cloud” computer like?
●   MPP-like distributed system of CPU's, memory,
    disks, network, and more
●   Programmed through multiple service interfaces
●   Physically remote and managed by one or more
     rd
    3 party providers
●   Dynamic allocation of resources as needed
●   Accessed according to account priviledges
How is it programmed
●   Individual nodes programmed using variety of
    programming languages, tools, methods.
●   OS and applications loaded via virtual machine
    images or higher-level constructs (jar, maven,
    etc.)
●   Administrative interfaces for resource allocation
    and management
●   Means for expressing application architecture
    covering multiple resources and their network
    connectivity
Discussion:
        What is the API for this new Computer?
●   Open, common, CC API – of course
    ●   Common vocabulary – ontology (OWL?)
●   Directory of services
●   Universal machine image format (OVF?)
●   Identity (OpenID, multiple?), account and
    certificate managment
●   Orchestration
    ●   Mgmt of ensembles of resources, reservations
●   Service-provider vs customer APIs

Cloud APIs Overview Tucker

  • 1.
    Cloud APIs Overview What they are How they work Discussion Lew Tucker VP, CTO Cloud Computing Sun Microsystems, Inc 1/20/2010
  • 2.
    Computing Economics -P.O.V ● Fall in cost of computing bounded only by the cost of power ● Commoditization is inevitable and good ● The sustainable value that a provider can charge for a service will all be above this base ● So, accelerate commoditization of base-level APIs through agreed upon standards to accelerate development of higher-level, higher- value services
  • 3.
    What Cloud APIsDo ● Application level: SaaS ● Programatic way interact with App ● Very app specific ● Development environment: PaaS ● Application development ● Language/programming model/service specific ● Access to raw compute and storage: IaaS ● Create and manage computational resources – Typically: virtual, shared, dynamically provisioned ● Lowest level – best chance of standardization ● Large amount of commonality our focus is here – cloud resources
  • 4.
    Today each cloudprovider makes their own ...and the number is growing ● Today: ● Amazon's AWS set: EC2, S3, SQS, … ● Microsoft's Azure ● Google App Engine ● RackSpace ● VMware Vcloud ● Sun's Cloud API ● GoGrid, ● IBM Developer Cloud API ● Several standards groups, software libraries .........
  • 5.
    EC2 Query APIexample GET: https://ec2.amazonaws.com/ ?Action=RunInstances &ImageId=ami-60a54009 &MaxCount=3 &MinCount=1 &Placement.AvailabilityZone=us-east-1b &...auth parameters... RESPONSE: <RunInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2008-08-08"> <reservationId>r-47a5402e</reservationId> <ownerId>495219933132</ownerId> : <instancesSet> <item> <instanceId>i-2ba64342</instanceId> <imageId>ami-60a54009</imageId> <instanceState> <code>0</code> <name>pending</name> </instanceState> <keyName>example-key-name</keyName> <amiLaunchIndex>0</amiLaunchIndex> <InstanceType>m1.small</InstanceType> <launchTime>2007-08-07T11:51:50.000Z</launchTime> </instancesSet> </RunInstancesResponse>
  • 6.
    Feature Set Catalog http://forge.ogf.org/sf/wiki/do/viewPage/projects.occi-wg/wiki/FeatureMatrix see Rich Miller's Catalog
  • 7.
    API Differences ● Language bindings vs http protocols ● Use of HTTP: RESTful vs query vs SOAP ● Authentication ● Resource properties and representations ● Error codes and response handling ● Machine images ● Level of detail and variability of resources
  • 8.
    Interfaces and Providers http://architects.dzone.com/news/opennebula-14-challenges
  • 9.
    Let's start withbasic HTTP resource representations
  • 10.
    Open Cloud ComputingInterface (Open Grid Forum) http://forge.ogf.org/sf/projects/occi-wg
  • 11.
    Cloud Data ManagementInterface (SNIA) CDMI
  • 12.
    OCCI Example: GetVM > GET /us-east/webapp/vm01 HTTP/1.1 > User-Agent: occi-client/1.0 (linux) libcurl/7.19.4 OCCI/1.0 > Host: cloud.example.com > Accept: */* ------------------------------------------------------------------------------------- < HTTP/1.1 200 OK < Content-Type: application/ovf < Link: </us-east/webapp/vm01;start>; < rel="http://purl.org/occi/action#start"; < title="Start" < Link: </us-east/webapp/build.pdf>; < rel="related"; < title="Documentation"; < type="application/pdf" < Category: compute; < label="Compute Resource"; < scheme="http://purl.org/occi/kind#" < Server: occi-server/1.0 (linux) OCCI/1.0 < Connection: close < < <?xml version="1.0" encoding="UTF-8"?> ...
  • 13.
    Security Requirements ● Identity, Roles, Access Control, Policies ● Cryptography, Key and Certificate Mgmt ● Network Security ● Data/Storage Security ● Even Auditing and Reporting ● Federation Patterns ● ID, Trust, Access Mgmt, SSO, Audit, Config Mgmt Cloud Computing Interoperability Forum http://groups.google.com/group/cloud-computing-use-cases/files
  • 14.
    The Network isthe Computer
  • 15.
    Clo u d TheNetwork is the Computer Are we getting there yet?
  • 16.
    What's this “cloud”computer like? ● MPP-like distributed system of CPU's, memory, disks, network, and more ● Programmed through multiple service interfaces ● Physically remote and managed by one or more rd 3 party providers ● Dynamic allocation of resources as needed ● Accessed according to account priviledges
  • 17.
    How is itprogrammed ● Individual nodes programmed using variety of programming languages, tools, methods. ● OS and applications loaded via virtual machine images or higher-level constructs (jar, maven, etc.) ● Administrative interfaces for resource allocation and management ● Means for expressing application architecture covering multiple resources and their network connectivity
  • 18.
    Discussion: What is the API for this new Computer? ● Open, common, CC API – of course ● Common vocabulary – ontology (OWL?) ● Directory of services ● Universal machine image format (OVF?) ● Identity (OpenID, multiple?), account and certificate managment ● Orchestration ● Mgmt of ensembles of resources, reservations ● Service-provider vs customer APIs