Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Arquiteturas escaláveis e tolerantes a falhas

357 views

Published on

Material do Tech Talk sobre arquiteturas escaláveis e tolerantes a falhas, realizado recentemente na Rivendel

Published in: Software
  • Be the first to comment

  • Be the first to like this

Arquiteturas escaláveis e tolerantes a falhas

  1. 1. Arquiteturas Escaláveis e Tolerantes a Falhas Tech Talks
  2. 2. Objetivos • Construir arquiteturas escaláveis horizontalmente • Arquiteturas tolerantes a falhas em múltiplos componentes • Gestão de Mudança e deploys sem dor
  3. 3. Desafios Comuns • Controle do Estado em instâncias individuais • Componentes que permitam aumentar linearmente a escrita • Alta disponibilidade geográfica • Processos de deploy mais leves e seguros
  4. 4. Controle do Estado em instâncias individuais • Sessões Web/HTTP • Uploads e gerenciamento de arquivos locais • Caches locais
  5. 5. Como resolver?
  6. 6. Controle do Estado em instâncias individuais • Sessões Web/HTTP • Repositório de sessão compartilhado: Memcached, Redis, DynamoDB, etc • Uploads e gerenciamento de arquivos locais • Sistema de arquivos distribuído e compartilhado: S3, Azure Blob, OpenStack Swift, GlusterFS, etc • Caches locais • Sistemas de cache distribuídos: memcached, redis, Infinispan, Elastic Search, etc
  7. 7. Controle do Estado em instâncias individuais Arquiteturas de micro-serviços
  8. 8. Componentes que aumentem linearmente a escrita • Bancos de dados relacionais são os vilões comuns • Capacidade de escrita limitada pela capacidade de 1 único nó • Topologias multi-master são raras e normalmente caras
  9. 9. Como resolver?
  10. 10. Componentes que aumentem linearmente a escrita • Usar outros tipos de bancos de dados em conjunto com o relacional • Muitos bancos NoSql suportam particionamento: CAP Theorem • Implementar o máximo de processamento assíncrono, com abordagens de retentativas e capacidade de controlar a vazão
  11. 11. Alta disponibilidade geográfica • Falhas em datacenters individuais são comuns • Falhas em componentes individuais são ainda mais comuns • Cada vez mais precisaremos de arquiteturas distribuídas de alto volume
  12. 12. Como resolver?
  13. 13. Alta disponibilidade geográfica • Falhas em datacenters individuais são comuns • Topologias multi-datacenter, com nuvens públicas ou híbridas • Falhas em componentes individuais são ainda mais comuns • Privilegiar componentes de software que permitam replicação distribuída e preferencialmente sharding • Cada vez mais precisaremos de arquiteturas distribuídas de alto volume • Avaliar o uso de componentes clusterizáveis e sem limitações de armazenamento, escrita e leitura
  14. 14. Alta disponibilidade geográfica
  15. 15. Processos de deploy mais leves e seguros • Pipelines de CI/CD • Private PaaS • Arquiteturas de micro-serviços com containers
  16. 16. Como resolver?
  17. 17. Continuous Delivery/Deployment
  18. 18. Deployment Pipelines
  19. 19. Blue-Green Deployments Stacks inteiras em Produção simultaneamente Chaveamento em poucos segundos
  20. 20. Private PaaS, micro-serviços • Facilidade de promover aplicações e configurações para Produção, com migrações a quente • Tempos baixíssimos de deploy • Componentes mais granulares, mais fácil isolar impactos
  21. 21. Obrigado!

×