27
Developer Experience with jclouds Control the Clouds Everett Toews Developer Advocate @everett_toews You need: JDK 1.6+ Ant 1.8+ Rackspace and/or HP cloud accounts

jclouds workshop

Embed Size (px)

DESCRIPTION

A hands-on workshop for getting started with jclouds.

Citation preview

Page 1: jclouds workshop

Developer Experience with jclouds

Control the Clouds

Everett Toews

Developer Advocate

@everett_toews

You need:

JDK 1.6+

Ant 1.8+

Rackspace and/or

HP cloud accounts

Page 2: jclouds workshop

2RACKSPACE® HOSTING | WWW.RACKSPACE.COM

The Workshop bit.ly/jclwork

•Introduction to jclouds•Cloud Accounts•Terminology•Installation•Compute Example•Next Steps•Wrap Up

Page 3: jclouds workshop

3RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Introduction to jclouds

Page 4: jclouds workshop

4RACKSPACE® HOSTING | WWW.RACKSPACE.COM

jclouds bit.ly/jclwork

• Cross-cloud toolkit

• Open Source (Apache v2)

• Community

• Portable APIs

• Provider APIs

• Java

Page 5: jclouds workshop

5RACKSPACE® HOSTING | WWW.RACKSPACE.COM

jclouds Providers bit.ly/jclwork

•ComputeService• Rackspace Cloud Servers

• HP Cloud Compute• AWS EC2• ElasticHosts• GoGrid• CloudSigma• All Providers

•BlobStore• Rackspace Cloud Files

• HP Cloud Storage• AWS S3• Azure• CloudOne• Ninefold• All Providers

Page 6: jclouds workshop

6RACKSPACE® HOSTING | WWW.RACKSPACE.COM

jclouds Community bit.ly/jclwork

Page 7: jclouds workshop

7RACKSPACE® HOSTING | WWW.RACKSPACE.COM

jclouds Community bit.ly/jclwork

Page 8: jclouds workshop

8RACKSPACE® HOSTING | WWW.RACKSPACE.COM

jclouds Layers (APIs) bit.ly/jclwork

•ComputeService• Rackspace• OpenStack• HP, AWS, etc.

•NovaApi (*Api)• Rackspace• OpenStack• HP

•BlobStore• Rackspace• OpenStack• HP, AWS, etc.

•SwiftApi• Rackspace• OpenStack• HP

•CloudFilesClient• Rackspace

Page 9: jclouds workshop

9RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Cloud Accounts

Page 10: jclouds workshop

10RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Rackspace bit.ly/jclwork

•BYOB?

•rackspace.com/cloud/public/•mycloud.rackspace.com•Note: Username, Password

Page 11: jclouds workshop

11RACKSPACE® HOSTING | WWW.RACKSPACE.COM

HP bit.ly/jclwork

•hpcloud.com/sign_up•console.hpcloud.com/compute•Activate AZ1 and AZ2•Top right > View API Keys•Note: Tenant Name, Username, Password

Page 12: jclouds workshop

12RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Terminology

Page 13: jclouds workshop

13RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Terminology bit.ly/jclwork

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

Page 14: jclouds workshop

14RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Installation

Page 15: jclouds workshop

15RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Ant bit.ly/jclwork

•mkdir jclouds-workshop•cd jclouds-workshop•Create build.xml• gist.github.com/3861545

•ant

•Plan B: bit.ly/jcl152

Page 16: jclouds workshop

16RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Compute Example

Page 17: jclouds workshop

17RACKSPACE® HOSTING | WWW.RACKSPACE.COM

JCloudsWorkshop.java bit.ly/jclwork•Logging

• Create logback.xml• gist.github.com/3862553• Full logback.xml example

• Imports and Class definition• Create JCloudsWorkshop.java• gist.github.com/3861596• javac -cp ".:lib/*" JCloudsWorkshop.java• Note: Guice, Guava

Page 18: jclouds workshop

18RACKSPACE® HOSTING | WWW.RACKSPACE.COM

JCloudsWorkshop.java bit.ly/jclwork•main() and skeleton

• gist.github.com/3862453• javac -cp ".:lib/*" JCloudsWorkshop.java

• init()• gist.github.com/3862575• javac -cp ".:lib/*" JCloudsWorkshop.java• Note: Authentication

Page 19: jclouds workshop

19RACKSPACE® HOSTING | WWW.RACKSPACE.COM

JCloudsWorkshop.java bit.ly/jclwork•createNodes()

• gist.github.com/3862480• javac -cp ".:lib/*" JCloudsWorkshop.java

•configureAndStartWebservers()• gist.github.com/3862485• javac -cp ".:lib/*" JCloudsWorkshop.java• Note: Patterns

Page 20: jclouds workshop

20RACKSPACE® HOSTING | WWW.RACKSPACE.COM

JCloudsWorkshop.java bit.ly/jclwork•waitForSsh()

• gist.github.com/3862516• javac -cp ".:lib/*" JCloudsWorkshop.java

•printResults()• gist.github.com/3862499• javac -cp ".:lib/*" JCloudsWorkshop.java

Page 21: jclouds workshop

21RACKSPACE® HOSTING | WWW.RACKSPACE.COM

JCloudsWorkshop.java bit.ly/jclwork•detectExtensions()

• gist.github.com/3867123• javac -cp ".:lib/*" JCloudsWorkshop.java

•close()• gist.github.com/3862504• javac -cp ".:lib/*" JCloudsWorkshop.java

Page 22: jclouds workshop

22RACKSPACE® HOSTING | WWW.RACKSPACE.COM

JCloudsWorkshop.java bit.ly/jclwork•Run!

• java -cp ".:lib/*" JCloudsWorkshop

Page 23: jclouds workshop

23RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Other Topics bit.ly/jclwork

•ServerApi/ServerAsyncApi•Concurrency•CLI•Jenkins

Page 24: jclouds workshop

24RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Next Steps

Page 26: jclouds workshop

26

RACKSPACE® HOSTING | 5000 WALZEM ROAD | SAN ANTONIO, TX 78218

US SALES: 1-800-961-2888 | US SUPPORT: 1-800-961-4454 | WWW.RACKSPACE.COM

RACKSPACE® HOSTING | © RACKSPACE US, INC. | RACKSPACE® AND FANATICAL SUPPORT® ARE SERVICE MARKS OF RACKSPACE US, INC. REGISTERED IN THE UNITED STATES AND OTHER COUNTRIES. | WWW.RACKSPACE.COM

And don’t forget to terminate your VMs