Upload
imasters
View
3.310
Download
0
Embed Size (px)
DESCRIPTION
Apresentação de Luiz Rocha no 7Masters - Encontro iMasters de Especialistas em Ruby - junho/2012
Citation preview
Ruby @ Abril Mídia
Luiz RochaArquiteto de Sistemas
@lsdr
Ruby
• 100% dos Websites (Alexandria)
• 100% dos Data Entries
• ~ 80% das APIs (Domínios e Serviços)
Como escalar?
• Keep-Alive
• HTTP Cache
• Requisições em paralelo
Cache
http://abr.io/fearless-http-reqs
Em paralelo
• net/http e afins não funcionam
• Threads?
• EventMachine, em-http-request
• Aonde? http://github.com/abril/browsah
• Status? VAPORWARE
Browsah!
Browsah!
• DSL em cima do EM::MultiRequest
• HTTP como protocolo de Aplicação
• “Esconder” os Deferables
• Comportamento browser-like
Browsah!headers = { 'Content-Type' => 'application/json' }body = { "longUrl" => "http://engineering.abril.com.br" }.to_jsonbw = Browsah.new('https://www.googleapis.com')
bw.post '/urlshortener/v1/url', :body => body, :headers => headers do |r| r.on(200) do parsed = JSON.parse(r.body) jj parsed endend
bw.get '/urlshortener/v1/url?shortUrl=http://goo.gl/TT1LT' do |r| r.on(200) do parsed = JSON.parse(r.body) jj parsed endend
WIP
Obrigado!