3. 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)
4. 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
6. 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?
7. 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.
8. 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/
9. 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
10. 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
11. 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
25. 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
26. 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)
27. Cons
S Still in the Apache Incubator
S Limited documentation
S Potential “Jar hell”
28. 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.