solve the cross-cloud conundrum with jclouds
TRANSCRIPT
with jclouds
Solve the Cross-Cloud Conundrum
Everett Toews
Developer Advocate
@everett_toews
You need:
JDK 1.6+
Ant 1.8+ || Ivy 2+
Rackspace and/or
HP cloud accounts
Austin Java Users GroupMarch 26, 2013 at 7:00 pm
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 Operation Guide
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•Cloud Accounts•Installation•Compute Example•Next Steps•Wrap Up
11RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Introduction to Rackspaceand the cloud
12RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Rackspace
13RACKSPACE® HOSTING | WWW.RACKSPACE.COM
The Cloud
Infrastructure
with an API
14RACKSPACE® HOSTING | WWW.RACKSPACE.COM
The Cloud
YourSystem
SDK
CloudAP I
VMVM
VM
UserSystem
15RACKSPACE® HOSTING | WWW.RACKSPACE.COM
The Cloud
API
Cloud
YourSystem
SDK
UserSystem
VMVM
VMVM
16RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Introduction to jclouds
17RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds
• Cross-cloud toolkit
• Open Source (Apache v2)
• Community
• Portable APIs
• Ecosystem Specific APIs
• Provider Specific APIs
• Java
18RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Providers
•ComputeService• Rackspace Cloud Servers
• HP Cloud Compute• AWS EC2• GCE (soon)• ElasticHosts• GoGrid• All Providers
•BlobStore• Rackspace Cloud Files
• HP Cloud Storage• AWS S3• GCS (soon)• Azure• CloudOne• All Providers
19RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Community
20RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Layers (APIs)
•ComputeService• Rackspace• OpenStack• HP, AWS, GCE, etc.
•NovaApi (*Api)• Rackspace• OpenStack• HP
•BlobStore• Rackspace• OpenStack• HP, AWS, GCS, etc.
•SwiftApi• Rackspace• OpenStack• HP
•CloudFilesClient• Rackspace
21RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Community
After 3 beer I can able use any of cloud API.
@DevOps_Borat
22RACKSPACE® HOSTING | WWW.RACKSPACE.COM
What Can jclouds Do For You Today?
23RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Plumbing
24RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
(RE)Authentication
25RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Pagination
26RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
State Polling
27RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Rate Limiting
28RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Retry
29RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Smoothing
Rough Edges
30RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Open Source
31RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
In devops nobody is get fire for buy open source.
@DevOps_Borat
32RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Community
33RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Support
34RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Packaged
35RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
All-in-one
36RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
No lock-in
37RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
38RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
39RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Battle Tested Code
40RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Sample Code
41RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Documentation
42RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Survey is show junior devops are still believe in Tooth Fairy, Santa Claus and documentation. @DevOps_Borat
43RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Cloud Accounts
44RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Rackspace j.mp/jcldsajug
•BYOB?
•rackspace.com/cloud/public/•mycloud.rackspace.com•Note: Username, Password
45RACKSPACE® HOSTING | WWW.RACKSPACE.COM
HP j.mp/jcldsajug
•hpcloud.com/sign_up•console.hpcloud.com/compute•Activate AZ1 and AZ2•Top right > View API Keys•Note: Tenant Name, Username, Password
46RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Terminology
47RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Terminology j.mp/jcldsajug
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
48RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Installation
49RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Ant j.mp/jcldsajug
•mkdir jclouds-workshop•cd jclouds-workshop•Create build.xml• gist.github.com/everett-toews/3861545
•ant
50RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Ivy j.mp/jcldsajug
•mkdir jclouds-workshop•cd jclouds-workshop•mkdir lib•gist.github.com/everett-toews/5242573
51RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Compute Example
52RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java j.mp/jcldsajug•Logging
• Create logback.xml• gist.github.com/everett-toews/3862553• Full logback.xml example
• Imports and Class definition• Create JCloudsWorkshop.java• gist.github.com/everett-toews/3861596• javac -cp ".:lib/*" JCloudsWorkshop.java• Note: Guice, Guava
53RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java j.mp/jcldsajug•main() and skeleton
• gist.github.com/everett-toews/3862453• javac -cp ".:lib/*" JCloudsWorkshop.java
• init()• gist.github.com/everett-toews/3862575• javac -cp ".:lib/*" JCloudsWorkshop.java• Note: Authentication
54RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java j.mp/jcldsajug•createNodes()
• gist.github.com/everett-toews/3862480• javac -cp ".:lib/*" JCloudsWorkshop.java
•configureAndStartWebservers()• gist.github.com/everett-toews/3862485• javac -cp ".:lib/*" JCloudsWorkshop.java• Note: Patterns
55RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java j.mp/jcldsajug
Number of cloud instance launch by ops team is direct proportional with LOC write by dev team.
@DevOps_Borat
56RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java j.mp/jcldsajug•waitForSsh()
• gist.github.com/everett-toews/3862516• javac -cp ".:lib/*" JCloudsWorkshop.java
•detectExtensions()• gist.github.com/everett-toews/3867123• javac -cp ".:lib/*" JCloudsWorkshop.java
57RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java j.mp/jcldsajug•printResults()
• gist.github.com/everett-toews/3862499• javac -cp ".:lib/*" JCloudsWorkshop.java
•close()• gist.github.com/everett-toews/3862504• javac -cp ".:lib/*" JCloudsWorkshop.java
58RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java j.mp/jcldsajug•Run!
• java -cp ".:lib/*" JCloudsWorkshop
59RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java j.mp/jcldsajug
Hello World in cloud is involve 1 load balancer, 3 web server and 2 database server.
@DevOps_Borat
60RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Other Topics j.mp/jcldsajug
•ServerApi/ServerAsyncApi•Concurrency•CLI•Jenkins•jclouds-chef•Pallet•Whirr
61RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Next Steps
62RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Next Steps j.mp/jcldsajug
•Load Balancing•More examples (BlobStore too)•Modify the examples•jclouds doc and Javadoc•Other installation methods•Join jclouds or jclouds-dev•jclouds and OpenStack•Contributing OpenStack Support to jclouds
Thank You
Everett Toews
Developer Advocate
@everett_toews
And don’t forget to terminate your VMs