DeskMetrics - Arquitetura, Python e NoSQL

Post on 09-Jul-2015

1.892 views 0 download

description

Lightning talk que eu ministrei no primeiro encontro do HoraExtraBH

Transcript of DeskMetrics - Arquitetura, Python e NoSQL

Arquitetura, Python e NoSQL | Herberth Amaral DeskMetrics’ CTO

Julho de 2011

DeskMetrics' CodeMonkey

Atual responsável pelo produto

About

É uma plataforma que fornece, em tempo real,

informações estratégicas sobre como um

determinado software está sendo utilizado.

A DeskMetrics

Falta de informações

sobre o uso de software

desktop

- Alcance

- Volume

Qual problema resolvemos?

Backend

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

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

100% do backend

Fácilidade de escrita e leitura;

Suficientemente rápida para 95% dos casos;

Familiaridade

Python | vantagens

Para os outros 5% dos casos

CPython é lento e consome muita memória.

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

Python | desvantagens

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

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

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

Herberth Amaral herberth@deskmetrics.com

Twitter: @herberthamaral

DeskMetrics.com | contato@deskmetrics.com | +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