jclouds is a Java multi-cloud SDK that connects tools portably to over 40 cloud providers through consistent APIs. It helps projects become cloud projects by simplifying modeling of cloud services through standards-focused APIs and strategies for addressing service differences. Code examples show initializing contexts for the CloudFiles blob store and OpenStack Nova compute service to create containers, upload blobs, and launch virtual machines across different cloud providers using a common API approach.
3. What is jclouds?
• Java multi-cloud SDK
• b 3/2009; currently apache incubator
• connects tools portably, yet also
availing backend
• Over 40 cloud providers supported
4. What does it do?
• Helps projects become cloud projects,
and developers become cloud
developers.
• through consistency in
• Tools vs Services
• Services vs Model
• API approach
5. Tools vs Services
• jclouds helps existing tools connect to
cloud services
• a consistent integration pattern and
configuration
• adjustable library dependencies
• sample patterns, integrations, and
abstractions
6. Services vs Model
• jclouds simplifies modeling of cloud
services
• Standards focus with pragmatic
extensions. (JSR-330, 311)
• Clean means of addressing service
quirks
• pluggable strategies for error/retry
handling
7. API Approach
• Backend before abstraction
• proprietary features, multiple
abstractions
• Functional java (guava)
• Universal Testing Approach
• unit, “expect”, and live tests
16. Lessons Learned
• Cloud providers are generally quite helpful
• Not everyone rolls their own, but many do
• Extensions are an api-visible way to
differentiate on products like OpenStack
• Nothing’s really compatible for long
• Plan to refactor testing approach every year
focused on semantic portability across clouds I want an image running ubuntu and don ’ t want to know the id absolute portability where possible, but expose vendor apis where needed
notice you don ’ t even have to choose an operating system
ex. you can include add metadata to locations to assign ISO-3166 for geopolitical regions
global namespace, act of tenancy and uniquely identifies your namespace similar to dns azure scopes container names to accounts nirvanix scopes based on application and then subaccount