Browsah! - Ruby @Abril Midia

12
Ruby @ Abril Mídia Luiz Rocha Arquiteto de Sistemas @lsdr

description

Apresentação de Luiz Rocha no 7Masters - Encontro iMasters de Especialistas em Ruby - junho/2012

Transcript of Browsah! - Ruby @Abril Midia

Page 1: Browsah! - Ruby @Abril Midia

Ruby @ Abril Mídia

Luiz RochaArquiteto de Sistemas

@lsdr

Page 2: Browsah! - Ruby @Abril Midia
Page 3: Browsah! - Ruby @Abril Midia

Ruby

• 100% dos Websites (Alexandria)

• 100% dos Data Entries

• ~ 80% das APIs (Domínios e Serviços)

Page 4: Browsah! - Ruby @Abril Midia
Page 5: Browsah! - Ruby @Abril Midia
Page 6: Browsah! - Ruby @Abril Midia

Como escalar?

• Keep-Alive

• HTTP Cache

• Requisições em paralelo

Page 7: Browsah! - Ruby @Abril Midia

Cache

http://abr.io/fearless-http-reqs

Page 8: Browsah! - Ruby @Abril Midia

Em paralelo

• net/http e afins não funcionam

• Threads?

• EventMachine, em-http-request

Page 9: Browsah! - Ruby @Abril Midia

• Aonde? http://github.com/abril/browsah

• Status? VAPORWARE

Browsah!

Page 10: Browsah! - Ruby @Abril Midia

Browsah!

• DSL em cima do EM::MultiRequest

• HTTP como protocolo de Aplicação

• “Esconder” os Deferables

• Comportamento browser-like

Page 11: Browsah! - Ruby @Abril Midia

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

Page 12: Browsah! - Ruby @Abril Midia

Obrigado!