Support Training jclouds: The Rackspace Java SDK Everett Toews Developer Advocate @everett_toews You need: JDK 1.6+ Maven 3+ Rackspace account
Support Training
jclouds: The Rackspace Java SDK
Everett Toews
Developer Advocate
@everett_toews
You need:
JDK 1.6+
Maven 3+
Rackspace account
2RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Intro
Developer
3RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Committer on jclouds
4RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Intro
Advocate
5RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Intro
6RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Intro
Operations
7RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Co-author of The OpenStack Operations Guide
docs.openstack.org/ops
8RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Intro
In startup we are not allow dev team for talk to ops team except by API.
@DevOps_Borat
9RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Agenda
10RACKSPACE® HOSTING | WWW.RACKSPACE.COM
The Workshop
•Introduction•jclouds Overview•SDKs•Terminology•Cloud Accounts•Getting Started
11RACKSPACE® HOSTING | WWW.RACKSPACE.COM
The Workshop
•Examples•Authentication•Logging•Cloud Files•Cloud Servers•Cloud Block Storage•Cloud Load Balancers•Cloud DNS•Cross-cloud
12RACKSPACE® HOSTING | WWW.RACKSPACE.COM
The Workshop
•Wreck-It•Bug Reports•Troubleshooting•Help!•Potpourri•Wrap Up
13RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Introduction to jclouds
14RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds
• Cross-cloud toolkit
• Open Source (Apache v2)
• Community
• Portable APIs
• Ecosystem APIs
• Provider APIs
• Java
15RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds’ Supported Clouds
•Compute• Rackspace Cloud Servers
• HP Cloud Compute• AWS EC2• ElasticHosts• GoGrid• All Clouds
•Storage• Rackspace Cloud Files
• HP Cloud Storage• AWS S3• Azure• CloudOne• All Clouds
16RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Community
17RACKSPACE® HOSTING | WWW.RACKSPACE.COM
APIs and Providers
APIs
Providers
openstack-nova ec2 rackspace-clouddns
rackspace-cloudservers-us
rackspace-cloudservers-uk
aws-ec2rackspace- clouddns-us
rackspace- clouddns-uk
18RACKSPACE® HOSTING | WWW.RACKSPACE.COM
APIs
APIs
openstack-nova
NovaApi:ServerApiFlavorApiImageApi
=Extensions=KeyPairApi
SecurityGroupApiFloatingIpApi
...
ec2
EC2Api:TagApi
SubnetApiWindowsApi
rackspace-clouddns
CloudDNSApi:LimitApi
DomainApiRecordApi
ReverseDNSApi
19RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Providers
Providers
rackspace-cloudservers-us
rackspace-cloudservers-uk
rackspace-cloudservers-us
rackspace-cloudservers-uk
rackspace-clouddns-us
rackspace-clouddns-uk
•configuration•provider specific features
20RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Layers (APIs)•ComputeService• OpenStack• Rackspace• HP, AWS, etc.
•NovaApi (*Api)• OpenStack• Rackspace• HP
Portable
Ecosystem
21RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Compute Venn (APIs)
Portable
Ecosystem
22RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Layers (APIs)•BlobStore• OpenStack• Rackspace• HP, AWS, etc.
•SwiftApi• OpenStack• Rackspace• HP
•CloudFilesClient• Rackspace
Portable
Ecosystem
Provider
23RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Storage Venn (APIs)
Portable
Ecosystem
Provider
24RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Community
After 3 beer I can able use any of cloud API.
@DevOps_Borat
25RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Where Does jclouds Live?
26RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDK Deployment
YourSystem
SDK
CloudAP I
VMVM
VM
UserSystem
27RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDK Deployment
API
Cloud
YourSystem
SDK
UserSystem
VMVM
VMVM
28RACKSPACE® HOSTING | WWW.RACKSPACE.COM
What Can jclouds Do For You Today?
29RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Plumbing
30RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
(Re)Authentication
31RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Pagination
32RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
State Polling
33RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Rate Limiting
34RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Retry
35RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Smoothing
Rough Edges
36RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Open Source
37RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
In devops nobody is get fire for buy open source.
@DevOps_Borat
38RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Community
39RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Packaged
40RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
All-in-one
41RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Extensions
42RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
No lock-in
43RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
44RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
45RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Battle Tested Code
46RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Sample Code
47RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Documentation
48RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
49RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Survey is show junior devops are still believe in Tooth Fairy, Santa Claus and documentation. @DevOps_Borat
50RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Code
51RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Code
j.mp/jcldstrain
52RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Cloud Accounts
53RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Rackspace
•Username•API Key•(Password is useable too)
54RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Terminology
55RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Terminology
jclouds Rackspace/OpenStack
Compute Cloud Servers/Nova
Node Server
Location Region
Hardware Flavor
NodeMetadata Server details
User Metadata Metadata
BlobStore Cloud Files/Swift
Blob File/Object
56RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Getting Started
57RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Getting Started
•developer.rackspace.com•Java•Getting Started with jclouds•Get jclouds•Review JARs
58RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Examples
59RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Examples
Cloud Files
60RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Examples
Cloud Servers
61RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Examples
Logging
62RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Examples
Authentication
63RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Examples
?
64RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Examples
Cross-Cloud
j.mp/jcldsglue2013
65RACKSPACE® HOSTING | WWW.RACKSPACE.COM
66RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Wreck-It
•Misspell username•Upload Object to Container that doesn’t exist
•Create Server in a location that doesn’t exist
•Use a bad Flavor/Image•Remove Rackspace JARs from the classpath
•etc.
67RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Bug Reports, Troubleshooting,
and Help
68RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Bug Reports
•Get the version•Get the code•Get the wire and header logs•gist or pastie
69RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Troubleshooting
•Download the version•Run the code•Compare the wire and header logs
70RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Troubleshooting
•Isolate the problem•jclouds/User Problem (HTTP 4xx)•Rackspace Problem (HTTP 5xx)•Use curl to verify
71RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Troubleshooting
•Debug the source code• mvn dependency:copy-dependencies "-DoutputDirectory=./lib" "-Dclassifier=sources”
72RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Responding
•Ideally:• Contribute examples/doc• Send the link to the customer• jclouds.org/documentation/devguides/contributing-to-jclouds/
• github.rackspace.com/van5941/CLAs
73RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Responding
•Encourage customers to join the jclouds community:• [email protected]• www.mail-archive.com/[email protected]/
74RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Help!
•developer.rackspace.com/support•javadocs.jclouds.cloudbees.net•#jclouds on IRC @ freenode.net•[email protected]•[email protected]
75RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Potpourri
76RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Potpourri
•Moved to Apache Software Foundation•groupId change
• 1.6.0: <groupId>org.jclouds.X</groupId>• 1.6.1: <groupId>org.apache.jclouds.X</groupId>
•Package change• 1.6.0: import org.jclouds• 1.7 (2.0?): import org.apache.jclouds
77RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Potpourri
•Google’s Guice & Guava•Removal of the AsyncApis in 1.7 (2.0?)•Dropping support for Java 1.6?•Cloud Files isn’t multi-region...yet•Cloud Databases in progress•More endpoints
78RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Potpourri
•Command Line Interface•Jenkins Plugin•jclouds-chef•Who Uses jclouds?• CloudBees• Cloudify• EnterpriseDB• Pallet• ...
79RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Potpourri
•More examples•Other installation methods•Stay up-to-date with jclouds• blog.phymata.com• @everett_toews
•What else can we do to stay in sync?
Thank You
Everett Toews
Developer Advocate
@everett_toews
And don’t forget to terminate your VMs
developer.rackspace.com
j.mp/jcldstrain