apache jclouds
DESCRIPTION
An introduction to Apache JClouds, featuring the compute service API and blobstore.TRANSCRIPT
S
Apache JClouds Cloud interfaces, simplified
Hiranya Jayathilaka
Dept. of Computer Science, UCSB
Roadmap
S Cloud computing
S Challenges
S Apache JClouds
S Demo
S Pros and cons
S Summary and conclusion
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)
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
The Other Side of the Coin
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?
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.
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/
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
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
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
Starting a VM from an Image
If You Don’t Have an Image?
More Control Over Templates
Access VM Metadata
SSH to Remote VM
Dealing with Package Managers
Managing Clusters
Blobstore API
S Key abstractions S Container
S Folder
S Blob
S Supported providers S AWS (S3), CloudOne, HP, Azure, Ninefold, Rackspace,
Synaptic
Downloading a Blob
Write Blob
Upload File
Access Blob Metadata
Logging Support
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
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)
Cons
S Still in the Apache Incubator
S Limited documentation
S Potential “Jar hell”
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.
Thank You & Questions
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