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

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

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.

Avatar for Marco Paulo Ollivier

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