Thumbor: Imagens do Jeito Certo

22
imagens do jeito certo

description

Aprenda a usar o thumbor para ter as suas imagens do jeito certo em qualquer tamanho.

Transcript of Thumbor: Imagens do Jeito Certo

Page 1: Thumbor: Imagens do Jeito Certo

imagens do jeito certo

Page 2: Thumbor: Imagens do Jeito Certo

Eu

• Bernardo Heynemann

• @heynemann - [email protected]

• Gerente da Home da globo.com

• Dev

• Pai

Page 3: Thumbor: Imagens do Jeito Certo

Porquê o thumbor?

• ImageMagick, GraphicsMagick, PIL, OpenCV, SORLThumbnails, …

• Biblioteca vs Image-as-a-service

• Reconhecimento Facial

• Comunidade Software Livre

• Eco-sistema extremamente adaptável

Page 4: Thumbor: Imagens do Jeito Certo

Comunidade• 143 Forks

• 35 Contribuidores Diretos

• Bibliotecas mantidas pela comunidade

• Diversas issues criadas e resolvidas pela comunidade

• Segurança!!!

Page 5: Thumbor: Imagens do Jeito Certo

Reconhecimento FacialAs imagens da globo.com passaram a ter

menos pessoas sem cabeça!

Page 6: Thumbor: Imagens do Jeito Certo

$ pip install thumbor

$ thumbor

!

http://localhost:8888/unsafe/300x200/<url>

Mas é difícil?

Page 7: Thumbor: Imagens do Jeito Certo

Alguns Números

• 50M Imagens / Dia

• ~3500 reqs/seg de imagens por servidor

• Apenas 4 servidores de thumbor para toda a globo.com

Page 8: Thumbor: Imagens do Jeito Certo

E como escalar?Ou "Mas eu tenho 1.5 bilhão de imagens

servidas por mês!"

Page 9: Thumbor: Imagens do Jeito Certo

Arquitetura em

camadas

* Servidores Thumbor * Storage de Originais * Storage de Formatos * Reconhecimento Facial * Front-End com Cache * Varnish

Page 10: Thumbor: Imagens do Jeito Certo

Servidores com Thumbor

•Número de instâncias igual ao número de CPUs

•Horizontalmente Escalável

•Supervisord

Page 11: Thumbor: Imagens do Jeito Certo

Storage de Originais

• Thumbor obtém novos originais através de loaders

• Loader mais comum é o HTTPLoader

Page 12: Thumbor: Imagens do Jeito Certo

Storage de Formatos

• Processar novas imagens custa tempo

• Thumbor armazena o resultado do processamento

• Caso seja necessário Reconhecimento Facial, uma imagem temporária é gerada

• Diversos storages já existem e podem facilmente ser criados (disco, Mongo, Redis, AWS…)

Page 13: Thumbor: Imagens do Jeito Certo

Detecção de ObjetosUso de pontos focais para melhores cortes

Page 14: Thumbor: Imagens do Jeito Certo

Gerando URLs

• Python

• Ruby

• NodeJS

• Java

• PHP

• Objective-C

Page 15: Thumbor: Imagens do Jeito Certo

Exemplos de Libshttps://github.com/thumbor/libthumbor

from libthumbor import CryptoURL !crypto = CryptoURL(key='my-security-key') !encrypted_url = crypto.generate( width=300, height=200, smart=True, image_url='/path/to/my/image.jpg' )

Page 16: Thumbor: Imagens do Jeito Certo

Exemplo de Libs

require 'ruby-thumbor' !crypto = Thumbor::CryptoURL.new 'my-security-key' !url = crypto.generate :width => 200, :height => 300, :image => 'my.server.com/path/to/image.jpg' !# url will contain something like: # /2913921in321n3k2nj32hjhj3h22/my.server.com/path/to/image.jpg

https://github.com/thumbor/ruby-thumbor

Page 17: Thumbor: Imagens do Jeito Certo

Responsive Images

• Com thumbor é MOLE!

• srcset já disponível no Chrome Stable (34)

• É um draft na W3C, então mais browsers virão!

<img src="u8rjDobxgyAX-uXFeeg-JvFdWr4=/400x0/foo.jpg" srcset=“ /YbrTAi51EXok2o25X5Smn50BCl0=/480x0/foo.jpg 480w, /20swCCedkSK4t7vwdDskoxxYhfA=/960x0/foo.jpg 480w 2x ">

Page 18: Thumbor: Imagens do Jeito Certo

WebP

• Novo formato de imagens impulsionado pelo Google

• Consideravelmente menor que ambos PNG e JPG

• Suporte no thumbor é transparente para usuários

• Browsers que suportam WebP recebem WebP e os demais recebem a imagem no formato original

Page 19: Thumbor: Imagens do Jeito Certo

estamos contratandoimagens do jeito certo

github.com/globocom http://goo.gl/FYH5KX

Page 20: Thumbor: Imagens do Jeito Certo

Quer saber mais sobre as práticas de engenharia da globo.com?

http://globodev.tumblr.com

Obrigado!

Page 21: Thumbor: Imagens do Jeito Certo
Page 22: Thumbor: Imagens do Jeito Certo

Links Úteis

• github.com/thumbor

• github.com/thumbor/thumbor/wiki

• github.com/99designs/phumbor

• github.com/ceejayoz/laravel-phumbor

• square.github.io/pollexor/