Gearman and Memcached
-
Upload
klederson-bueno -
Category
Software
-
view
37 -
download
2
Transcript of Gearman and Memcached
Distribuindo e Escalando (e dismistificando escalabilidade)
iFind Plataform http://ifind.io
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 =)
Escalabilidade
http://ifind.io
Bixo de sete cabeças " "
Escalabilidade
http://ifind.io
Muito oneroso! " "
Escalabilidade
http://ifind.io
Alta complexidade! " "
Escalabilidade
http://ifind.io
Infra / Dev / Gestão / Rede " "
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!
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, …
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
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)
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
Como funciona o Gearman?
http://ifind.io
Como funciona o Gearman?
http://ifind.io
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"
Como funciona o Gearman?
http://ifind.io
Mitos
http://ifind.io
Escalar custa caro
Mitos
http://ifind.io
Escalar custa caro
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….
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….
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….
Curiosidades
http://ifind.io
iFind Plataform http://ifind.io
Klederson Bueno +55 - 19 - 9444-7994 [email protected]
Thanks for watching! =)