30
Apache JClouds Cloud interfaces, simplified Hiranya Jayathilaka Dept. of Computer Science, UCSB

Apache JClouds

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Apache JClouds

S

Apache JClouds Cloud interfaces, simplified

Hiranya Jayathilaka

Dept. of Computer Science, UCSB

Page 2: Apache JClouds

Roadmap

S  Cloud computing

S  Challenges

S  Apache JClouds

S  Demo

S  Pros and cons

S  Summary and conclusion

Page 3: Apache JClouds

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

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

The Other Side of the Coin

Page 6: Apache JClouds

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

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

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

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

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

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

Starting a VM from an Image

Page 13: Apache JClouds

If You Don’t Have an Image?

Page 14: Apache JClouds

More Control Over Templates

Page 15: Apache JClouds

Access VM Metadata

Page 16: Apache JClouds

SSH to Remote VM

Page 17: Apache JClouds

Dealing with Package Managers

Page 18: Apache JClouds

Managing Clusters

Page 19: Apache JClouds

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

Downloading a Blob

Page 21: Apache JClouds

Write Blob

Page 22: Apache JClouds

Upload File

Page 23: Apache JClouds

Access Blob Metadata

Page 24: Apache JClouds

Logging Support

Page 25: Apache JClouds

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

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

Cons

S  Still in the Apache Incubator

S  Limited documentation

S  Potential “Jar hell”

Page 28: Apache JClouds

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

Thank You & Questions

Page 30: Apache JClouds

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