Conceito e aplicação prática
Esteja você desenvolvendo aplicações nativas em nuvem na Amazon Web Services (AWS) ou modernizando sistemas existentes e migrando-os para a AWS, é preciso tomar muitas decisões durante todo o ciclo de vida dessa aplicação. Algumas delas serão baseadas em opinião ou experiência, como qual linguagem usar ou quais interfaces de programação de aplicativos (APIs) serão necessárias.
No entanto, muitas das decisões que são tomadas, como dimensionamento de instâncias da AWS ou tipo de armazenamento de dados, devem ser baseadas nas melhores práticas orientadas por dados. Adotar uma abordagem do tipo ajuda a criar tanto sistemas como ambientes bem arquitetados na AWS.
Conheça mais sobre o AWS Well-Architected Framework ao ler este post.
Claranet: AWS Well Architected Framework
O que é o AWS Well-Architected Framework?
O Well-Architected Framework AWS contém um conjunto de práticas recomendadas para criar e operar sistemas seguros, eficientes e econômicos na nuvem. As diretrizes de arquitetura foram elaboradas pela Amazon para clientes da AWS, mas podem também ser úteis para qualquer plataforma de nuvem.
A estrutura foi publicada pela primeira vez em 2015 e fornece uma abordagem consistente para que clientes e parceiros avaliam arquiteturas e coloquem em prática designs que podem ser atualizados ao longo do tempo.
O desenvolvimento da Well-Architected Framework permitiu a revisão regular de cargas de trabalho, identificando problemas de alto risco e registrando suas melhorias. A realização de uma revisão bem arquitetada permite uma abordagem conversacional em vez de um processo de auditoria e serve para estabelecer sistemas bem arquitetados que aumentam muito a probabilidade de sucesso do negócio.
A revisão documenta um conjunto de perguntas fundamentais que permitem entender se uma arquitetura específica se alinha bem com as melhores práticas de nuvem. A estrutura fornece uma abordagem consistente para avaliar sistemas em relação às qualidades que são esperadas de sistemas modernos, baseados em nuvem, e a correção que seria necessária para alcançar essas qualidades. À medida que a AWS continua a evoluir, a definição de bem arquitetado também será refinada.
Os 6 pilares do AWS Well-Architected Framework
O AWS Well-Architected Framework é o resultado de muitos anos de experiência com milhares de clientes criando arquiteturas seguras, de alto desempenho, resilientes e eficientes. O AWS Well-Architected está organizado em seis áreas ou pilares:
-
1- Segurança
O pilar de segurança do AWS Well-Architected Framework consiste em um conjunto de ferramentas que protege os ativos, dados e aproveita uma ampla gama de aplicações disponíveis na nuvem. Ao projetar uma carga de trabalho, um desenvolvedor deve ter o cuidado de colocar as melhores práticas que influenciam a segurança.
Eles devem ser capazes de controlar permissões para diferentes operações, detectar fontes de qualquer problema tecnológico de segurança, proteger sistemas e serviços e manter a integridade e confidencialidade dos dados por meio de métodos de proteção de dados.
-
2. Eficiência de desempenho
O pilar de eficiência de desempenho do AWS Well-Architected Framework fornece o poder de computação para usar com eficiência os recursos na nuvem. Seja para executar os sistemas com eficiência ou expandir e reduzir com base no requisito do sistema ou na carga de trabalho.
Os quatro componentes principais para revisão de eficiência de desempenho são seleção, revisão, monitoramento e compensações. Os desenvolvedores de nuvem que pretendem adotar uma abordagem orientada a dados serão capazes deestabelecer uma arquitetura de alto desempenho.
Os dados incluem todos os aspectos da arquitetura, desde o design até a seleção e configuração dos tipos de recursos.
A próxima etapa é revisar as opções regularmente com base na nuvem AWS e nos serviços em constante mudança. Monitorar o sistema rotineiramente garante que os desenvolvedores estejam atualizados e possam perceber rapidamente quaisquer desvios do desempenho esperado.
Às vezes, os desenvolvedores devem fazer concessões na arquitetura para melhorar o desempenho e utilizar técnicas como armazenamento em cache, compactação ou relaxamento de requisitos de desempenho consistentes e constantes.
-
3- Excelência operacional
O pilar de excelência operacional do AWS Well-Architected Framework abrange a capacidade de oferecer suporte a sistemas e desenvolvimento, executar cargas de trabalho operacionais, obter uma visão clara das operações e melhorar continuamente os processos e as operações de negócios para agregar valor aos negócios.
As áreas de prática para excelência operacional na nuvem envolvem organização, preparação, operação e evolução.
-
4- Otimização de custos
O pilar de otimização de custos do AWS Well-Architected Framework inclui a capacidade de executar operações e sistemas pelo menor preço possível para maximizar os lucros e oferecer maior valor comercial.
-
5- Confiabilidade
O pilar de confiabilidade do AWS Well-Architected Framework abrange a capacidade de uma carga de trabalho de fornecer os resultados esperados por meio de excelente desempenho funcional e consistente. Os desenvolvedores podem testar a capacidade da carga de trabalho e das operações ao longo do ciclo de vida para confiabilidade e operações consistentes.
Para obter segurança no sistema, os desenvolvedores devem trabalhar nas bases e, em seguida, detectar e prevenir falhas na arquitetura de carga de trabalho. O gerenciamento de alterações e falhas é outra parte do pilar de confiabilidade do AWS Well-Architected Framework.
-
6- Sustentabilidade
A sustentabilidade é um novo pilar do AWS Well Architected Framework que inclui o uso de práticas eficientes e conscientes da energia para reduzir o uso de recursos.
Significa uma boa oportunidade para tornar as operações mais eficientes com seleção de região inteligente, bom comportamento do usuário, dados, hardware, software e padrões de desenvolvimento.
Melhores práticas em AWS Well Architected Framework
A partir dos pilares do Well Architected Framework AWS é possível ter orientação detalhada e respostas fundamentais para avaliar e implementar arquiteturas. Mas, para colocá-los em prática, é necessário seguir algumas dicas. Confira a seguir as principais.
-
Segurança
Existem cinco áreas de melhores práticas dentro deste pilar: gerenciamento de identidade e acesso, controles de detecção, proteção de infraestrutura, proteção de dados e resposta a incidentes.
-
Eficiência de desempenho
As quatro áreas de melhores práticas neste pilar — seleção, revisão, monitoramento e compensações — dependem de dados para ajudá-lo a selecionar e desenvolver a infraestrutura e as tecnologias certas para manter a eficiência do desempenho.
-
Excelência operacional
Este pilar inclui três áreas de melhores práticas: preparar, operar e evoluir. Elas ajudam as equipes a entender suas necessidades de negócios e clientes e, em seguida, medir a obtenção dos resultados de negócios desejados.
-
Otimização de custos
A otimização de custos não diz respeito apenas ao valor gasto, mas ao impacto dos gastos com aplicativos. É importante incorporar dados de negócios por meio de eventos específicos para rastrear resultados como receita e impacto no desempenho. As principais áreas são: conscientização de gastos, recursos econômicos, correspondência de oferta e demanda e otimização ao longo do tempo.
-
Confiabilidade
Inclui três áreas principais de melhores práticas: fundamentos, gerenciamento de mudanças e gerenciamento de falhas, criando um sistema confiável, estável, previsível e altamente disponível. Ajuda a encontrar erros no início do desenvolvimento, evitar falhas e recuperar-se rapidamente de qualquer um que ocorra, com o objetivo de oferecer uma ótima experiência ao cliente.
Princípios de design do Well Architected Framework AWS
Para atingir os objetivos acima, existem alguns princípios críticos que podem ser usados:
Segurança
- 1 - Habilite a rastreabilidade: audite qualquer mudança ou ação em qualquer ambiente. Isso permite manter a transparência dentro da organização. Monitore os logs e tome medidas quando uma anomalia for detectada.
- 2 - Segurança em todas as camadas: aplique segurança em várias camadas, como VPC, Load Balancers, Security Groups, instâncias do EC2 etc.
- 3 - Automatize as melhores práticas de segurança: implemente a segurança como código e controle de versão todas as medidas de segurança para uso futuro.
- 4 - Proteja dados em trânsito e em repouso: os dados devem ser protegidos usando criptografia, tokens de autorização e mecanismos de controle de acesso.
- 5 - Mantenha as pessoas longe dos dados: os dados devem ser mantidos longe do manuseio por muitas pessoas. Daí a importância de implementar políticas e controle de acesso adequados.
Eficiência de desempenho
- 1 - Consuma tecnologias avançadas como serviço: use mais serviços gerenciados, pois reduzem os esforços de provisionamento, configuração, dimensionamento, backup etc.
- 2 - Torne-se global em minutos: como a AWS é implantada globalmente, você pode aproveitar isso e implantar seu aplicativo em várias regiões para ajudar a diminuir a latência do seu app.
- 3 - Use arquiteturas sem servidor: o uso de arquiteturas sem servidor ajuda você a executar seu código diretamente sem gerenciar nenhum outro serviço. Por exemplo, use o S3 para hospedar um site estático em vez de executá-lo em uma instância do EC2.
- 4 - Experimente com mais frequência: experimentar sua solução em várias métricas ajuda a identificar gargalos de desempenho e tomar as ações apropriadas.
Excelência operacional
- 1 - Operations as Code: automatize a criação de diferentes infraestruturas usando ferramentas como CloudFormation.
- 2 - Documentação automatizada a partir de anotações: é preciso documentar como os diferentes componentes do sistema interagem entre si. Sempre que houver alguma alteração nos sistemas, a documentação também deverá ser atualizada automaticamente.
- 3 - Faça mudanças frequentes e reversíveis: é uma boa ideia fazer mudanças pequenas e reversíveis no ambiente de produção, em vez de grandes mudanças. Isso ajuda a restaurar rapidamente para uma versão caso haja algum problema.
- 4 - Antecipe falhas: sempre projete seu sistema para antecipar e aceitar falhas, teste-as para tornar seu sistema mais robusto.
Otimização de custos
- 1 - Adote um modelo de consumo: pague apenas pelos recursos que estão realmente em uso e escale seus recursos para cima ou para baixo conforme a demanda.
- 2 - Meça a eficiência geral: continue medindo seus custos ao longo de um período de tempo para entender e acompanhar as tendências. Otimize onde e sempre que possível.
- 3 - Evite gastar dinheiro em operações: deixe todas as suas despesas operacionais na AWS e concentre-se em seus clientes e lógica de negócios.
- 4 - Analise e atribua despesas: atribua seus próprios recursos, analise e monitore as despesas de cada departamento ou equipe individual.
- 5 - Use serviços gerenciados e em nível de aplicativo para reduzir o TCO (Total Cost of Ownership): o uso de aplicativos gerenciados ajuda a economizar custos gerais de manutenção dos serviços
Confiabilidade
- 1 - Procedimentos de recuperação de teste: injete ou simule falhas em seu sistema e teste como ele se recupera da falha.
- 2 - Recupere automaticamente de falhas: garanta que as recuperações de falhas sejam sempre automatizadas, monitore as métricas no CloudWatch e tome as medidas adequadas sempre que os limites forem atingidos.
- 3 - Escale horizontalmente: evite usar arquiteturas monolíticas e use recursos menores para manter vários sistemas isolados uns dos outros.
- 4 - Pare de adivinhar capacidade: como a nuvem permite o gerenciamento dinâmico de capacidade, você nunca deve adivinhar sua capacidade de antemão.
Sustentabilidade
- 1 - Meça o impacto de sua carga de trabalho: faça uma simulação do impacto futuro e certifique-se de incluir todas as fontes de impacto, como uso do cliente e eventual desativação.
- 2 - Estabeleça metas de longo prazo: como reduzir os recursos de computação e armazenamento necessários. Elabore um plano para atingir esses objetivos, tendo em mente o crescimento futuro.
- 3 - Maximize a utilização implementando um design eficiente: isso significa eliminar ou minimizar recursos, processamento e armazenamento não utilizados.
- 4 - Compartilhe: use serviços gerenciados para maximizar os recursos, reduzindo a quantidade de infraestrutura necessária para dar suporte às cargas de trabalho.
Por que o Well-Architected Framework é importante para o seu negócio?
Uma infraestrutura bem arquitetada pode gerar resultados de negócios, levando a empresa a reduzir custos ou riscos de segurança e conformidade, melhorar a confiabilidade de seus sistemas principais para melhores experiências do cliente e muito mais.
Usar o AWS Well-Architected Framework para orientá-lo ao tomar decisões sobre seu ambiente de nuvem pode ajudar a garantir que sua empresa esteja projetando um ambiente confiável, escalável, seguro e eficiente para sistemas novos e modernizados.
O resultado ajuda suas equipes de DevOps a produzir e operar aplicações estáveis e eficientes que fornecem os resultados de negócios que sua organização deseja alcançar.
Claranet: Parceiro Premier AWS para Well Architected Framework
Quando conduzidas pelo Grupo Claranet, as melhores práticas dentro do Well-Architected Framework podem se tornar mensuráveis e observáveis dentro de sua empresa, ajudando você a fazer entregas de alta qualidade que o mercado exige.
Conheça, agora mesmo, os serviços AWS da Claranet.