Sie sind auf Seite 1von 30

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 thats 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 Dont 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

Das könnte Ihnen auch gefallen