S Cloud computing
S Apache JClouds
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)
S Cost effective
S Reduced maintenance overhead
S Easy and fast provisioning – Improved time-to-market
S Autoscaling and elasticity
S Fault tolerance
S How do you select the cloud provider that’s right for you?
S How do you port your application from one cloud provider
S How to develop multi-cloud applications?
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.
S Started in March 2009 by Adrian Cole as an open source project.
S Initially based in London, developed mostly by European Java
S Contributed to Apache in April 2013.
S Already popular in the industry – Used by the likes of Adobe,
CloudBees, RedHat, Twitter and SalesForce.
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 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 Operating system
S Supported providers
S AWS (EC2), Bluelock, CloudSigma, ElasticHosts, Go2Cloud,
GoGrid, Green House Data, HP, Ninefold, OpenHosting,
Rackspace, ServerLove, SkaliCloud, SoftLayer, Stratogen,
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
S Run the Python script on the data file
S Upload the output to S3
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)
S Still in the Apache Incubator
S Limited documentation
S Potential “Jar hell”
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.