Вы находитесь на странице: 1из 28

Novo Cronograma

Data Assuntos
06 de Junho Chef, Solr e Delayed Job
03 de Julho Cdigo do Redu I
10 de Julho Cdigo do Redu II
17 de Julho Cdigo do Redu III
Delayed::Job, Solr e Chef
Tiago Lima
Lder tcnico e Scio do Redu

5 de junho de 2014
Delayed::Job
O que Delayed::Job?
uma gem que gerencia tarefas
assncronas de longa durao que
devem ser executadas em background
Envio massivo de e-mails
Redimensionamento de imagens
Downloads via HTTP
Importao em batch
Atualizaes de ndices

Quando eu devo usar?
Caso de uso, Delayed::Job no Redu
Criao em massa de ligaes entre usurio
e postagens no mural
Uma postagem podia resultar em 30.000
inseres em uma tabela
Execuo dessa tarefa demorava muito mais
que 1 minuto
Ainda no entendi, qual o
problema?
Mural
Usurio
Post
Usurio
Usurio
Usurio
Usurio
30.000x
Jobs
Tarefas a serem executadas
Hooks
Estados onde podemos interferir o Job,
exemplo: before, after, success, error, failure,
enqueue
Conceitos
Filas
Possibilita separar Jobs em categorias,
exemplo: email, hierarchy-associations
Backends
Escolhe em qual tipo de Banco de Dados e
ORM sero executados e guardados os Jobs
Conceitos
Primeiro Job
Instalao do Delayed::Job (Gemle)




O Redu utiliza o delayed_job_mongoid,
para facilitar usaremos o ActiveRecord
gem delayed_job_active_record'
$ bundle install
$ rails generate delayed_job:active_record
$ rake db:migrate
Exemplo
Referncias
https://github.com/collectiveidea/
delayed_job
Solr
O que Solr?
Solr is the popular, blazing fast open
source enterprise search platform from
the Apache Lucene project.
a plataforma de busca do Redu
O que o sunspot?
uma DSL em Ruby para expor as
funcionalidades do Solr
Pode ser encontrado em forma de gem
gem 'sunspot_rails'
gem 'sunspot_solr'
Exemplo
Referncias
Search with Sunspot
Solr Documentation
Sunspot Documentation
Chef
O que Chef?
Chef is a systems and cloud
infrastructure automation framework
that makes it easy to deploy servers and
applications to any physical, virtual, or
cloud location, no matter the size of the
infrastructure.
O que realmente?
um framework que automatiza
criao e manuteno de infra-
estruturas
Conceitos
Cookbooks
So conjuntos de conguraes que
descrevem e constroem a infra-estrutura
Contm recipes, templates, custom
resources, arquivos e etc
So usados para reuso de cdigo e
modularidade
Conceitos
Recipes
Arquivos de congurao que descrevem
recursos e seus estados
Recipes podem:
Instalar e congurar softwares
Gerenciar arquivos
Implantar aplicaes

Conceitos
Os Recipes do Redu
delayed_job
mongodb
solr
ssh_tunnel
logentries
rabbitmq
Recipes com EngineYard
Instalao da gem do Engine Yard

Atualizao dos recipes em produo
$ gem install engineyard
$ ey recipes upload -e redu_production
$ ey recipes apply -e redu_production
Exemplo
Referncias
http://docs.opscode.com/
Curso de Chef no Youtube
Custom Recipes on Engine Yard
Obrigado :)