Sana Inside » Post 'Falando sobre Gearman no 2o PHP DAY (slides inside)'

Falando sobre Gearman no 2o PHP DAY (slides inside)

gearman80_logoNa manhã do último sábado os organizadores do Grupo de Usuários PHP do Espírito Santo promoveram a segunda edição do PHPDAY-ES, um mini-evento de 3 horas de duração criado para difundir a linguagem e aproximar os praticantes e interessados por PHP aqui no estado.

O evento aconteceu na faculdade FAESA em Vitória, contou com quatro palestras e uma mesa redonda com discussão sobre os cinco frameworks mais populares para PHP, que infelizmente não pude assistir pois tive que sair mais cedo devido a outro compromisso. Porém, assim como na primeira edição, quando palestrei sobre o MongoDB, novamente pude contribuir ministrando uma das palestras, desta vez sobre o Gearman, um framework genérico para distribuição de processamento que faz uma dupla muito interessante com o PHP e que venho utilizando extensivamente na infra-estrutura de crawling/parsing do Filtrie.com.

Apesar de o uso do Gearman ser bem simples, a maioria da audiência era de iniciantes/curiosos por PHP, então tentei abortar o tema de forma bem didática (dentro do possível). Se deu certo e se os presentes conseguiram capturar algum conhecimento que lhes será proveitoso algum dia eu não tenho certeza, mas aparentemente todos assistiram com atenção e ninguém dormiu, como depõe esta foto tirada pelo Léo Hackin. Já é alguma coisa :)

Sobre o Gearman, eu até gostaria de entrar em mais detalhes contando como venho usando-o, mas como o tempo anda curto, por enquanto vou deixar aqui só os slides da palestra, que dão uma boa ideia sobre o que é o framework e quais são suas principais características, e incluem alguns exemplos de uso implementando em php macarrônico :) Coloquei o código-fonte destes exemplos e também de um arquivo de configuração do supervisord (mencionado na palestra) num arquivo .zip, que você pode baixar clicando aqui. Por fim, quem quiser dar uma olhada nos outros temas e slides, eles serão disponibilizados na página do evento.

Tags: , , , , , , ,
  • http://twitter.com/silasribas Silas Ribas

    Salve,

    Sensacional esse Gearman, obrigado pelos slides, faz um screencast ai sobre ele :D

    Vou baixar o slide e procurar mais sobre ele.

    Sucesso!

  • http://twitter.com/pauloacosta Paulo A. Costa

    Gostei! Vou experimentar!

    O funcionamento do Gearman é parecido com o do MemCache? Onde você tem que, explicitamente apontar o worker? Ou ele faz esse balanceamento de forma automática verificando qual o servidor está menos sobrecarregado?

    Estou atualmente buscando alternativas para realizar o balancemanto de carga dos processos.

    A propósito…Você poderia me dar uma “luz”? Estou utilizando 2 servidores, um como aplicação e outro servidor para armazenar imagens e arquivos, que serão servidos pelo Lighttpd.

    Quando o usuário enviar um arquivo, o script do servidor de applicação deverá armazená-lo no servidor 02 (arquivos). Você tem alguma sugestão de programa para fornecer essa conexão de sistema de arquivos entre o servidor 1 e 2? Devo enviar os arquivos para o servidor 02 via FTP, ou Samba? Existe alguma solução mais atual?

    Atualmente estou fazendo testes com o Samba, mas não acho que seja a ferramenta mais apropriada.

    Obrigado!

  • http://www.sanainside.com Diego Sana

    Oi Paulo,

    Deixei meu blog “esquecido”, desculpa pela demora em responder. Talvez você já tenha descoberto essas coisas, mas lá vai a resposta mesmo assim:

    Sobre balanceamento no Gearman: tem dois pontos diferentes. Existe o servidor Gearman, que é a aplicação que faz a ponte entre os clientes e os workers. Você pode ter mais de um servidor Gearman, e precisa apontar no seu código qual deles quer usar. Já em relação aos workers, o servidor Gearman ao receber um job faz a distribuição automática do trabalho, enviando-o para o primeiro worker que estiver numa fila de workers livres.

    Sobre a “luz”: Em primeiro lugar, uma dica: já experimentou o Nginx? É tão leve e rápido quanto o Lighttpd e encontra-se em desenvolvimento mais ativamente, o Light tá meio parado no tempo. As duas soluções que mencionou são viáveis, mas eu acho que são mais complexas. Eu usaria o Gearman nessa situação, é exatamente um dos use cases que mencionei para ele. Basta você criar workers no Servidor 02 que recebam o conteúdo de um arquivo e salvam ele no disco. Dai no servidor 01, quando o usuário enviar um arquivo, você converte ele para string e chama um background job no gearman passando este arquivo para ser salvo. Para mim fica bem mais fácil de desenvolver o código e gerenciar isso.

  • Pingback: lastactionseo | lastactionseo - der letzte SEO

© 2008 Powered by WordPress