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.