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.
7. Service Foo
Broker DB
Service Bar
Broker DB
Service Baz
Broker DB
Router
Cloud Controller
DEA
DEA DEA
Health Manager
SSO
provisioning / configuration / orchestration
Runtime
DEA
vSphere
BOSH
Console
Operations
Manager
AWS OpenStack
Pivotal #CassandraSummit
10. BOSH
Router
vSphere / AWS / OpenStack
Operations
Manager
CF Runtime
Cloud
Controller
Service
Service Instances
Service
Broker
Application Instances
11. BOSH
Router
vSphere / AWS / OpenStack
Operations
Manager
CF Runtime
Cloud
Controller
Service
Service Instances
Service
Broker
Application Instances
Catalog
$ cf marketplace
12. BOSH
Router
vSphere / AWS / OpenStack
Operations
Manager
CF Runtime
Cloud
Controller
Service
Service Instances
Service
Broker
Application Instances
Provision instance
Done
$ cf create service foo
13. CF Runtime
Router
Application Instances
Cloud
Controller
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
14. CF Runtime
Router
Application Instances
Cloud
Controller
Service
Service Instances
Service
Broker
$ cf bind service my_app foo
App instance reads
and writes directly to
service instance.
15. 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
28. Why ?
"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
35. What is an Instance?
Scales to the size
of a single cluster.!
Single Keyspace.!
Good for
development and
testing.
Part of a Shared Cluster
Instance 1 (Keyspace)
Instance 2 (Keyspace)
Instance 3 (Keyspace)
Cassandra Node Cassandra Node Cassandra Node
VM VM VM
Pivotal #CassandraSummit
39. What is an Instance?
True production
grade.!
No noisy
neighbours.!
Expensive.
Cluster of VMs
Cassandra VM Cassandra VM Cassandra VM
Instance 1 (Cluster of VMs)
Cassandra VM Cassandra VM Cassandra VM
Instance 2 (Cluster of VMs)
Cassandra VM Cassandra VM Cassandra VM
Instance 3 (Cluster of VMs)
Pivotal #CassandraSummit
40. What is an Instance?
Looks identical to
production.!
Fairly good noisy
neighbour
isolation.!
Constrained
resources per
instance.
Cluster of Containers
Cassandra
Node
Instance 1 (Cluster)
Cassandra
Node
Cassandra
Node
Instance 2 (Cluster)
Cassandra
Node
Instance 3 (Cluster)
Cassandra
Node
Cassandra
Node
Cassandra
Node
Cassandra
Node
Cassandra
Node
VM VM VM
Pivotal #CassandraSummit
56. Cassandra
NTPd!
Server
NTPd!
!
Cassandra
Node
Node
Cassandra
Node
Internet
NTPd!
Server
NTPd!
Server
NTPd!
Server
https://blog.logentries.com/2014/03/synchronizing-clocks-in-a-cassandra-cluster-pt-2-solutions/
Pivotal #CassandraSummit
58. Running repairs
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
Pivotal #CassandraSummit
59. Services Are the Key
to the Success of
Pivotal CF
Pivotal #CassandraSummit
60. Thank you.
If this interests you, we’re hiring CF engineers in SF and London.
Tammer Saleh
tsaleh@pivotal.io
http://tammersaleh.com
Pivotal #CassandraSummit