introduction to apache jclouds at nyjavasig

123
Introduction to Apache jclouds Everett Toews Developer Advocate @everett_toews NYJavaSIG August 20, 2014 @ 6:00 pm

Upload: everett-toews

Post on 15-Jan-2015

195 views

Category:

Software


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Introduction to Apache jclouds at NYJavaSIG

Introduction toApache jclouds

Everett Toews

Developer Advocate

@everett_toews

NYJavaSIGAugust 20, 2014 @ 6:00 pm

Page 2: Introduction to Apache jclouds at NYJavaSIG

Intro

Developer

Page 3: Introduction to Apache jclouds at NYJavaSIG

PMC and Committer on Apache jclouds

Page 4: Introduction to Apache jclouds at NYJavaSIG

Intro

Advocate

Page 5: Introduction to Apache jclouds at NYJavaSIG
Page 6: Introduction to Apache jclouds at NYJavaSIG

Intro

Operations

Page 7: Introduction to Apache jclouds at NYJavaSIG

Co-author of The OpenStack Ops Guide

docs.openstack.org/ops

Page 8: Introduction to Apache jclouds at NYJavaSIG

CloudFlavour

Page 9: Introduction to Apache jclouds at NYJavaSIG
Page 10: Introduction to Apache jclouds at NYJavaSIG

Cloud

IaaS

Page 11: Introduction to Apache jclouds at NYJavaSIG

Cloud

Private

Page 12: Introduction to Apache jclouds at NYJavaSIG

Cloud

Public

Page 13: Introduction to Apache jclouds at NYJavaSIG

Green == Your Problem

Page 14: Introduction to Apache jclouds at NYJavaSIG

Cloud

Infrastructure

with an API

Page 15: Introduction to Apache jclouds at NYJavaSIG

OpenStackand

Rackspace

Page 16: Introduction to Apache jclouds at NYJavaSIG

“To produce the ubiquitous Open Source Cloud Computing platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable.”

Page 17: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 18: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Identity

(Keystone)

Page 19: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 20: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Object Storage

(Swift)

Page 21: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 22: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Compute

(Nova)

Page 23: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 24: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Block Storage

(Cinder)

Page 25: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 26: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Networks

(Neutron)

Page 27: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 28: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Databases

(Trove)

Page 29: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 30: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Images

(Glance)

Page 31: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 32: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Orchestration

(Heat)

Page 33: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 34: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Dashboard

(Horizon)

Page 35: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 36: Introduction to Apache jclouds at NYJavaSIG

“We work with you to create the infrastructure that performs best for your business, built on open-source technologies and fueled by our unparalleled expertise—so you can move at the speed your business and your customers demand.”

Page 37: Introduction to Apache jclouds at NYJavaSIG

OpenStack

Page 38: Introduction to Apache jclouds at NYJavaSIG

Rackspace

Page 39: Introduction to Apache jclouds at NYJavaSIG

Rackspace

And

Page 40: Introduction to Apache jclouds at NYJavaSIG

Rackspace

• Load Balancers• Auto Scale• Monitoring• DNS• Big Data• Backup

Page 41: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Page 42: Introduction to Apache jclouds at NYJavaSIG
Page 43: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Application

Portability

Page 44: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Why?

Page 45: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Disaster Recovery

Page 46: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Privacy

Page 47: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Cost

Page 48: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Performance

Page 49: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Support

Page 50: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Hybrid

Page 51: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Eggs In

One Basket

Page 52: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

One Size

Fits All

Page 53: Introduction to Apache jclouds at NYJavaSIG

Multi-Cloud

Avoid Lock-in

Page 54: Introduction to Apache jclouds at NYJavaSIG

Introduction to Apache jclouds

Page 55: Introduction to Apache jclouds at NYJavaSIG

jclouds

Page 56: Introduction to Apache jclouds at NYJavaSIG

jclouds

Apache jclouds is an open source multi-cloud toolkit for the Java platform that gives you the freedom to create applications that are portable across clouds while giving you full control to use cloud-specific features.

