Todas as notas

NOTAS DE ESTUDO

AWS - Arquitetura e ecossistema

Princípios gerais do Well-Architected Framework

  • Pare de adivinhar suas necessidades de capacidade.
  • Teste os sistemas em escala de produção.
  • Automatize para facilitar a experimentação arquitetural.
  • Permita arquiteturas evolutivas:
    • Projete com base em requisitos que mudam.
  • Oriente a arquitetura por dados.
  • Melhore por meio de game days:
    • Simule aplicações em dias de vendas relâmpago.

Boas práticas da nuvem AWS - Princípios de projeto

  • Escalabilidade: vertical e horizontal.
  • Recursos descartáveis: os servidores devem ser descartáveis e fáceis de configurar.
  • Automação: serverless, infraestrutura como serviço, Auto Scaling...
  • Baixo acoplamento:
    • Monólitos são aplicações que acumulam funções e crescem com o tempo.
    • Divida-os em componentes menores e com baixo acoplamento.
    • Uma mudança ou falha em um componente não deve se propagar aos demais.
  • Serviços, não servidores:
    • Não use apenas EC2.
    • Use serviços gerenciados, bancos de dados, serverless e outras opções.

Well-Architected Framework

Seis pilares

  • 1 - Excelência operacional.

  • 2 - Segurança.

  • 3 - Confiabilidade.

  • 4 - Eficiência de desempenho.

  • 5 - Otimização de custos.

  • 6 - Sustentabilidade.

  • Os pilares não são aspectos isolados para equilibrar ou trocar: eles atuam em sinergia.

1 - Excelência operacional

  • Inclui executar e monitorar sistemas para entregar valor ao negócio e melhorar continuamente os processos e procedimentos de apoio.
  • Princípios de projeto:
    • Execute operações como código: infraestrutura como código.
    • Faça mudanças frequentes, pequenas e reversíveis, para poder revertê-las em caso de falha.
    • Refine os procedimentos operacionais com frequência e garanta que a equipe os conheça.
    • Antecipe falhas.
    • Aprenda com todas as falhas operacionais.
    • Use serviços gerenciados para reduzir a carga operacional.
    • Implemente observabilidade para obter informações acionáveis sobre desempenho, confiabilidade e custo.

2 - Segurança

  • Inclui proteger informações, sistemas e ativos enquanto entrega valor ao negócio, por meio da avaliação de riscos e de estratégias de mitigação.
  • Princípios de projeto:
    • Estabeleça uma base sólida de identidade: centralize a gestão de privilégios e reduza ou elimine a dependência de credenciais de longa duração. Aplique o princípio do menor privilégio com IAM.
    • Habilite a rastreabilidade: integre logs e métricas aos sistemas para responder e agir automaticamente.
    • Aplique segurança em todas as camadas: rede de borda, VPC, sub-rede, balanceador, instância, sistema operacional e aplicação.
    • Automatize as boas práticas de segurança.
    • Proteja dados em trânsito e em repouso com criptografia, tokenização e controle de acesso.
    • Mantenha pessoas afastadas dos dados: reduza ou elimine a necessidade de acesso direto ou processamento manual.
    • Prepare-se para incidentes de segurança: realize simulações de resposta e use ferramentas automatizadas para acelerar detecção, investigação e recuperação.

3 - Confiabilidade

  • É a capacidade de um sistema se recuperar de interrupções da infraestrutura ou dos serviços, adquirir recursos dinamicamente para atender à demanda e mitigar problemas como configurações incorretas ou falhas transitórias de rede.
  • Princípios de projeto:
    • Teste os procedimentos de recuperação: use automação para simular falhas e recriar situações que já causaram incidentes.
    • Recupere-se automaticamente das falhas: antecipe e corrija problemas antes de ocorrerem.
    • Escale horizontalmente para aumentar a disponibilidade agregada: distribua solicitações entre vários recursos menores sem um ponto de falha comum.
    • Pare de adivinhar a capacidade: mantenha o nível ideal para a demanda, sem provisionar recursos demais ou de menos. Use Auto Scaling.
    • Gerencie mudanças por automação: automatize as alterações de infraestrutura.

4 - Eficiência de desempenho

  • Inclui usar recursos de computação de forma eficiente para atender aos requisitos do sistema e manter essa eficiência conforme a demanda muda e as tecnologias evoluem.
  • Princípios de projeto:
    • Democratize tecnologias avançadas: quando elas se tornam serviços, você pode se concentrar no desenvolvimento do produto.
    • Torne-se global em minutos: implante com facilidade em várias Regiões.
    • Use arquitetura serverless: evite o trabalho de gerenciar servidores.
    • Experimente com mais frequência: facilite os testes comparativos.
    • Afinidade com a infraestrutura: conheça os serviços AWS disponíveis e seu funcionamento.

5 - Otimização de custos

  • Inclui executar sistemas que entreguem valor ao negócio pelo menor custo possível.
  • Princípios de projeto:
    • Adote um modelo de consumo: pague apenas pelo que usar.
    • Meça a eficiência geral com o CloudWatch.
    • Pare de gastar com a operação de data centers: a AWS cuida da infraestrutura e permite concentrar o trabalho nos projetos da organização.
    • Analise e atribua os gastos: identificar corretamente uso e custos ajuda a medir o retorno sobre investimento (ROI). Use tags.
    • Use serviços gerenciados e de aplicação para reduzir o custo de propriedade: por operarem em escala de nuvem, eles podem oferecer menor custo por transação ou serviço.

6 - Sustentabilidade

  • O pilar de sustentabilidade busca minimizar os impactos ambientais da execução de cargas de trabalho na nuvem.
  • Princípios de projeto:
    • Entenda seu impacto: estabeleça indicadores de desempenho e avalie melhorias.
    • Defina metas de sustentabilidade: estabeleça objetivos de longo prazo para cada carga de trabalho e modele o retorno sobre investimento (ROI).
    • Maximize a utilização: dimensione cada carga para aproveitar a eficiência energética do hardware e reduzir recursos ociosos.
    • Antecipe e adote ofertas mais eficientes de hardware e software, projetando com flexibilidade para incorporar novas tecnologias ao longo do tempo.
    • Use serviços gerenciados: serviços compartilhados reduzem a quantidade de infraestrutura. Os serviços gerenciados ajudam a automatizar práticas como mover dados pouco acessados para armazenamento frio e ajustar a capacidade de computação.
    • Reduza o impacto posterior das suas cargas na nuvem: diminua a energia e os recursos necessários para usar os serviços e a necessidade de os clientes atualizarem seus dispositivos.