Apache JClouds


Published on

An introduction to Apache JClouds, featuring the compute service API and blobstore.

Published in: Technology, Business
1 Like
  • Be the first to comment

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

No notes for slide

Apache JClouds

  1. 1. Apache JClouds Cloud interfaces, simplified Hiranya Jayathilaka Dept. of Computer Science, UCSB S
  2. 2. Roadmap S  Cloud computing S  Challenges S  Apache JClouds S  Demo S  Pros and cons S  Summary and conclusion
  3. 3. The Cloud Revolution S  Cloud computing is revolutionizing the way software is developed and delivered. S  Software-as-a-Service (SaaS) S  Platform-as-a-Service (PaaS) S  Infrastructure-as-a-Service (IaaS)
  4. 4. Many Benefits S  Cost effective S  Reduced maintenance overhead S  Easy and fast provisioning – Improved time-to-market S  Autoscaling and elasticity S  Fault tolerance
  5. 5. The Other Side of the Coin
  6. 6. Challenges S  How do you select the cloud provider that’s right for you? S  How do you port your application from one cloud provider to another? S  How to develop multi-cloud applications?
  7. 7. Enter, JClouds S  An open source library that facilitates developing applications for a wide range of cloud providers. S  Implement your application using JClouds, and run it on your favorite cloud without any code changes. S  Simple, intuitive APIs. S  Java and Clojure support.
  8. 8. History S  Started in March 2009 by Adrian Cole as an open source project. S  Initially based in London, developed mostly by European Java community. S  Contributed to Apache in April 2013. S  http://wiki.apache.org/incubator/jcloudsProposal S  Already popular in the industry – Used by the likes of Adobe, CloudBees, RedHat, Twitter and SalesForce. S  http://jclouds.incubator.apache.org/documentation/reference/ apps-that-use-jclouds/
  9. 9. Getting Started S  No binary download J S  The documentation provides the necessary configurations for popular project management tools, so JClouds can be included in your project as a dependency. S  Maven S  ANT S  Leiningen
  10. 10. JClouds APIs S  Compute Service API S  For managing compute nodes (VMs) in the cloud S  Blobstore API S  For storing data in the cloud
  11. 11. Compute Service API S  Key abstractions S  Hardware S  Operating system S  Template S  Supported providers S  AWS (EC2), Bluelock, CloudSigma, ElasticHosts, Go2Cloud, GoGrid, Green House Data, HP, Ninefold, OpenHosting, Rackspace, ServerLove, SkaliCloud, SoftLayer, Stratogen, TRMK, TryStack
  12. 12. Starting a VM from an Image
  13. 13. If You Don’t Have an Image?
  14. 14. More Control Over Templates
  15. 15. Access VM Metadata
  16. 16. SSH to Remote VM
  17. 17. Dealing with Package Managers
  18. 18. Managing Clusters
  19. 19. Blobstore API S  Key abstractions S  Container S  Folder S  Blob S  Supported providers S  AWS (S3), CloudOne, HP, Azure, Ninefold, Rackspace, Synaptic
  20. 20. Downloading a Blob
  21. 21. Write Blob
  22. 22. Upload File
  23. 23. Access Blob Metadata
  24. 24. Logging Support
  25. 25. Demonstration S  Scenario S  Start an Ubuntu VM in EC2 S  Upload a Python script and a Java application to the VM (Java application also based on JClouds) S  Install Python and JRE on the VM using apt-get S  Run the Java application on the VM to download a data file from S3 S  Run the Python script on the data file S  Upload the output to S3
  26. 26. Pros S  Powerful abstractions: Simple + High-level + Convention over configuration S  Location awareness baked into the API S  Easily manage clusters of nodes S  Excellent portability S  Unit testable S  Free and open source (ASL 2.0) S  “It just works” (YMMV)
  27. 27. Cons S  Still in the Apache Incubator S  Limited documentation S  Potential “Jar hell”
  28. 28. Summary S  Cloud computing brings a horde of benefits – But the diversity can be overwhelming. S  Several challenges with respect to evaluating cloud vendors and porting application across cloud platforms. S  Apache JClouds provides a simple and feature-rich approach for developing cloud applications that are easily portable across multiple vendors.
  29. 29. Thank You & Questions
  30. 30. References S  Project website: http://jclouds.incubator.apache.org S  Apache Incubator proposal: http://wiki.apache.org/incubator/jcloudsProposal S  Getting started: http://jclouds.incubator.apache.org/documentation/ gettingstarted/ S  Demo code: https://github.com/hiranya911/jclouds-demo