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

Aplicações Flask Resilientes com Envoy e Kubernetes

felipe
November 20, 2019
24

Aplicações Flask Resilientes com Envoy e Kubernetes

felipe

November 20, 2019
Tweet

Transcript

  1. Ilusões da computação distribuída • A rede é confiável •

    A latência é zero • A largura de banda é infinita
  2. Ilusões da computação distribuída • A rede é confiável •

    A latência é zero • A largura de banda é infinita • A rede é segura
  3. Ilusões da computação distribuída • A rede é confiável •

    A latência é zero • A largura de banda é infinita • A rede é segura • A topologia não muda
  4. Ilusões da computação distribuída • A rede é confiável •

    A latência é zero • A largura de banda é infinita • A rede é segura • A topologia não muda • Existe um administrador
  5. Ilusões da computação distribuída • A rede é confiável •

    A latência é zero • A largura de banda é infinita • A rede é segura • A topologia não muda • Existe um administrador • O custo de transporte é zero
  6. Ilusões da computação distribuída • A rede é confiável •

    A latência é zero • A largura de banda é infinita • A rede é segura • A topologia não muda • Existe um administrador • O custo de transporte é zero • A rede é homogênea
  7. Resiliência re·si·li·ên·ci·a 1. [Física] Elasticidade que faz com que certos

    corpos deformados voltem à sua forma original. 2. [Figurado] Capacidade de rápida adaptação ou recuperação. https://michaelis.uol.com.br/moderno-portugues/busca/portugues-brasileiro/Resili%C3%AAncia%20/
  8. Envoy • Proxy L7, L3 e L4 Modelo OSI 1.

    Camada Física 2. Camada de Link de Dados 3. Camada de Rede 4. Camada de Transporte 5. Camada de Sessão 6. Camada de Apresentação 7. Camada de Aplicação
  9. Envoy • Proxy L7, L3 e L4 • Suporta HTTP/2,

    gRPC, MongoDB e DynamoDB • Service Discovery e Configuração dinâmica
  10. Envoy • Proxy L7, L3 e L4 • Suporta HTTP/2,

    gRPC, MongoDB e DynamoDB • Service Discovery e Configuração dinâmica • Escrito em C++ para não prejudicar a latência
  11. Kubernetes • Uma plataforma para gerenciar workloads e serviços •

    Configuração declarativa • Uso e compartilhamento eficiente de recursos
  12. Kubernetes • Uma plataforma para gerenciar workloads e serviços •

    Configuração declarativa • Uso e compartilhamento eficiente de recursos • Extensível
  13. Kubernetes • Uma plataforma para gerenciar workloads e serviços •

    Configuração declarativa • Uso e compartilhamento eficiente de recursos • Extensível • Mecanismos de suporte a alta disponibilidade
  14. kube-apiserver kube-controller-manager kube-scheduler kubectl web UI LB Traffic Pod Pod

    Pod kube-proxy kubelet Kubernetes Node Kubernetes Master etcd cluster Pod Pod Pod kube-proxy kubelet Pod Pod Pod kube-proxy kubelet Kubernetes Node Kubernetes Node Kubernetes
  15. Um pouco mais de Kubernetes • Como funciona a rede

    de um pod • O padrão “sidecar” • Service Mesh
  16. Service Mesh App Sidecar Pod Container Container IP: 10.0.32.7 App

    Sidecar Pod Container Container IP: 10.0.12.9 App Sidecar Pod Container Container IP: 10.0.21.2
  17. Conclusão • Sistemas distribuídos são complexos e exigem pensamento prévio

    • Envoy e Kubernetes podem ajudar a trazer confiabilidade
  18. Conclusão • Sistemas distribuídos exigem pensamento prévio • Envoy e

    Kubernetes podem ajudar a trazer confiabilidade • Padrões de resiliência podem evitar que problemas se propaguem pelo sistema