Mais conteúdo relacionado Semelhante a Solve the Cross-Cloud Conundrum with jclouds (20) Mais de Everett Toews (20) Solve the Cross-Cloud Conundrum with jclouds1. Solve the Cross-
Cloud Conundrum
with jclouds
Austin Java Users Group
March 26, 2013 at 7:00 pm
Everett Toews You need:
Developer Advocate JDK 1.6+
@everett_toews Ant 1.8+ || Ivy 2+
Rackspace and/or
HP cloud accounts
2. Intro
Developer
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
2
4. Intro
Advocate
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
4
5. Intro
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
5
6. Intro
Operations
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
6
7. Co-author of The OpenStack Operation Guide
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
7
8. Intro
In startup we
are not allow
dev team for
talk to ops team
except by API.
@DevOps_Borat
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
8
9. Agenda
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
9
10. The Workshop
•Introduction
•jclouds Overview
•Cloud Accounts
•Installation
•Compute Example
•Next Steps
•Wrap Up
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
10
12. Rackspace
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
12
13. The Cloud
Infrastructure
with an API
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
13
14. The Cloud
VM
VM
VM
Your S A
System D P Cloud
K I
User
System
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
14
15. The Cloud
Cloud VM
VM
VM
A VM
P
I S Your
D System
K
User
System
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
15
17. jclouds
• Cross-cloud toolkit
• Open Source (Apache v2)
• Community
• Portable APIs
• Ecosystem Specific APIs
• Provider Specific APIs
• Java
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
17
18. jclouds Providers
•ComputeService •BlobStore
• Rackspace Cloud • Rackspace Cloud
Servers Files
• HP Cloud Compute • HP Cloud Storage
• AWS EC2 • AWS S3
• GCE (soon) • GCS (soon)
• ElasticHosts • Azure
• GoGrid • CloudOne
• All Providers • All Providers
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
18
20. jclouds Layers (APIs)
•ComputeService •BlobStore
• Rackspace • Rackspace
• OpenStack • OpenStack
• HP, AWS, GCE, etc. • HP, AWS, GCS, etc.
•NovaApi (*Api) •SwiftApi
• Rackspace • Rackspace
• OpenStack • OpenStack
• HP • HP
•CloudFilesClient
• Rackspace
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
20
23. SDKs
Plumbing
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
23
25. SDKs
Pagination
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
25
26. SDKs
State Polling
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
26
27. SDKs
Rate Limiting
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
27
28. SDKs
Retry
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
28
29. SDKs
Smoothing
Rough Edges
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
29
30. SDKs
Open Source
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
30
32. SDKs
Community
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
32
33. SDKs
Support
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
33
34. SDKs
Packaged
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
34
35. SDKs
All-in-one
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
35
36. SDKs
No lock-in
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
36
37. SDKs
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
37
38. SDKs
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
38
40. SDKs
Sample Code
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
40
41. SDKs
Documentation
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
41
42. SDKs
Survey is show
junior devops
are still believe
in Tooth Fairy,
Santa Claus and
documentation. @DevOps_Borat
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
42
44. Rackspace j.mp/jcldsajug
•BYOB?
•rackspace.com/cloud/public/
•mycloud.rackspace.com
•Note: Username, Password
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
44
45. 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
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
45
46. Terminology
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
46
47. 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
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
47
49. Ant j.mp/jcldsajug
•mkdir jclouds-workshop
•cd jclouds-workshop
•Create build.xml
• gist.github.com/everett-toews/3861545
•ant
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
49
50. Ivy j.mp/jcldsajug
•mkdir jclouds-workshop
•cd jclouds-workshop
•mkdir lib
•gist.github.com/everett-toews/5242573
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
50
52. 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
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
52
53. 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
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
53
54. 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
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
54
55. JCloudsWorkshop.java j.mp/jcldsajug
Number of cloud
instance launch by
ops team is direct
proportional with
LOC write by dev
team.
@DevOps_Borat
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
55
56. 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
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
56
57. 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
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
57
58. JCloudsWorkshop.java j.mp/jcldsajug
•Run!
• java -cp ".:lib/*" JCloudsWorkshop
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
58
59. JCloudsWorkshop.java j.mp/jcldsajug
Hello World in
cloud is involve
1 load balancer,
3 web server and
2 database server.
@DevOps_Borat
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
59
60. Other Topics j.mp/jcldsajug
•ServerApi/ServerAsyncApi
•Concurrency
•CLI
•Jenkins
•jclouds-chef
•Pallet
•Whirr
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
60
61. Next Steps
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
61
62. 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
RACKSPACE® HOSTING | WWW.RACKSPACE.COM
62
63. Thank You
And don’t forget to terminate your VMs
developer.rackspace.com
sdk-support@rackspace.com
Everett Toews
Developer Advocate
@everett_toews
Notas do Editor Why did Rackspace utilize cross-cloud toolkits?Lock-on, not lock-in Recommend split screen Recommend split screen What haven't I specified explicitly? What haven't I specified explicitly?