O documento descreve como a Apache Cassandra foi usada para desenvolver aplicações móveis para a Movile, uma empresa líder em serviços móveis na América Latina. A Cassandra forneceu alta disponibilidade, desempenho e escalabilidade para lidar com volumes crescentes de dados de assinaturas. A arquitetura de cluster da Cassandra permitiu que a Movile atendesse milhões de usuários com latências de leitura e escrita baixas.
1. Cassandra no Desenvolvimento
de Aplicações para
serviços Móveis
Cassandra no Desenvolvimento
de Aplicações para
serviços Móveis
por J.P. Eiti Kimura
2. Apache Cassandra
O que é?
Princípio de Funcionamento
Modelo de dados
Aplicação do Cassandra
Requisitos do serviço
Arquitetura da Plataforma
Cluster de Cassandra
Resultados
3. O que é?
Uma definição em 50 palavras ou menos
“Apache Cassandra é um banco de dados
não relacional orientado a colunas,
distribuído, descentralizado,
escalável, de alta disponibilidade,
tolerante a falhas, com design baseado
no Amazon's Dynamo e o modelo de dados
no BigTable do Google. Criado pelo
Facebook e hoje utilizado em grandes
empresas como Netflix, eBay, Instagram
e outras”
5. Arquitetura e Funcionamento
● Desenvolvido em Java: http://cassandra.
apache.org/
● Descentralizado (não há SPOF)
● Utiliza o Protocolo Peer-to-Peer (ao invés do
modelo master/slave)
● Escalabilidade Elástica
6. Arquitetura e Funcionamento - Teorema CAP
Cassandra tem
maior foco em
disponibilidade e
particionamento.
O teorema indica que é possível obter somente duas dessas propriedades
7. Eventually Consistency
● Consistência Eventual: a
consistência ocorrerá ao
longo do tempo, e
eventualmente todos os
clientes acessarão a
mesma informação em um
dado instante.
● Forma de consistência
propagada. Ex.: DNS
10. Modelo de dados
Composite Columns
CREATE TABLE timeline (
user_id varchar,
tweet_id uuid,
author varchar,
body varchar,
PRIMARY KEY (user_id, tweet_id)
);
11. Mais de 20 milhões de pessoas usando nossos
serviços todo mês.
A Movile é líder em desenvolvimento de
plataformas de comércio e conteúdo móvel na
América Latina. Com produtos para celulares,
smartphones e tablets, nosso trabalho deixa a
vida das pessoas melhor e mais divertida
Movile
12. ● Alta disponibilidade: o serviço nunca pode
parar
● Plataforma crítica
● Alto desempenho: deve responder em
alguns milissegundos
● Sistema Seguro e confiável
Requisitos da Plataforma
13. Legado...
● cobrança de usuários
nas operadoras
● controle de assinaturas
de produtos
● base de broadcast de
mensagens
21. ● Bom desempenho de leitura
● Excelente desempenho em escrita
● Throughput de leitura e escrita altamente escalável
● Suporta geo-distribuição de informação
● Tolerante a falhas
● Controle fino do nível de consistência por cliente
● Integridade de dados com checks e repairs
● Queremos: FOSS (Free and Open Source Software) +
Suporte
Porque Cassandra?