cassandra summit 2014: apache cassandra on pivotal cloudfoundry

60
Pivotal #CassandraSummit Cassandra on Pivotal CF

Upload: planet-cassandra

Post on 29-Apr-2015

451 views

Category:

Technology


0 download

DESCRIPTION

Presenters: Tammer Saleh, Director of Product, Cloud Foundry Services at Pivotal Pivotal is dedicated to bringing best-of-breed data services to Pivotal CF, and there is no other open source data technology with as much potential as Cassandra. We’ll discuss the strategies and techniques for deploying and managing a multi-user Cassandra installation that integrates with Cloud Foundry. - Making Cassandra manage itself - Single-tenant versus Multi-tenant usage - Deploying Cassandra with BOSH - Cloud Foundry services architecture.

TRANSCRIPT

Page 1: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

Cassandra on Pivotal CF

Page 2: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

Tammer SalehDirector of Product

Pivotal CF Services, London !

http://tammersaleh.com

Page 3: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Overview of Pivotal CF!Services API!

Why Cassandra!Building Cassandra!

Automating Cassandra Operations

Pivotal #CassandraSummit

Page 4: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Overview of Pivotal CF

Pivotal #CassandraSummit

Page 5: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

$ cf push is golden.

$ cf create-service p-cassandra development-plan eventsdb $ cf bind-service eventsdb dashboard $ cf push dashboard $ open https://dashboard.mypcf.com

Pivotal #CassandraSummit

Page 6: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

Page 7: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

vSphere

BOSH provisioning / configuration / orchestrationOperations

Manager

AWS OpenStack

Console

Service Foo

Broker DB

Service Bar

Broker DB

Service Baz

Broker DB

Runtime

DEA Cloud Controller

Router

DEA

DEA DEA

Health Manager

SSO

Page 8: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Services APIPivotal #CassandraSummit

Page 9: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

vSphere / AWS / OpenStack

BOSHOperations Manager

CF Runtime

Application Instances

Cloud Controller

Router

Page 10: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

vSphere / AWS / OpenStack

BOSHOperations Manager

CF Runtime

Cloud Controller

Router

Service

Service Instances

Service Broker

Application Instances

Page 11: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

vSphere / AWS / OpenStack

BOSHOperations Manager

CF Runtime

Cloud Controller

Router

Service

Service Instances

Service Broker

Application Instances

Catalog

$ cf marketplace

Page 12: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

vSphere / AWS / OpenStack

BOSHOperations Manager

CF Runtime

Cloud Controller

Router

Service

Service Instances

Service Broker

Application Instances

Provision instance

Done

$ cf create service foo

Page 13: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

CF Runtime

Application Instances

Cloud Controller

Router

Service

Service Instances

Service Broker

Provision binding

Binding info

$ cf bind service my_app foo

