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

Circuit Breaker: O que é isso?

Circuit Breaker: O que é isso?

O que acontece quando um ou mais serviços ficam indisponíveis ou respondem com alta latência? Já imaginou isso? Em um cenário que isso não é tratado de alguma maneira, pode gerar um efeito cascata e deixar toda a sua cadeia de serviços indisponíveis. Para mitigar isso existe o conceito de Circuit Breaker que simplesmente abre o circuito e deixa de mandar mensagem pro serviço problemático. Nesse talk vamos entender melhor sobre esse pattern e também veremos na prática como o mesmo funciona.

Avatar for Daniel Silva

Daniel Silva

October 07, 2022
Tweet

More Decks by Daniel Silva

Other Decks in Technology

Transcript

  1. Sumário - O que é Circuit Breaker? - Microsserviços e

    Circuit Breaker - Vantagens - Como implementar na prática? - Kubernetes e Circuit Breaker - Adoção de SidecarProxy - Implementação utilizando Mesh - Perguntas
  2. O que é Circuit Breaker? - Significa disjuntor - e

    é isso mesmo - Ajuda na prevenção de falha em cascata - Sistema de tolerância a falhas e resiliente - Protege o sistema negando requisições
  3. Microsserviços e Circuit Breaker - Sobre microsserviços - Arquitetura não

    tolerante a falhas - E se meu serviço ficar indisponível?
  4. Vantagens de se usar - Prevenção em problemas cascata -

    Melhora a estabilidade e resiliência do ecossistema - Deploys mais tranquilos - Entrega contínua facilitada
  5. Maneiras de implementar na prática - Uso de libs dentro

    da própria aplicação - opossum; Hystrix; Polly; PyBreaker; brakes - Utilizanção de Proxy
  6. Uso de SidecarProxy - Design Pattern que abstrai recursos da

    aplicação principal - Estende ou adiciona funcionalidade na aplicação - Requisição sempre passará pelo sidecar - Regras de comunicação ficam no proxy
  7. Istio - Projeto open source que visa diminuir a complexidade

    do ecossistema de serviços - Mantido pela CNCF - Malha de serviço - Monitoramento de tráfego em tempo real - Gerenciamento de tráfego - Auxilia na observabilidade e segurança
  8. Um pouco da estrutura do Istio - Funciona como um

    proxy que é injetado no pod - Gateway; VirtualService; DestinationRule
  9. Istio e Circuit Breaker - Detecção de problemas no serviço

    - Isolamento do serviço defeituoso - Baseado no threshold definido no manifesto - Ultrapassando o threshold o serviço é ejetado
  10. Bônus 1 - Fault Injection - Como que meu sistema

    se comporta mediante uma falha? - Técnica para injetar falhas na aplicação e entender o comportamento - Baseado em Engenharia do Caos
  11. Bônus 2 - Canary Deployment - E se eu quiser

    testar minha aplicação com 10% da base? - Técnica para lançar aplicação em estágios - Teste A/B - Feedbacks rápidos e precisos - Caso ocorra um problema, o rollback é muito mais simplificado - Sticky Session
  12. Referências - https://github.com/eusouodaniel/phpeste-2022 - https://istio.io/latest/docs/tasks/traffic-management/circuit-breaking - https://sfeir.github.io/kubernetes-istio-workshop/kubernetes-istio-wo rkshop/1.0.0/istio/07_circuit-breaker.html - https://doc.traefik.io/traefik/middlewares/http/circuitbreaker

    - https://rastko.tech/devops/sre/circuit-breaker/automation/blueprints /cloud/kubernetes/architecture/2021/04/27/kubernetes-cloud-native -circuit-breaker.html - https://blog.knoldus.com/circuit-breaker-in-microservices-istio