Page 57: Introduction to Apache jclouds at NYJavaSIG

jclouds

Open Source

Page 58: Introduction to Apache jclouds at NYJavaSIG

jclouds

Multi-Cloud

Page 59: Introduction to Apache jclouds at NYJavaSIG

jclouds

Toolkit

Page 60: Introduction to Apache jclouds at NYJavaSIG

jclouds

Java platform

Page 61: Introduction to Apache jclouds at NYJavaSIG

jclouds

Portable

Page 62: Introduction to Apache jclouds at NYJavaSIG

jclouds

Full Control

Page 63: Introduction to Apache jclouds at NYJavaSIG

jclouds

Cloud-Specific

Page 64: Introduction to Apache jclouds at NYJavaSIG

jclouds

Freedom

Page 65: Introduction to Apache jclouds at NYJavaSIG

jclouds

Use Case

Page 66: Introduction to Apache jclouds at NYJavaSIG

User Application

Page 67: Introduction to Apache jclouds at NYJavaSIG

App

Page 68: Introduction to Apache jclouds at NYJavaSIG
Page 69: Introduction to Apache jclouds at NYJavaSIG
Page 70: Introduction to Apache jclouds at NYJavaSIG

Conceptsand

Code

Page 71: Introduction to Apache jclouds at NYJavaSIG

Concept

ResourcesWeb Service CallsDefaults

API

Page 72: Introduction to Apache jclouds at NYJavaSIG

Code

Defaults

Web Service Call (cloud-specific)Resource

Top Level API

2 .credentials("myUsername", "myPassword")

3 .endpoint("http://myOpenStack.com:5000/v2.0/")

1 NovaApi novaApi = ContextBuilder.newBuilder("openstack-nova")

4 .buildApi(NovaApi.class);

6 ServerCreated server = serverApi.create("serverName", "imageId", "flavorId");

5 ServerApi serverApi = novaApi.getServerApi("region");

Resource API

Context

Page 73: Introduction to Apache jclouds at NYJavaSIG

Concept

EndpointOverridesConfiguration

Provider

API

Page 74: Introduction to Apache jclouds at NYJavaSIG

Code

2 .credentials("myUsername", "myPassword")