$VCAP_SERVICES={ "pgsql": [ { "name": "UUID", "plan": "small", "credentials": { "uri": “postgres://u:p@service_ip” } } ], … }

Binding info

Page 14: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

CF Runtime

Application Instances

Cloud Controller

Router

Service

Service Instances

Service Broker

$ cf bind service my_app foo

App instance reads and writes directly to

service instance.

Page 15: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

GET /v2/catalog What’s available?

PUT /v2/service_instances/:id Create service

DELETE /v2/service_instances/:id Delete service

PUT /v2/service_instances/:id/service_bindings/:id Create binding

DELETE /v2/service_instances/:id/service_bindings/:id Delete binding

Page 16: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal CF Services

Page 17: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Insanely fast KV storage - The AK-47 of Databases

Page 18: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

The World's Leading Graph DB

Page 19: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Distributed, real-time search and analytics engine

Page 20: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Simple and Fast NoSQL DB

Page 21: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

High-performance memory object cache.

Page 22: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Next generation MySQL replacement.

Page 23: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Enterprise Hadoop Distribution.

Page 24: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

S3 Compatible Blobstore

Page 25: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Highly distributed, write-heavy KV/column store.

Page 26: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry
Page 27: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Our first production-grade service.

Page 28: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

"In terms of scalability, there is a clear winner throughout our experiments.

Cassandra achieves the highest throughput for the maximum number of

nodes in all experiments."

- University of Toronto, 2012

Why ?

Page 29: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Why ?

Page 30: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Cassandra is truly cloud-scale.

Why ?

Page 31: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Why ?

Multi-datacenter deployments are commonplace in

the cloud.

Page 32: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Building Cassandra

Pivotal #CassandraSummit

Page 33: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

Plan InstanceService Binding

Services API Redux

Page 34: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

InstanceWhat is an ?

Page 35: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

InstanceWhat is an ?

Scales to the size of a single cluster.!

Single Keyspace.!

Good for development and testing.

Pivotal #CassandraSummit

Part of a Shared Cluster

VM VM VM

Cassandra Node Cassandra Node Cassandra Node

Instance 1 (Keyspace)

Instance 2 (Keyspace)

Instance 3 (Keyspace)

Page 36: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Keyspace visibilityPivotal #CassandraSummit

Page 37: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Noisy Neighbours

Pivotal #CassandraSummit

Page 38: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Quotas

Pivotal #CassandraSummit

Page 39: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

InstanceWhat is an ?

True production grade.!

No noisy neighbours.!

Expensive.

Pivotal #CassandraSummit

Cluster of VMs

Instance 1 (Cluster of VMs)

Cassandra VM Cassandra VMCassandra VM

Instance 2 (Cluster of VMs)

Instance 3 (Cluster of VMs)

Cassandra VM Cassandra VMCassandra VM

Cassandra VM Cassandra VMCassandra VM

Page 40: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

InstanceWhat is an ?

Looks identical to production.!

Fairly good noisy neighbour isolation.!

Constrained resources per instance.

Pivotal #CassandraSummit

Cluster of Containers

VM VM VM

Instance 1 (Cluster)

Cassandra Node

Instance 2 (Cluster)

Instance 3 (Cluster)

Cassandra Node

Cassandra Node

Cassandra Node

Cassandra Node

Cassandra Node

Cassandra Node

Cassandra Node

Cassandra Node

Page 41: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Automating Cassandra Operations

Pivotal #CassandraSummit

Page 42: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH

Pivotal #CassandraSummit

Page 43: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH is…• Predictable!• Repeatable!• IaaS agnostic!• Built for large-scale deployments

Pivotal #CassandraSummit

Page 44: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH Resurrector

Pivotal #CassandraSummit

Page 45: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH Resurrector

Pivotal #CassandraSummit

BOSH Director

VM

Agent

VM

Agent

VM

Agent

hello!

hey !there!

ahoy!

Page 46: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH Resurrector

Pivotal #CassandraSummit

BOSH Director

VM

Agent

VM

Agent

VM

Agent

Page 47: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH Resurrector

Pivotal #CassandraSummit

BOSH Director

VM

Agent

VM

Agent

VM

Agent IaaS

STONITH!

Page 48: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH Resurrector

Pivotal #CassandraSummit

BOSH Director

VM

Agent

VM

Agent

VM

Agent IaaS

Page 49: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH Resurrector

Pivotal #CassandraSummit

BOSH Director

VM

Agent

VM

Agent

IaaS

Page 50: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH Resurrector

Pivotal #CassandraSummit

BOSH Director

VM

Agent

VM

Agent

IaaS

Provision!

Page 51: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

BOSH Resurrector

Pivotal #CassandraSummit

BOSH Director

VM

Agent

VM

Agent

IaaS

VM

Agenthowdy!

Page 52: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

NTPd

Pivotal #CassandraSummit

Page 53: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

NTPd!Accuracy vs Precision

Page 54: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

NTPd!!

https://blog.logentries.com/2014/03/synchronizing-clocks-in-a-cassandra-cluster-pt-2-solutions/

Cassandra Node

Cassandra Node

Cassandra Node

Page 55: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

NTPd!!

https://blog.logentries.com/2014/03/synchronizing-clocks-in-a-cassandra-cluster-pt-2-solutions/

Cassandra Node

Cassandra Node

Cassandra Node

NTPd!Server

Page 56: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Pivotal #CassandraSummit

NTPd!!

https://blog.logentries.com/2014/03/synchronizing-clocks-in-a-cassandra-cluster-pt-2-solutions/

Cassandra Node

Cassandra Node

Cassandra Node

NTPd!Server

Internet

NTPd!Server

NTPd!Server

NTPd!Server

Page 57: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Running repairs

Pivotal #CassandraSummit

Page 58: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Running repairs

Pivotal #CassandraSummit

1. When decommissioning the Node.

2. When the node has been down for N minutes.

3. Once per node per week within GC_GRACE_PERIOD

Page 59: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Services Are the Key to the Success of

Pivotal CF

Pivotal #CassandraSummit

Page 60: Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry

Tammer [email protected]

http://tammersaleh.com

Thank you.

Pivotal #CassandraSummit

If this interests you, we’re hiring CF engineers in SF and London.