Well Architected Framework

2

Well Architected Framework

[lwptoc min=”1″ depth=”6″ numeration=”none” numerationSuffix=”dot” width=”full” float=”left”]

A AWS com seus vários anos de experiência, observando e mensurando a performance de uso de sua infraestrutura em nuvem, 

percebeu a dificuldade da comunidade global em aplicar configurações rapidamente e ainda ter que lidar com o ritmo acelerado de mudanças da sua plataforma, frente a isso a AWS resolveu criar um documento chamado Well Architected Framework para ajudar os arquitetos de nuvem a criarem infraestruturas com as melhores práticas possíveis, sem necessidade de pesquisas extencivas e discussões intermináveis em fóruns, no documento, estão descritos através de perguntas e respostas, os mais altos níveis de segurança, performance, resiliência e eficiência que podem ser adotados no uso da nuvem da AWS.

O documento é baseado em cinco pilares, são eles: confiabilidade, eficiência de performance, excelência operacional, segurança, e otimização de custos.

O Framework fornece uma didática eficiente para que usuários da plataforma avaliem possíveis experiências relatadas com arquiteturas descritas em suas páginas e com isso, possam implementar as melhores práticas.

Infelizmente o Well Architected Framework ainda esta em inglês, então você precisa ter noções básicas do idioma.

AWS Well Architected Tool

Mas não desista por isso, a AWS não é a maior do mundo por acaso, ela pensa em tudo, e para facilitar a vida de seus usuários ela criou algo fantástico, o AWS Well Architected Tool, uma ferramenta que aborda todo o conteúdo do documento original, mas sem necessidade de buscar no PDF, agora você simula todas as possíveis soluções através de perguntas e respostas e após marcar todas as respostas pertinentes ao seu negócio, ele fornece um relatório completo sobre as melhores práticas baseadas nos 5 pilares do framework. 😀 

Quer aprender usar a ferramenta? O guia do usuário pode ser acessado aqui

O Well Architected Framework é dividido em cinco grandes pilares, vejamos abaixo cada um deles, com seus respectivos principios de design e as melhores práticas para cada um deles.

 

aws well architected framework
Créditos da Imagem: Jerry Hargrove – The 5 Pillars of the AWS Well Architected Framework

Pilar 1. Excelência Operacional

O pilar de excelência operacional é o primeiro do AWS Well Architected Framework e inclui a capacidade de executar sistemas e obter insights sobre suas operações a fim de agregar valor aos negócios e melhorar continuamente os processos e procedimentos de suporte.

Veja orientações detalhadas aqui whitepaper do Pilar de Excelência Operacional.

Princípios de design

A estrutura deste princípio é baseada em cinco pilares:

Executar operações como código:

Na nuvem, você pode aplicar a mesma disciplina de engenharia que você usa para o código do aplicativo em todo o seu ambiente. Se você definir sua carga de trabalho (aplicativos, infraestrutura etc.) como código você pode atualizar com código. Você pode escrever seus procedimentos operacionais e automatizar sua execução acionando-os em resposta a eventos. Ao executar operações como código, você limita o erro humano e permiti respostas consistentes aos eventos.

Documentação anotada: 

Em um ambiente local, a documentação é criada à mão, usada por seres humanos e difícil de manter e sincronizar com o ritmo da mudança. Na nuvem, você pode automatizar a criação de documentação após cada compilação (ou automaticamente anotar documentação artesanal). A documentação anotada pode ser usado por humanos e sistemas. Use anotações como uma entrada para o seu código de operações.

Faça alterações frequentes, pequenas e reversíveis: 

Projete cargas de trabalho para permitir que os componentes sejam atualizados regularmente para aumentar o fluxo de mudanças na sua carga de trabalho. Faça alterações em pequenos incrementos que podem ser revertidos se não ajudarem na identificação e resolução de problemas introduzidos no seu ambiente (não afetando os clientes quando algo der errado).

