Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations...

41
CONSTRUINDO SITES MAIS INTELIGENTES COM GALEB Fernando Carolo globo.com

Transcript of Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations...

Page 1: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

CONSTRUINDO SITES MAIS INTELIGENTES

COM GALEB

Fernando Carologlobo.com

Page 2: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Galeb?

Page 3: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Roteador/proxy HTTP/1.1

Inspiração: Heroku, App Engine

Page 4: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

1990: 1 site = 1 servidor

Page 5: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

2000: balanceador de carga

Page 6: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

1 site = 1 IP = vários servidores

Vários sites?

Page 7: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Virtual hosts

Servidores precisam ser iguais

Mudança = reload, restart

Page 8: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

HTTP

Page 9: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Roteamento HTTP

Virtual host = pool de servidores

Mudanças sem interrupção

Page 10: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

galeb

one.example other.example

192.0.2.10

*.example

Page 11: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Galeb trabalha na camada 7

Redundância via camada 4

(hardware, ELB, etc)

Page 12: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Features

Page 13: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Políticas de balanceamento

round robin

least conn

IP hash

random

Page 14: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Métricas via statsd+Graphite [1,2]

conexões ativas

requisições/host

status code (2xx, 3xx, 4xx, 5xx)

tempo de resposta

Page 15: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Casos de uso

ambientes de teste/IC

red/black deploy

PaaS

Page 16: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Como funciona?

Page 17: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Primeira tentativa: hipache [3]

Node.js + node-http-proxy

Page 18: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Single-threaded

Page 19: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Versão atual: Galeb Router

Baseado em Vert.x [4]

Page 20: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Java

Page 21: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Multi-threaded

Page 22: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Não bloqueante

Page 23: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Operação em cluster

masterless

sincronismo via event bus

Escalabilidade horizontal

Page 24: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

API RESTful

Reflexos na próxima requisição

Page 25: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Roadmap

Page 26: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

–Eric S. Raymond

“Every good work of software starts by scratching a

developer's personal itch.”

Page 27: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Substituir o hardware

Page 28: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Roteamento por URI

vários back-ends para um site

um back-end para vários sites

Page 29: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

galeb

one.example/blog one.example/*

192.0.2.10

one.example

Page 30: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Integração com Tsuru

Page 31: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Websockets

Page 32: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Tratamento de cookies

controle de sessão

teste A/B

Page 33: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Health-check ativo

Controle de acesso

HTTP/2.0

Page 34: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Demonstração

Page 35: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Onde?

Page 36: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

galeb.io

Page 37: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

github.com/globocom/galeb/

Page 38: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Use e contribua

Page 39: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Perguntas?

Page 40: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Este trabalho está licenciado com uma Licença Creative Commons Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional

OBRIGADO

Fernando [email protected]

Page 41: Construindo sites mais inteligentes com Galeb - Fernando Carolo (Globo.com), WeOp - The Operations Summit 2014

Links:

[1] https://codeascraft.com/2011/02/15/measure-anything-measure-everything/

[2] http://graphite.wikidot.com/

[3] https://github.com/hipache/hipache/

[4] http://vertx.io/

Créditos:

Slide 2: paraflyer/Flickr, https://www.flickr.com/photos/paraflyer/5803595153

Slide 4: Simon Bisson/Flickr, https://www.flickr.com/photos/sbisson/298160250

Slide 5: Shannan Muskopf/Flickr, https://www.flickr.com/photos/40964293@N07/3821896226

Slide 8: Stephan Mosel/Flickr, https://www.flickr.com/photos/moe/38241195

Slide 12: Norlando Pobre/Flickr, https://www.flickr.com/photos/npobre/2601582256

Slide16: Darryl Braaten/Flickr, https://www.flickr.com/photos/dbraaten/323401934

Slide 18: Andrew Magill/Flickr, https://www.flickr.com/photos/amagill/87559968

Slide 20: Michael Allen Smith/Flickr, https://www.flickr.com/photos/digitalcolony/8489709854

Slide 21: Alika Seu/Flickr, https://www.flickr.com/photos/28863939@N04/5478630263

Slide 22: Alan Stark/Flickr, https://www.flickr.com/photos/squeaks2569/8114399667

Slide 25: mrhayata/Flickr, https://www.flickr.com/photos/mrhayata/5260658138

Slide 27: jerry john/Flickr, https://www.flickr.com/photos/jerryjohn/63351388

Slide 30: Toshihiro Gamo/Flickr, https://www.flickr.com/photos/dakiny/8299559189

Slide 31: Wes Peck/Flickr, https://www.flickr.com/photos/wespeck/4960579336

Slide 34: Rede Globo/Divulgação

Slide 35: velkr0/Flickr, https://www.flickr.com/photos/velkr0/4014689

Slide 36: Seattle Municipal Archives/Flickr, https://www.flickr.com/photos/seattlemunicipalarchives/2692491283

Slide 37: Sebastian Niedlich/Flickr, https://www.flickr.com/photos/42311564@N00/3577957474

Slide 38: Ged Carroll/Flickr, https://www.flickr.com/photos/renaissancechambara/5084900444

Slide 39: Matthias Ripp/Flickr, https://www.flickr.com/photos/56218409@N03/15371262455

Todas as imagens do Flickr utilizadas através de uma licença Creative Commons