jclouds overview


Published on

high-level presentation covering the jclouds open source project.

Note that jclouds is currently in the Apache incubator, so check http://incubator.apache.org/projects/jclouds.html for latest status.

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • test note
  • ant, vfs plugins, examples for spring, jruby, simple usage, google appengine
  • AbstractionsBlobStore ( atmos, azure, rackspace, s3 )Compute ( ec2, rackspace, vcloud, gogrid...)Clojure bindingsStuff (stubs/filesystem providers, plugins...)
  • focused on semantic portability across clouds I want an image running ubuntu and don ’ t want to know the id absolute portability where possible, but expose vendor apis where needed
  • notice you don ’ t even have to choose an operating system
  • ex. you can include add metadata to locations to assign ISO-3166 for geopolitical regions
  • global namespace, act of tenancy and uniquely identifies your namespace similar to dns azure scopes container names to accounts nirvanix scopes based on application and then subaccount
  • Guava! But normally only a couple-of-week wait
  • jclouds overview

    1. 1. Overview @jclouds
    2. 2. Agenda •What is jclouds? •What does it do? •Relationship to other projects •Code examples •Extras
    3. 3. What is jclouds? • Java multi-cloud SDK • b 3/2009; currently apache incubator • connects tools portably, yet also availing backend • Over 40 cloud providers supported
    4. 4. What does it do? • Helps projects become cloud projects, and developers become cloud developers. • through consistency in • Tools vs Services • Services vs Model • API approach
    5. 5. Tools vs Services • jclouds helps existing tools connect to cloud services • a consistent integration pattern and configuration • adjustable library dependencies • sample patterns, integrations, and abstractions
    6. 6. Services vs Model • jclouds simplifies modeling of cloud services • Standards focus with pragmatic extensions. (JSR-330, 311) • Clean means of addressing service quirks • pluggable strategies for error/retry handling
    7. 7. API Approach • Backend before abstraction • proprietary features, multiple abstractions • Functional java (guava) • Universal Testing Approach • unit, “expect”, and live tests
    8. 8. BlobStore LoadBalancer Compute DNS, Block Storage, Network, Identity Portable APIs Embeddable Provider-Specific Hooks 40 built-in providers & 20 apis and dialects!
    9. 9. Who’s integrating? YOU?
    10. 10. // init context = ContextBuilder.newBuilder(“cloudfiles-us”) .credentials(apikey, secret) .buildView(BlobStoreContext.class); blobStore = context.getBlobStore();// create containerblobStore.createContainerInLocation(null, “adriansmovies”); // add blob blob = blobStore.blobBuilder("sushi.avi").payload(file).build(); blobStore.putBlob(“adriansmovies”, blob); java overview github jclouds/jclouds
    11. 11. 11@jclouds java overview github jclouds/jclouds // init context = ContextBuilder.newBuilder(“openstack-nova”) .endpoint(“https://keystone:5000/v2.0”) .credentials(tenantUser, password) .modules(singleton(new SshjSshClientModule())) .buildView(ComputeServiceContext.class); compute = context.getComputeService(); // create a couple nodes and open a couple ports nodes = compute.createNodesInGroup(“hbase-master”, 1, runScript(install). inboundPorts(60000, 60010)); // gather my ip addresses for (NodeMetadata node : nodes) { node.getPublicAddresses(); node.getPrivateAddresses(); } 11
    12. 12. CLI github jclouds/jclouds-cli
    13. 13. jclouds locations Location helps normalize placement across resource types All top-level resources have a location Location metadata is extensible
    14. 14. jclouds modularity APIs are software focused Providers are offering focused API + location + defaults = Provider
    15. 15. @jclouds What’s new? • Apache incubator graduation vote! • Portable Multi-part Upload (big blobs) • Portable security groups
    16. 16. Lessons Learned • Cloud providers are generally quite helpful • Not everyone rolls their own, but many do • Extensions are an api-visible way to differentiate on products like OpenStack • Nothing’s really compatible for long • Plan to refactor testing approach every year
    17. 17. Alternatives • Roll-your-own • Cloud-specific SDKs • Dasein Cloud API • Netflix Denominator (DNS only)
    18. 18. @jclouds Where now? • jclouds.incubator.apache.org • github/jclouds/jclouds-examples • IRC #jclouds on freenode