1 NovaApi novaApi = ContextBuilder.newBuilder("rackspace-cloudservers-us”)

3 .buildApi(NovaApi.class);

4 ServerApi serverApi = novaApi.getServerApi("region");

5 ServerCreated server = serverApi.create("serverName", "imageId", "flavorId");

Provider:• Endpoint• Overrides• Configuration

Page 75: Introduction to Apache jclouds at NYJavaSIG

Concept

Portable Abstraction (View)

API

Provider

OR

Page 76: Introduction to Apache jclouds at NYJavaSIG

Code

2 .credentials("myUsername", "myPassword")

1 ComputeServiceContext context = ContextBuilder.newBuilder("rack-cs-us")

3 .buildView(ComputeServiceContext.class);

4 ComputeService computeService = context.getComputeService();

Portable Abstraction (View)

Page 77: Introduction to Apache jclouds at NYJavaSIG

Code

1 Template template = computeService.templateBuilder()

2 .locationId("locationId")

3 .osFamily(OsFamily.UBUNTU)

4 .minRam(2048)

5 .options(inboundPorts(22, 80))

6 .build();

7 computeService.createNodesInGroup("groupName", 3, template);

Web Service Call (portable)

Page 78: Introduction to Apache jclouds at NYJavaSIG

Community

Page 79: Introduction to Apache jclouds at NYJavaSIG

Community

Clouds

Page 80: Introduction to Apache jclouds at NYJavaSIG
Page 81: Introduction to Apache jclouds at NYJavaSIG

Community

Users

Page 82: Introduction to Apache jclouds at NYJavaSIG
Page 83: Introduction to Apache jclouds at NYJavaSIG

Users

YOU?

Page 84: Introduction to Apache jclouds at NYJavaSIG

jclouds’ Top Contributors•Abiquo•Cloudera•CloudSoft•HP•Maginatics•Rackspace•XebiaLabs

Page 85: Introduction to Apache jclouds at NYJavaSIG

Community

github.com/jclouds/jclouds•8,500+ commits•100+ contributors•80+ releases

Page 86: Introduction to Apache jclouds at NYJavaSIG

Community

repository.apache.org•12,000+ downloads (July 2014)

Page 88: Introduction to Apache jclouds at NYJavaSIG

User Application

Page 89: Introduction to Apache jclouds at NYJavaSIG

App

Page 90: Introduction to Apache jclouds at NYJavaSIG

App

Jenkins

jclouds plugin

Master

Page 91: Introduction to Apache jclouds at NYJavaSIG

Where Doesjclouds Live?

Page 92: Introduction to Apache jclouds at NYJavaSIG
Page 93: Introduction to Apache jclouds at NYJavaSIG

Deployment

YourSystem

The CloudAP I

User

Page 94: Introduction to Apache jclouds at NYJavaSIG

Deployment

YourSystem

The CloudAP I

User

Page 95: Introduction to Apache jclouds at NYJavaSIG

Deployment

YourSystem

The CloudAP I

User

Page 96: Introduction to Apache jclouds at NYJavaSIG

Deployment

API

The Cloud

YourSystem

User

Page 97: Introduction to Apache jclouds at NYJavaSIG

What Can jclouds Do For You?

Page 98: Introduction to Apache jclouds at NYJavaSIG

jclouds

Plumbing

Page 99: Introduction to Apache jclouds at NYJavaSIG

jclouds

(Re)Authentication

Page 100: Introduction to Apache jclouds at NYJavaSIG

jclouds

Pagination

Page 101: Introduction to Apache jclouds at NYJavaSIG

jclouds

State Polling

Page 102: Introduction to Apache jclouds at NYJavaSIG

jclouds

Rate Limiting

Page 103: Introduction to Apache jclouds at NYJavaSIG

jclouds

Retry

Page 104: Introduction to Apache jclouds at NYJavaSIG

jclouds

Smoothing

Rough Edges

Page 105: Introduction to Apache jclouds at NYJavaSIG

jclouds

Packaged

Page 106: Introduction to Apache jclouds at NYJavaSIG

jclouds

All-in-one

Page 107: Introduction to Apache jclouds at NYJavaSIG

jclouds

Production Code

Page 108: Introduction to Apache jclouds at NYJavaSIG

jclouds

Sample Code

Page 109: Introduction to Apache jclouds at NYJavaSIG

jclouds

Documentation

Page 110: Introduction to Apache jclouds at NYJavaSIG

User Application

Page 111: Introduction to Apache jclouds at NYJavaSIG

App

Page 112: Introduction to Apache jclouds at NYJavaSIG

App

Page 113: Introduction to Apache jclouds at NYJavaSIG

Demo

Page 114: Introduction to Apache jclouds at NYJavaSIG
Page 115: Introduction to Apache jclouds at NYJavaSIG

Demo

jclouds.apache.org

Page 116: Introduction to Apache jclouds at NYJavaSIG

Demo

jclouds.apache.org/start/install

Page 117: Introduction to Apache jclouds at NYJavaSIG

All the JARs!

Page 119: Introduction to Apache jclouds at NYJavaSIG

Subset the JARs!

Page 120: Introduction to Apache jclouds at NYJavaSIG

What’s New?What’s Next?

Page 121: Introduction to Apache jclouds at NYJavaSIG

What’s New?

•jclouds 1.8.0•Docker

Page 122: Introduction to Apache jclouds at NYJavaSIG

What’s Next?

•jclouds 2.0.0 •Java 7 in 2.0.0 !!!•Release every 6 weeks

Page 123: Introduction to Apache jclouds at NYJavaSIG

Thank You

jclouds.apache.org

Everett Toews

Developer Advocate

@everett_toews