Upload
everett-toews
View
662
Download
3
Embed Size (px)
Citation preview
with jclouds
Solve the Cross-Cloud Conundrum
Everett Toews
Developer Advocate
@everett_toews
You need:
JDK 1.6+
Maven 3+
Rackspace and/or
HP cloud accounts
GlueconMay 22, 2013 at 10:30 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
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
Intro
rackspacecloudtrial.com
hpcloud.com/sign_up
10RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Agenda
11RACKSPACE® HOSTING | WWW.RACKSPACE.COM
The Workshop
•Introduction•jclouds Overview•Cloud Accounts•Installation•Compute Example•Next Steps•Wrap Up
12RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Introduction
13RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Rackspace
14RACKSPACE® HOSTING | WWW.RACKSPACE.COM
The Cloud
Infrastructure
with an API
15RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDK Deployment
YourSystem
SDK
CloudAP I
VMVM
VM
UserSystem
16RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDK Deployment
API
Cloud
YourSystem
SDK
UserSystem
VMVM
VMVM
17RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Introduction to jclouds
18RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds
• Cross-cloud toolkit
• Open Source (Apache v2)
• Community
• Portable APIs
• Ecosystem APIs
• Provider APIs
• Java
19RACKSPACE® 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
20RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Community
21RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Compute Layers (APIs)•ComputeService• OpenStack• Rackspace• HP, AWS, etc.
•NovaApi (*Api)• OpenStack• Rackspace• HP
Portable
Ecosystem
22RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Compute Venn (APIs)
Portable
Ecosystem
23RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Storage Layers (APIs)•BlobStore• OpenStack• Rackspace• HP, AWS, etc.
•SwiftApi• OpenStack• Rackspace• HP
•CloudFilesClient• Rackspace
Portable
Ecosystem
Provider
24RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Storage Venn (APIs)
Portable
Ecosystem
Provider
25RACKSPACE® HOSTING | WWW.RACKSPACE.COM
jclouds Community
After 3 beer I can able use any of cloud API.
@DevOps_Borat
26RACKSPACE® HOSTING | WWW.RACKSPACE.COM
What Can jclouds Do For You Today?
27RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Plumbing
28RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
(Re)Authentication
29RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Pagination
30RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
State Polling
31RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Rate Limiting
32RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Retry
33RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Smoothing
Rough Edges
34RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Open Source
35RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
In devops nobody is get fire for buy open source.
@DevOps_Borat
36RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Community
37RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Packaged
38RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
All-in-one
39RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Extensions
40RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
No lock-in
41RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
OpenStack
42RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Battle Tested Code
43RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Sample Code
44RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Documentation
45RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Support
46RACKSPACE® HOSTING | WWW.RACKSPACE.COM
SDKs
Survey is show junior devops are still believe in Tooth Fairy, Santa Claus and documentation. @DevOps_Borat
47RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Code
48RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Code
j.mp/jcldsglue2013
49RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Code
Zack Shoylev
50RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Cloud Accounts
51RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Rackspace
•BYOB?
•rackspacecloudtrial.com•mycloud.rackspace.com•Note: Username, Password
52RACKSPACE® HOSTING | WWW.RACKSPACE.COM
HP
•hpcloud.com/sign_up•console.hpcloud.com/compute•Activate AZ1 and AZ2•Top right > View API Keys•Note: Tenant Name, Username, Password
53RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Terminology
54RACKSPACE® 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
55RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Installation
56RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Maven
•mkdir jclouds-workshop•cd jclouds-workshop•Create pom.xml• gist.github.com/everett-toews/3861545
•mvn dependency:copy-dependencies "-DoutputDirectory=./lib"
57RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Ivy
•mkdir jclouds-workshop•cd jclouds-workshop•gist.github.com/everett-toews/5242573
58RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Compute Example
59RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Logging•Create logback.xml•gist.github.com/everett-toews/3862553•Full logback.xml example
60RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Imports and Class•Create JCloudsWorkshop.java•gist.github.com/everett-toews/3861596• javac -cp ".:lib/*" JCloudsWorkshop.java
•Windows: Use ‘;’ for path separator•Note: Guice, Guava
61RACKSPACE® HOSTING | WWW.RACKSPACE.COM
main() and skeleton•gist.github.com/everett-toews/3862453• javac -cp ".:lib/*" JCloudsWorkshop.java
62RACKSPACE® HOSTING | WWW.RACKSPACE.COM
init()•gist.github.com/everett-toews/3862575• javac -cp ".:lib/*" JCloudsWorkshop.java•Note: Authentication
63RACKSPACE® HOSTING | WWW.RACKSPACE.COM
createNodes()•gist.github.com/everett-toews/3862480• javac -cp ".:lib/*" JCloudsWorkshop.java
64RACKSPACE® HOSTING | WWW.RACKSPACE.COM
configureAndStartWebservers()•gist.github.com/everett-toews/3862485• javac -cp ".:lib/*" JCloudsWorkshop.java•Note: Patterns
65RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java
Number of cloud instance launch by ops team is direct proportional with LOC write by dev team.
@DevOps_Borat
66RACKSPACE® HOSTING | WWW.RACKSPACE.COM
awaitSsh()•gist.github.com/everett-toews/3862516• javac -cp ".:lib/*" JCloudsWorkshop.java
67RACKSPACE® HOSTING | WWW.RACKSPACE.COM
detectExtensions()•gist.github.com/everett-toews/3867123• javac -cp ".:lib/*" JCloudsWorkshop.java
68RACKSPACE® HOSTING | WWW.RACKSPACE.COM
printResults()•gist.github.com/everett-toews/3862499• javac -cp ".:lib/*" JCloudsWorkshop.java
69RACKSPACE® HOSTING | WWW.RACKSPACE.COM
deleteNodes() and close()•gist.github.com/everett-toews/3862504• javac -cp ".:lib/*" JCloudsWorkshop.java
70RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Run!• java -cp ".:lib/*" JCloudsWorkshop
71RACKSPACE® HOSTING | WWW.RACKSPACE.COM
JCloudsWorkshop.java
Hello World in cloud is involve 1 load balancer, 3 web server and 2 database server.
@DevOps_Borat
72RACKSPACE® 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
73RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Potpourri
•Command Line Interface•Jenkins Plugin•jclouds-chef
74RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Who Uses jclouds?
•CloudBees•Cloudify•EnterpriseDB•Pallet•Whirr•...•You?
75RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Next Steps
76RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Next Steps
•Full Example•Terminate your VMs!•Load Balancing•More examples•jclouds doc and Javadoc•Join [email protected]•jclouds and OpenStack•Contributing OpenStack Support to jclouds
Thank You
Everett Toews
Developer Advocate
@everett_toews
And don’t forget to terminate your VMs
developer.rackspace.com
j.mp/jcldsglue2013