apache jclouds
DESCRIPTION
An introduction to Apache JClouds, featuring the compute service API and blobstore.TRANSCRIPT
![Page 1: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/1.jpg)
S
Apache JClouds Cloud interfaces, simplified
Hiranya Jayathilaka
Dept. of Computer Science, UCSB
![Page 2: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/2.jpg)
Roadmap
S Cloud computing
S Challenges
S Apache JClouds
S Demo
S Pros and cons
S Summary and conclusion
![Page 3: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/3.jpg)
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)
![Page 4: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/4.jpg)
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
![Page 5: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/5.jpg)
The Other Side of the Coin
![Page 6: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/6.jpg)
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?
![Page 7: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/7.jpg)
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.
![Page 8: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/8.jpg)
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/
![Page 9: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/9.jpg)
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
![Page 10: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/10.jpg)
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
![Page 11: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/11.jpg)
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
![Page 12: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/12.jpg)
Starting a VM from an Image
![Page 13: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/13.jpg)
If You Don’t Have an Image?
![Page 14: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/14.jpg)
More Control Over Templates
![Page 15: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/15.jpg)
Access VM Metadata
![Page 16: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/16.jpg)
SSH to Remote VM
![Page 17: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/17.jpg)
Dealing with Package Managers
![Page 18: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/18.jpg)
Managing Clusters
![Page 19: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/19.jpg)
Blobstore API
S Key abstractions S Container
S Folder
S Blob
S Supported providers S AWS (S3), CloudOne, HP, Azure, Ninefold, Rackspace,
Synaptic
![Page 20: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/20.jpg)
Downloading a Blob
![Page 21: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/21.jpg)
Write Blob
![Page 22: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/22.jpg)
Upload File
![Page 23: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/23.jpg)
Access Blob Metadata
![Page 24: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/24.jpg)
Logging Support
![Page 25: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/25.jpg)
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
![Page 26: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/26.jpg)
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)
![Page 27: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/27.jpg)
Cons
S Still in the Apache Incubator
S Limited documentation
S Potential “Jar hell”
![Page 28: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/28.jpg)
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.
![Page 29: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/29.jpg)
Thank You & Questions
![Page 30: Apache JClouds](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5494aa43b47959474d8b4b73/html5/thumbnails/30.jpg)
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