Gearman + PHP - distribuindo e escalando - 7Masters PHP

6
Gearman + PHP Distribuindo e Escalando iFind Plataform www.ifind.com.br

description

Apresentação de Klederson Bueno, no 7Masters - Encontro iMasters de Especialistas em PHP - Janeiro/2013

Transcript of Gearman + PHP - distribuindo e escalando - 7Masters PHP

Page 1: Gearman + PHP - distribuindo e escalando - 7Masters PHP

Gearman + PHP Distribuindo e Escalando

iFind Plataformwww.ifind.com.br

Page 2: Gearman + PHP - distribuindo e escalando - 7Masters PHP

O que é o Gearman?

Aspectos funcionais da ferramenta

www.ifind.com.br

Framework para gerenciar "farms" de tasks

Gerenciador de filas (persistente - libdrizzle - ou não)*

Paralelizador de tarefas ( Sincronas ou Não )

"Mapreducer"

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 3: Gearman + PHP - distribuindo e escalando - 7Masters PHP

Como funciona o Gearman?

Enviando emails de forma correta

www.ifind.com.br

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

App Server Response OK Mail Server Response OK

Users x Requests = (????) SMTP CallsAté 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 4: Gearman + PHP - distribuindo e escalando - 7Masters PHP

Como funciona o Gearman?

Enviando emails de forma correta

www.ifind.com.br

/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 RequestsDiminuiçã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 5: Gearman + PHP - distribuindo e escalando - 7Masters PHP

Como funciona o Gearman?

Enviando emails de forma correta

www.ifind.com.br

/users/123/sendMail

App Server Response OK

Asyncronous

Workers192.168.

1.10

Call Gearman Server

Workers192.168.

1.11

Workers192.168.

1.12

Map/Reduce automáticoEscolher worker mais "próximo"Especialização de servidores de acordo com o tipo de workerEscalabilidade "infinita" ( ex. Digg processa aprox. 6 milhões de jobs/dia com aprox. 60 servidores )

Page 6: Gearman + PHP - distribuindo e escalando - 7Masters PHP

iFind Plataformwww.ifind.com.br

Klederson Bueno+55 - 19 - [email protected]

Thanks for watching! =)