SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
CONSTRUINDO SITES 
MAIS INTELIGENTES 
COM GALEB 
Fernando Carolo 
globo.com
Galeb?
Roteador/proxy HTTP/1.1 
Inspiração: Heroku, App Engine
1990: 1 site = 1 servidor
2000: balanceador de carga
1 site = 1 IP = vários servidores 
Vários sites?
Virtual hosts 
Servidores precisam ser iguais 
Mudança = reload, restart
HTTP
Roteamento HTTP 
Virtual host = pool de servidores 
Mudanças sem interrupção
*.example 
galeb 
192.0.2.10 
one.example other.example
Galeb trabalha na camada 7 
Redundância via camada 4 
(hardware, ELB, etc)
Features
Políticas de balanceamento 
round robin 
least conn 
IP hash 
random
Métricas via statsd+Graphite [1,2] 
conexões ativas 
requisições/host 
status code (2xx, 3xx, 4xx, 5xx) 
tempo de resposta
Casos de uso 
ambientes de teste/IC 
red/black deploy 
PaaS
Como funciona?
Primeira tentativa: hipache [3] 
Node.js + node-http-proxy
Single-threaded
Versão atual: Galeb Router 
Baseado em Vert.x [4]
Java
Multi-threaded
Não bloqueante
Operação em cluster 
masterless 
sincronismo via event bus 
Escalabilidade horizontal
API RESTful 
Reflexos na próxima requisição
Roadmap
“Every good work of software 
starts by scratching a 
developer's personal itch.” 
–Eric S. Raymond
Substituir o hardware
Roteamento por URI 
vários back-ends para um site 
um back-end para vários sites
one.example 
galeb 
192.0.2.10 
one.example/blog one.example/*
Integração com Tsuru
Websockets
Tratamento de cookies 
controle de sessão 
teste A/B
Health-check ativo 
Controle de acesso 
HTTP/2.0
Demonstração
Onde?
galeb.io
github.com/globocom/galeb/
Use e contribua
Perguntas?
OBRIGADO 
Fernando Carolo 
carolo@corp.globo.com 
Este trabalho está licenciado com uma Licença Creative Commons 
Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional
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

Mais conteúdo relacionado

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

Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
Thiago Paes
 
Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)
elliando dias
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
Igor Sobreira
 

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

Como funciona a internet
Como funciona a internetComo funciona a internet
Como funciona a internet
 
Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
 
Introdução a Kubernetes
Introdução a KubernetesIntrodução a Kubernetes
Introdução a Kubernetes
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11
 
Python na Nuvem
Python na NuvemPython na Nuvem
Python na Nuvem
 
Atualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.xAtualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.x
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com Appium
 
Google app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyGoogle app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the ugly
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHP
 
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - NginxAlta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira Ágil
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
Efficient rails
Efficient railsEfficient rails
Efficient rails
 
Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
 
Plataforma Zope Plone na PGR
Plataforma Zope Plone na PGRPlataforma Zope Plone na PGR
Plataforma Zope Plone na PGR
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
 
Meteor - TechParty 2015
Meteor - TechParty 2015Meteor - TechParty 2015
Meteor - TechParty 2015
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 

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