apache jclouds

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

Upload: hiranya-jayathilaka

Post on 18-Dec-2014

391 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

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