Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Traefik: da PoC a Prod - v1.0.0 - GDG Rio DevFest 2018

Traefik: da PoC a Prod - v1.0.0 - GDG Rio DevFest 2018

Versão da apresentação feita no GDG DevFest Rio 2018 =)

Algumas soluções de reverse proxy e de load balancer existentes se mostram complexas para dar manutenção, além da necessidade de uma quantidade grande de recursos de hardware. O Traefik é um reverse proxy/load balancer simples, rápido, dinâmico, leve e bem poderoso, além de ser um projeto Open Source escrito em Go. O intuito é apresentarmos algumas das principais funcionalidades do Traefik, mostrar como é fácil utiliza-lo e, por fim, fazer uma comparação com algumas outras soluções similares que existem no mercado. Vamos mostrar também alguns cases de sucesso que mostram como realmente pode ser vantajoso usar o Traefik no ambiente produtivo de qualquer projeto.

Marco Paulo Ollivier

November 17, 2018
Tweet

More Decks by Marco Paulo Ollivier

Other Decks in Programming

Transcript

  1. Marco Ollivier - @marcopollivier • Analista de Sistemas @ Infnet

    • Software Engineer @ OLX • • Segundo o Datafolha, 7 anos de experiência • Entusiasta de Astronomia e Física Go, Java, Docker e Linux
  2. Agenda - Um pouco de teoria - O que é

    um Proxy Reverso? - O que é um Balanceador de Carga? - Por que mudar? - Breve resumo das soluções do mercado - Apresentando o Træfik - Funcionalidades - Instalação - da Poc - Prova de Conceito - a Prod - Casos de sucesso - Resumo - Agradecimentos - Perguntas
  3. Micro Serviços • Desacoplamento • Escalabilidade • Análise e investigação

    mais fácil e rápida • Maior facilidade na Entrega Contínua Porém… • Gerenciar fica um pouco mais complicado
  4. Reverse Proxy Cenário… • Grupo com múltiplos microsserviços • Acesso

    externo ao seu contexto de solução: ◦ Seja Internet ◦ Serviços de terceiros
  5. Reverse Proxy > Como saber o que vai para onde?

    > Como redirecionar as requisições?
  6. Reverse Proxy • api.domain.com vai acessar as APIs via internet

    • domain.com/loja vai acessar um website via internet • backoffice.domain.com vai acessar uma api de backoffice via interner • api.private-domain vai acessar a mesma API de dentro da rede interna
  7. Load Balancer Retornando ao problema... O que aconteceria se na

    nossa API de Adesão, só tivéssemos um servidor atendendo as requisições?
  8. Load Balancer Retornando ao problema... O que aconteceria se na

    nossa API de Adesão, só tivéssemos um servidor atendendo as requisições?
  9. Load Balancer • Como garantir minimamente minha disponibilidade? • Como

    garantir que se meu servidor morrer minha aplicação não vai cair? • Como diminuir as chances de não atender requisições devido momentos de pico de acesso? • Ou até mesmo… como controlar a porcentagem de requisições que vão para uma determinada máquina?
  10. Load Balancer - Terminologia Frontends Conjunto de regras que determinam

    como as requisições de entrada serão redirecionadas para o backend.
  11. Load Balancer - Terminologia Backends - Conjunto de servidores que

    recebem os requests redirecionados. - É o ponto onde haverá de fato o balanceamento da carga
  12. • Não são dinâmicos - vários restarts • Configuração complicada

    - arquivos conf gigantes • Demandam muita infra - alto footprint • Difícil manutenção • Atendem a uma solução muito específica • Pagos • etc… etc… etc Algumas soluções existentes Zuul
  13. • Apenas um pequeno e único binário • Hot reloading…

    sem restarts • Load-balancing • Circuit Brakers • Suporte a Websockets • HTTP2 • Healthchecks • Monitoramento https://www.youtube.com/watch?v=RgudiksfL-k
  14. Gerenciador de pacote Via Helm ( Kubernetes) $ helm install

    stable/traefik Via Homebrew $ brew install traefik
  15. Docker e Docker Compose $ docker run -d -p 8080:8080

    -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik ou…
  16. Que comece a mágica... Vamos adicionar este serviço ao arquivo

    docker-compose.yml $ docker-compose up -d whoami
  17. Alguns processos em batch estavam rodando - executando remotamente chamadas

    de sucesso - executando remotamente chamadas de falha - executando local chamadas de sucesso
  18. • Simples de instalar • Simples de configurar • Não

    precisa restartar • Atende uma ampla gama de soluções de clusterização e orquestração • Monitoramento simples • Leve e rápido