14
Arquitetura, Python e NoSQL | Herberth Amaral DeskMetrics’ CTO Julho de 2011

DeskMetrics - Arquitetura, Python e NoSQL

Embed Size (px)

DESCRIPTION

Lightning talk que eu ministrei no primeiro encontro do HoraExtraBH

Citation preview

Page 1: DeskMetrics - Arquitetura, Python e NoSQL

Arquitetura, Python e NoSQL | Herberth Amaral DeskMetrics’ CTO

Julho de 2011

Page 2: DeskMetrics - Arquitetura, Python e NoSQL

DeskMetrics' CodeMonkey

Atual responsável pelo produto

About

Page 3: DeskMetrics - Arquitetura, Python e NoSQL

É uma plataforma que fornece, em tempo real,

informações estratégicas sobre como um

determinado software está sendo utilizado.

A DeskMetrics

Page 4: DeskMetrics - Arquitetura, Python e NoSQL
Page 5: DeskMetrics - Arquitetura, Python e NoSQL

Falta de informações

sobre o uso de software

desktop

- Alcance

- Volume

Qual problema resolvemos?

Page 6: DeskMetrics - Arquitetura, Python e NoSQL

Backend

Page 7: DeskMetrics - Arquitetura, Python e NoSQL

Integração

Dados Anônimos e Encriptados

ONLINE

Componente

SOFTWARE CLOUD <150 KB

Segurança e Confiabilidade

Informações em Tempo Real

Linguagens Suportadas Sistemas Operacionais

• Windows

• Mac OS

• Linux

• Adobe AIR/Flex

• C/C++

• Delphi

• Java

• Objective-C

• .NET/Mono

Page 8: DeskMetrics - Arquitetura, Python e NoSQL

5 máquinas no Rackspace Cloud

1 GB RAM Frontend (Website e Analytics)

1 GB RAM Webservice (incluindo workers)

2x 4GB RAM MongoDB (gargalo)

1x 256 MB RAM MySQL (dá e sobra ;)

Capacidade de processamento:

400 datapoints/segundo, com bursts de até 1000

em curtos intervalos de tempo (10 a 20s).

Infraestrutura

Page 9: DeskMetrics - Arquitetura, Python e NoSQL

100% do backend

Fácilidade de escrita e leitura;

Suficientemente rápida para 95% dos casos;

Familiaridade

Python | vantagens

Page 10: DeskMetrics - Arquitetura, Python e NoSQL

Para os outros 5% dos casos

CPython é lento e consome muita memória.

Avaliando PyPy e Scala ou Jython (JVM) como alternativas.

Python | desvantagens

Page 11: DeskMetrics - Arquitetura, Python e NoSQL

Fácil integração com qualquer plataforma

Boa solução para realtime analytics

Vejam http://bit.ly/yA27D

Desnormalização salva nossa vida

Sem blobs.

Armazenamento de dados de relatórios.

Banco em memória = Rápido bagaraio

MongoDB | vantagens

Page 12: DeskMetrics - Arquitetura, Python e NoSQL

Problemas com memória

High-memory instances no Rackspace são caras.

Dataset com 80 GB.

Sem sharding ainda.

Problemas com disco

Atualmente o maior gargalo.

MongoDB | desvantagens

Page 13: DeskMetrics - Arquitetura, Python e NoSQL

Migrar para Amazon AWS;

Sharding no Mongo;

Substituir tornado por gevent;

Realizar experimentos com RabbitMQ;

Abusar um pouco mais do memcached;

Contratar gente bacana :-)

Planos Futuros

Page 14: DeskMetrics - Arquitetura, Python e NoSQL

Herberth Amaral [email protected]

Twitter: @herberthamaral

DeskMetrics.com | [email protected] | +55 (31) 3318-5990

Internacional: +1 (415) 655-1990 | +1 (888) 848-2918

Rua Viçosa, n° 43, 701 - Savassi - Belo Horizonte - MG - Brasil

Obrigado!

deskmetrics.com

deskmetrics.com/blog

@DeskMetrics

@DeskMetricsBR