Gearman and Memcached

22
Distribuindo e Escalando (e dismistificando escalabilidade) iFind Plataform http://ifind.io

Transcript of Gearman and Memcached

Page 1: Gearman and Memcached

Distribuindo e Escalando (e dismistificando escalabilidade)

iFind Plataform http://ifind.io

Page 2: Gearman and Memcached

Who am I?

I’m not Batman! But I whis I was!

http://ifind.io

System Architect ( about 14 years in 2013 )

PHP Evangelist ( hell yeah!! )

Javascript lover ( since … well, since I discovered it )

Minimalist, Purist, Pain in the ass(!?)

Worked in some cool projects: DHL, Wal*Mart and Perdigão’s GPS Tracking System / CallCenter Systems / SAP Integrations / Privalia / Coquelux / Super Exclusivo / Ci&T / Axia Value Chain / Ernst & Young / bla bla bla …

"

"

Can say I had work in more than 200 projects =)

Page 3: Gearman and Memcached

Escalabilidade

http://ifind.io

Bixo de sete cabeças " "

Page 4: Gearman and Memcached

Escalabilidade

http://ifind.io

Muito oneroso! " "

Page 5: Gearman and Memcached

Escalabilidade

http://ifind.io

Alta complexidade! " "

Page 6: Gearman and Memcached

Escalabilidade

http://ifind.io

Infra / Dev / Gestão / Rede " "

Page 7: Gearman and Memcached

O que é o Memcached?

Aspectos funcionais da ferramenta

http://ifind.io

Caching

Key / Value

Runtime

Não é um banco de dados

O Memcached é uma maneira escalável, simples, leve e inteligente de cachear e organizar dados cacheados. A principal função reduzir o volume de chamadas a banco, mas também serve para transportar dados entre aplicações uma vez que q u a s e t o d a s a s l i n g u a g e n s p o s s u e m implementação da API.

"

"

Simples, MUITO, simples!

Page 8: Gearman and Memcached

O que é o Memcached?

Aspectos funcionais da ferramenta

http://ifind.io

Fácil Configuração

Multiplos Servidores

Peso/Prioridade dos servidores

API rica em recursos

Escalável

Open Source Poliglota : C++, PHP, Python, Ruby, .NET, Lua, Perl, CLI, LISP, MySQL, PostgreSQL, …

Page 9: Gearman and Memcached

O que é o Gearman?

Aspectos funcionais da ferramenta

http://ifind.io

Framework para gerenciar "farms" de tasks

Filas ( persistentes ou não: mysql, libdrizzle, sqlite3, memcached, ... - Redis and MongoDB under development )

Paralelizador de tarefas ( Sincronas ou Não )

Map & Reduce

O Gearman é em sua essência uma ferramenta para gerir e distribuir tarefas porém dentro das funcionalidades ele permite você fazer e ir muito mais além integrando funcionalidades como filas e map/reduce.

"

"

Tolerante a Falhas

Page 10: Gearman and Memcached

Como funciona o Gearman?

http://ifind.io

/users/123/sendMail SMTP mail.server.com

App Server Response OK Mail Server Response OK

Users x Requests = (????) SMTP Calls Até onde eu posso aumentar uma única máquina? Quantos serviços ( pagamentos por ex ) estão sendo prejudicados pela queda de performance? Como faço pra garantir as entregas uma vez que todas estão rodando simultaneamente e gargaladas? (Runtime)

Page 11: Gearman and Memcached

Como funciona o Gearman?

Enviando emails de forma correta

http://ifind.io

/users/123/sendMail SMTP mail.server.com

App Server Response OK

Asyncronous

Response OK

Workers x Requests = SMTP Calls ( Numero Controlado de Workers ) Enfileiramento das Requests Diminuição exponencial do load do servidor e controlar a carga a ser processada É possível persistir a fila e garantir as entregas caso aconteça algum gargalo ou problema

Worker

Call Gearman

Server

Page 12: Gearman and Memcached

Como funciona o Gearman?

http://ifind.io

Page 13: Gearman and Memcached

Como funciona o Gearman?

http://ifind.io

Page 14: Gearman and Memcached

Como funciona o Gearman?

http://ifind.io

/users/123/sendMail

App Server Response OK

Asyncronous

Workers 192.168.1.

10

Call Gearman

Server

Workers 192.168.1.

11

Workers 192.168.1.

12

Map/Reduce automático Escolher worker mais "disponível" Especialização de servidores de acordo com o tipo de worker

Escalabilidade "infinita"

Page 15: Gearman and Memcached

Como funciona o Gearman?

http://ifind.io

Page 16: Gearman and Memcached

Mitos

http://ifind.io

Escalar custa caro

Page 17: Gearman and Memcached

Mitos

http://ifind.io

Escalar custa caro

Page 18: Gearman and Memcached

Mitos

http://ifind.io

Para escalar essa aplicação legado eu preciso criar uma nova versão/refatorar/ horas de trabalho / é difícil, bla bla bla….

Page 19: Gearman and Memcached

Mitos

http://ifind.io

Para escalar essa aplicação legado eu preciso criar uma nova versão/refatorar/ horas de trabalho / é difícil, bla bla bla….

Page 20: Gearman and Memcached

Mitos

http://ifind.io

Para escalar essa aplicação legado eu preciso criar uma nova versão/refatorar/ horas de trabalho / é difícil, bla bla bla….

Page 21: Gearman and Memcached

Curiosidades

http://ifind.io

Page 22: Gearman and Memcached

iFind Plataform http://ifind.io

Klederson Bueno +55 - 19 - 9444-7994 [email protected]

Thanks for watching! =)