jclouds overview

Uploaded on

high-level presentation covering the jclouds open source project. …

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.

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    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

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    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


  • 1. Overview @jclouds
  • 2. Agenda •What is jclouds? •What does it do? •Relationship to other projects •Code examples •Extras
  • 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. 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. 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. 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. API Approach • Backend before abstraction • proprietary features, multiple abstractions • Functional java (guava) • Universal Testing Approach • unit, “expect”, and live tests
  • 8. BlobStore LoadBalancer Compute DNS, Block Storage, Network, Identity Portable APIs Embeddable Provider-Specific Hooks 40 built-in providers & 20 apis and dialects!
  • 9. Who’s integrating? YOU?
  • 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@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. CLI github jclouds/jclouds-cli
  • 13. jclouds locations Location helps normalize placement across resource types All top-level resources have a location Location metadata is extensible
  • 14. jclouds modularity APIs are software focused Providers are offering focused API + location + defaults = Provider
  • 15. @jclouds What’s new? • Apache incubator graduation vote! • Portable Multi-part Upload (big blobs) • Portable security groups
  • 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. Alternatives • Roll-your-own • Cloud-specific SDKs • Dasein Cloud API • Netflix Denominator (DNS only)
  • 18. @jclouds Where now? • jclouds.incubator.apache.org • github/jclouds/jclouds-examples • IRC #jclouds on freenode