Refine os procedimentos operacionais com freqüência:

Conforme você usa operações e procedimentos, procure oportunidades para melhorá-los. À medida que você evolui sua carga de trabalho, evolua seus procedimentos adequadamente. Configure regras para revisar e validar se todos os procedimentos são eficazes e que equipes estão familiarizadas com eles

Antecipar falha: 

Realize exercícios “pré-mortem” para identificar fontes potenciais de falha para que possam ser removidas ou mitigadas. Teste seus cenários de falha e valide sua compreensão de impacto. Teste seus procedimentos de resposta para garantir que sejam eficazes e que as equipes estão familiarizadas com sua execução. Configure dias de jogo regulares para testar a carga de trabalho e as respostas da equipe a eventos simulados.

Aprenda com todas as falhas operacionais:

Impulsione a melhoria através de lições aprendidas de todos os eventos e falhas operacionais. Compartilhe o que é aprendido entre equipes e por toda a organização.

Melhores Práticas

As equipes operacionais precisam entender as necessidades de negócios dos clientes para dar suporte aos resultados. 

Equipes operacionais criam e usam procedimentos para responder a eventos operacionais e validar sua eficácia para dar suporte às necessidades de negócios do cliente.

Equipes operacionais também coletam métricas para medir resultados. Tudo muda continuamente – seu contexto de negócios, prioridades, necessidades do cliente etc. É importante projetar operações para suportar a evolução ao longo do tempo e dar resposta adequada à mudanças e incorporar as lições aprendidas através de seu desempenho.

Pilar 2. Segurança

Segurança é um pilar de extrema relevância para a AWS, aliás, a segurança da nuvem na AWS é a maior prioridade. Este pilar aborda a capacidade de proteger informações, sistemas e dados em geral, tudo isso, sem perder o valor do negócio, sempre possibilitando a criação de avaliações para mitigar riscos e criar estratégias eficazes contra quase qualquer tipo de insidente de segurança.

Este pilar fornece orientações com base nas melhores práticas arquitetando sistemas seguros e a prova de falhar.

Veja orientações detalhadas sobre a este pilar aqui whitepaper Pilar de Segurança.

Princípios de design

Como dito anteriormente, segurança é um assunto sério para a AWS, por isso no whitepaper sobre de Segurança existem vários princípios que podem ajudá-lo a fortalecer segurança, entre eles estão os seguintes(tradução na íntegra):

Implementar uma base sólida de identidade: 

Implementar o princípio de privilégios mínimos e forçar a separação de tarefas com a devida autorização para cada interação com seus recursos da AWS.

Centralizar o gerenciamento de privilégios e reduzir ou até eliminar a dependência de credenciais de longo prazo.

Ative a rastreabilidade:

Monitore alertas e audite ações e alterações para seu ambiente em tempo real. Integre logs e métricas aos seus sistemas para interação automática e tomada de decisão imediata.

Aplique segurança em todas as camadas: 

Em vez de se concentrar apenas na proteção de uma única camada externa, aplique uma abordagem de defesa profunda com outros controles de segurança.

Aplicar a todas as camadas (por exemplo, rede de borda, VPC, sub-rede, balanceador de carga, todas as instâncias, sistema operacional e aplicativo).

Automatize as melhores práticas de segurança:

Automação baseada em software e mecanismos de segurança melhoram sua capacidade de dimensionar riscos de segurança mais rapidamente e de forma econômica.

Crie arquiteturas seguras, incluindo a implementação de controles definidos e gerenciados como código em modelos controlados por versão.

Proteger dados em trânsito e em repouso:

Classifique seus dados em níveis de sensibilidade e use mecanismos, como criptografia, tokenização e controle de acesso apropriado.

Mantenha as pessoas afastadas dos dados:

Crie mecanismos e ferramentas para reduzir ou eliminar a necessidade de acesso direto ou processamento manual de dados. como resultados, isto reduz o risco de perda ou modificação e erro humano ao manusear dados sensíveis.

