27
Application Development with Apache Cassandra as a Service By Deependra Ariyadewa

Application Development with Apache Cassandra as a Service

  • Upload
    wso2

  • View
    2.917

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Application Development with Apache Cassandra as a Service

Application Development with Apache

Cassandra as a Service

By Deependra Ariyadewa

Page 2: Application Development with Apache Cassandra as a Service

WSO2

• Founded in 2005 by acknowledged leaders in XML, Web Services Technologies & Standards and Open Source. Primary contributors to Apache Web Services projects started in 2001

• Producing entire middleware platform 100% open source under Apache license

• Business model is to sell comprehensive support & maintenance for our products

• Technology OEM’d by IBM, Progress, Software AG, Alcatel, EMC,

• and CA

• Venture funded by Intel Capital and Quest Software.

• Global corporation with offices in Palo Alto, USA Portsmouth, UK & Colombo, Sri Lanka

• 150+ employees and growing.

Page 3: Application Development with Apache Cassandra as a Service

Attendees will learn

• When to select a NoSQL column store database

• The advantages of WSO2 Column Store Service – (CSS),

particularly in a cloud deployment

• How to create and manage a Cassandra keyspace using

WSO2 CSS

• How to develop and deploy an application with the WSO2

CSS

Page 4: Application Development with Apache Cassandra as a Service

Introduction to Data Problem

• Rapid growth of published data.

• Managing large amounts of data is difficult

Difficulties include

o Capture

o Storage

o Search

o Sharing

o Analytics

o Visualization

Page 5: Application Development with Apache Cassandra as a Service

The Well Known Data Solution

• Relational Database Management Systems - RDBMS

Oracle, DB2, Postgress, MySQL

• Object-oriented Databases

VelocityDB, Wakanda, Zope

• NoSQL Databases

Cassandra, CouchDB, MongoDB

Page 6: Application Development with Apache Cassandra as a Service

Limitations in Relational Model

• Relational model should maintain ACID

properties.

• Hard to scale up keeping Consistency and Isolation due to Node Failures and distributed locking.

• less scalable SQL.

o Distributed JOIN

Page 7: Application Development with Apache Cassandra as a Service

An alternative to ACID is BASE

• Basic Availability

• Soft-state

• Eventual consistency

Page 8: Application Development with Apache Cassandra as a Service

CAP Theorem

• In distributed systems it is only possible to have two

properties out of the properties Consistency, Availability and

Partition Tolerance at any given time.

Page 9: Application Development with Apache Cassandra as a Service

NoSQL Data Solutions

• Tunable Consistency

• Fault Tolerant

• Decentralized

• Runs on Cheap Commodity Hardware

• Flexible Data Models

Page 10: Application Development with Apache Cassandra as a Service

NoSQL Database Types

• Wide Column Store / Column Families

o Cassandra, HBase

• Document Store

o MongoDB, CouchDB

• Key Value / Tuple Store

o Riak, Redis

• Graph Databases

o Neo4J, FlockDB source:http://nosql-database.org/

Page 11: Application Development with Apache Cassandra as a Service

When to Select NoSQL Column Store

• Structured Data

• Highly Scalable Systems with Primary Key Retrieval

• Highly scalable systems with WHERE clause Support

Page 12: Application Development with Apache Cassandra as a Service

Apache Cassandra Features

• Fault Tolerant

Data is automatically replicated to multiple node / across multiple data centers for fault tolerance.

• Decentralized

Every node in the cluster is identical.

• Rich Data Model

support key/value systems and column families.

• Elastic

Read and write throughput both increase linearly as new machines are added,

with no downtime or interruption to applications.

Page 13: Application Development with Apache Cassandra as a Service

WSO2 Data Solutions

• Data Service Server - DSS

• Relational Storage Service - RSS

• Column Store Service - CSS

• File System as a service ( FSaaS) - HDFS

Page 14: Application Development with Apache Cassandra as a Service

Cassandra Deployment Diagram

Page 15: Application Development with Apache Cassandra as a Service

WSO2 Column Store

• User requests are authenticated and authorized with Carbon User manager.

• Cassandra service listens on port 9160 for thrift calls.

• Port 7000 uses as the default gossip channel.

Page 16: Application Development with Apache Cassandra as a Service

WSO2 Stratos

Page 17: Application Development with Apache Cassandra as a Service

WSO2 Column Store as a Service (CSS)

Page 18: Application Development with Apache Cassandra as a Service

How to Install Cassandra feature

• Install Cassandra feature from p2 repository.

Page 19: Application Development with Apache Cassandra as a Service

Expand the Cassandra Cluster

• Decide on a Key partitioner

partitioner: org.apache.cassandra.dht.RandomPartitioner

• Set Seeds

- seeds: "192.168.0.102", "192.168.0.103"

• Set Listen address to an IP

listen_address: 192.168.0.10

• Plug WSO2 authentication / authorization system.

authenticator: org.wso2.carbon.cassandra.server.CarbonCassandraAuthenticator

authority: org.wso2.carbon.cassandra.server.CarbonCassandraAuthority

Page 20: Application Development with Apache Cassandra as a Service

Manage Keyspace / Column Families

Page 21: Application Development with Apache Cassandra as a Service

Manage Keyspace / Column Families

Page 22: Application Development with Apache Cassandra as a Service

Manage Keyspace / Column Families

Page 23: Application Development with Apache Cassandra as a Service

Write Clients with Hector ( Java API )

Page 24: Application Development with Apache Cassandra as a Service

Write Clients with Hector

Page 25: Application Development with Apache Cassandra as a Service

Q & A

Page 26: Application Development with Apache Cassandra as a Service

https://ail.google.com/mail/u/0/?ui=2&ik=ad9ae58f41&vi

ew=att&th=1331a70983344a32&attid=0.1&disp=thd&re

alattid=f_gtxto6mk0&zw

Selected Customers

Page 27: Application Development with Apache Cassandra as a Service

WSO2 engagement model

• QuickStart -

• Development Support

• Development Services

• Production Support

• Turnkey Solutions

• WSO2 Mobile Services Solution

• WSO2 FIX Gateway Solution

• WSO2 SAP Gateway Solution