Preparar-se para eventos de segurança:

Prepare-se para um incidente tendo um processo de gerenciamento de incidentes alinhado aos requisitos da sua organização.

Execute simulações de resposta a incidentes e use ferramentas com automação para aumentar sua velocidade de detecção, investigação e recuperação.

Well Architected Framework

pilares do aws well architected framework
Créditos da Imagem: CloudSoft

Melhores Práticas

Antes de arquitetar qualquer sistema, é necessário implementar práticas que influenciam a segurança.

Você deve controlar quem pode fazer o que. Além disso, você precisa identificar incidentes de segurança, proteger seus sistemas e serviços e manter a confidencialidade e a integridade dos dados por meio da proteção de dados.

Você precisa ter um processo bem definido para responder a incidentes de segurança. Essas ferramentas e técnicas são importantes porque ajudam evitar perdas financeiras ou cumprir obrigações regulatórias.

O Modelo de responsabilidade compartilhada da AWS permite que as organizações atinjam objetivos de segurança e conformidade. 

A AWS protege fisicamente a infraestrutura dos serviços em nuvem. Portanto, você pode se concentrar no uso de serviços para atingir seus objetivos.

Pilar 3. Confiabilidade

O pilar de confiabilidade esta diretamente ligado a capacidade de um sistema se recuperar de interrupções na infraestrutura ou no serviço, deste modo, você pode gerenciar recursos de computação dinamicos para atender as demandas necessárias e mitigar interrupções, utilizando as boas práticas de confiabilidade você evita erros comuns como configurações incorretas ou problemas transitórios de rede, Além disso, este pilar fornece orientações detalhadas sobre as melhores práticas para arquitetar sistemas confiáveis ​​na AWS.

Veja informações completas sobre este pilar clicando aqui whitepaper Pilar de Confiabilidade.

Princípios de design

Conheça os princípios que podem ajudá-lo a aumentar a confiabilidade:

Procedimentos de testes para recuperação:

Na nuvem, você pode testar tanto os sistemas quanto os procedimentos de recuperação de desastres antes deles acontecerem. Ou seja, você pode usar a automação para simular diferentes falhas ou para recriar cenários baseados em experiência de falhas.

Recuperação automatica de falhas:

Monitore um sistema para obter as metricas e indicadores de desempenho (KPIs), desta forma, você pode acionar a automação quando um o limite é violado.

Escale horizontalmente para aumentar a disponibilidade agregada do sistema: 

Substitua um recurso grande por vários recursos pequenos para reduzir o impacto de uma única falha no sistema geral.

Distribuir solicitações em vários recursos menores para garantir que eles não compartilhem ponto comum de falha.

Pare de adivinhar a capacidade

Uma causa comum de falha em infraestruturas locais é a saturação de recursos do sistema, ou seja, a capacidade dos seus servidores não suportam por exemplo, os acesso e seus serviços inevitavelmente entram em colapso e tudo fica offline.

Ao utilizar recursos na nuvem você pode monitorar a demanda em tempo real ou até mesmo automatizar a adição ou remoção de recursos para manter o nível ideal que satisfaça a demanda sem excesso ou subprovisionamento. 

Gerenciar mudanças por automação:

Alterações em sua infraestrutura devem ser via automação. Ou seja, não é recomendado que isso seja feito manualmente.

Melhores Práticas

Para obter confiabilidade, um sistema deve ter uma base e um monitoramento bem planejados, com mecanismos para lidar com mudanças na demanda ou nos requisitos.

O sistema deve ser projetado para detectar falhas e se curar automaticamente.

Antes de arquitetar qualquer sistema, os requisitos fundamentais que influenciam a confiabilidade devem estar em vigor. Por exemplo, você deve ter largura de banda de rede suficiente para o seu datacenter. Entretanto, às vezes esses requisitos são negligenciados (porque estão além do escopo de um único projeto). Essa negligência pode ter um impacto significativo na capacidade de fornecer um sistema confiável.

Em um ambiente local, esses requisitos podem causar longos prazos de entrega devido a dependências e, portanto, devem ser incorporados durante o planejamento inicial.

Com a AWS, a maioria desses requisitos fundamentais já está incorporada ou pode ser tratada conforme necessário. 

A nuvem foi projetada para ser essencialmente ilimitada; portanto, é de responsabilidade da AWS atender aos requisitos de capacidade de rede e computação, enquanto você pode alterar o tamanho e a alocação de recursos, como o tamanho dos dispositivos de armazenamento, sob demanda.

Pilar 4. Eficiência de desempenho

Este pilar concentra-se no uso eficiente de recursos de computação para atender aos requisitos e como manter a eficiência conforme as tecnologias evoluem.

Este documento fornece as melhores práticas e orientações detalhadas para você implantar uma arquitetura focada em eficiência e desempenho.

Para aprender tudo sobre este pilar, acesse o PDF clicando aqui: whitepaper Pilar de Eficiência de Desempenho.

Princípios de design

Conheça os princípios de design para Eficiência de Desempenho

Democratize tecnologias avançadas:

Tecnologias mais difíceis de implementar podem se tornar mais fácil de consumir. Por exemplo, bancos de dados NoSQL, transcodificação de mídia e aprendizado de máquina são tecnologias que requerem conhecimentos avançados. Na nuvem, essas tecnologias se tornam serviços que podem ser implementados com poucos cliques. Isso permite que sua equipe se concentre no desenvolvimento de produtos(atividades fim) em vez de dedicar horas e horas de trabalho como comumete é feito em datacenters locais.

Torne-se global em minutos:

Implante seu sistema facilmente em várias Regiões da AWS ao redor do mundo com apenas alguns cliques. Isso permite que você forneça menor latência e uma melhor experiência para seus clientes com custo mínimo.

Use arquiteturas sem servidor:

Na nuvem, arquiteturas sem servidor eliminam a necessidade de executar e manter maquinas locais para executar atividades tradicionais de computação.

Arquiteturas no servidor removem a carga operacional de gerenciar esses serviços e também pode reduzir os custos transacionais porque esses serviços operam em escala de nuvem.

Experimente com mais frequência:

Com recursos virtuais e automatizáveis, você pode executar rapidamente testes comparativos usando diferentes tipos de instâncias, armazenamento ou configurações.

Simpatia mecânica: 

Use a abordagem tecnológica mais alinhada para o que você está tentando alcançar. Por exemplo, considere o acesso a dados padrões quando você seleciona abordagens de banco de dados ou armazenamento.

Melhores Práticas

Adote uma abordagem orientada a dados para selecionar uma arquitetura de alto desempenho.

Reúna dados sobre todos os aspectos da arquitetura, desde o design de alto nível até a seleção e configuração dos tipos de recursos.

Ao revisar suas escolhas de forma cíclica, você garantirá que está aproveitando a nuvem da AWS em constante evolução.

O monitoramento garantirá que você esteja ciente de qualquer desvio do desempenho esperado e poderá tomar medidas. Por fim, sua arquitetura pode fazer trocas para melhorar o desempenho, como usar compactação ou armazenamento em cache ou relaxar os requisitos de consistência.

A solução ideal para um sistema específico variará com base no tipo de carga de trabalho que você possui, geralmente com várias abordagens combinadas.

Sistemas bem arquitetados usam várias soluções e permitem diferentes recursos para melhorar o desempenho.

Pilar 5. Otimização de Custos

A otimização de custos é um processo contínuo de aprimoramento de um sistema durante todo o seu ciclo de vida. Portanto, desde o design inicial da sua primeira prova de conceito até a operação contínua de cargas de trabalho de produção, desta forma, você pode adotar as práticas deste pilar para construir e operar sistemas com reconhecimento de custos que atinjam resultados comerciais, minimizando custos e permitindo que seus negócios maximizem seu retorno sobre o investimento(ROI).

Um sistema com otimização de custos utilizará totalmente todos os recursos, alcançando um preço mais baixo possível ao mesmo tempo em que você atende os seus requisitos funcionais.

Este witepaper fornece orientações detalhadas para projetar sua carga de trabalho, selecionar seus serviços, configurando e operando e aplicando otimização de custos na prática.

Princípios de design

Adote um modelo de consumo: 

Pague apenas pelos recursos de computação que você consumir e aumenta ou diminua. Por exemplo, desenvolvimento e ambientes de teste geralmente são usados ​​apenas oito horas por dia durante a semana de trabalho. Portanto, você pode desligar suas instâncias no restante do período.

Meça a eficiência geral:

Meça os custos associados à sua entrega de conteúdo. Use esta medida para entender os ganhos obtidos com o aumento da produção e a redução custo.

Pare de gastar dinheiro em operações de data center:

Na nuvem, você não precisa fazer o trabalho pesado, provedoras de nuvem como a AWS fazem todo o trabalho de descarga de lenha (rss), você pode focar apenas em sua atividade fim.

Analisar e atribuir despesas: 

A nuvem facilita a você identificar com precisão o uso e o custo dos sistemas, ou seja, permite atribuição transparente dos custos de TI às fontes de receita. Em conclusão, você pode aferir melhor o retorno do investimento (ROI) e dá aos proprietários do sistema a oportunidade de otimizar seus recursos e reduzir custos.

Use serviços gerenciados para reduzir o custo de propriedade:

Na nuvem, serviços gerenciados removem a carga operacional da manutenção de servidores para tarefas como enviar email ou gerenciar bancos de dados.

Melhores Práticas

Assim como nos outros pilares, há trocas a serem consideradas. Por exemplo, você deseja otimizar a velocidade de lançamento no mercado ou o custo? Em alguns casos, é melhor otimizar a velocidade – entrar no mercado rapidamente, enviar novos recursos ou simplesmente cumprir um prazo – em vez de investir na otimização de custos inicial.

Às vezes, as decisões de projeto são guiadas pela pressa, em vez de dados empíricos, pois sempre existe a tentação de compensar “just-in-case”, em vez de gastar tempo realizando comparações para a implantação mais econômica. Como resultado, isso geralmente leva a implantações drasticamente superprovisionadas e sub-otimizadas.

O uso das instâncias e recursos apropriados para o seu sistema é essencial para a economia de custos. Por exemplo, um processo de geração de relatórios pode levar cinco horas para ser executado em um servidor menor. No entanto se você utilizar um servidor com 5 vezes mais capacidade, o processo poderia ser conluído em apenas uma hora, Entratanto, o servidor maior custa o dobro do menor.

Ambos os servidores oferecem o mesmo resultado, mas o menor terá um custo maior ao longo do tempo. Em conclusão, um sistema bem arquitetado utilizará os recursos mais econômicos, o que pode ter um impacto econômico significativo e positivo.

Conclusão sobre o Well Architected Framework

O AWS Well Architected Framework fornece as melhores práticas de arquitetura nos cinco pilares para projetar e operar sistemas confiáveis, seguros, eficientes e econômicos na nuvem.

A estrutura fornece um conjunto de perguntas que permitem revisar uma arquitetura existente ou proposta. Além disso, ele também fornece um conjunto de práticas recomendadas da AWS para cada pilar.

Usar o AWS Well Architected Framework em sua arquitetura ajuda a produzir sistemas estáveis ​​e eficientes, o que permite que você se concentre nos requisitos funcionais.

Conheça mais sobre a AWS em nossos outros textos: Infraestrutura Global da AWS, O que é a computação em nuvem e muito mais.

2 COMENTÁRIOS