Well-Architected Framework – Operational Excellence – Parte 1

Olá, pessoal! Tudo bem?

Hoje vamos para o nosso terceiro pilar do Well-Architected Framework, o pilar de Excelência Operacional.

Este pilar trata de aspectos relacionados à operação do nosso workload, nos apresentando melhores práticas e processos para a preparação, operação e evolução do mesmo, com base nos princípios de design citados a seguir.

Princípios de Design

  • Efetuar operações como código: A flexibilidade da nuvem, nos permite efetuar todas as operações em nosso workload como código, usando os mesmos recursos que utilizamos para gerenciar o fonte de nossas aplicações (VCS, CI/CD, etc);
  • Documentação anotada: Utilizando infraestrutura como código, podemos automatizar também a geração de documentação, mantendo-a sempre atualizada;
  • Fazer atualizações pequenas e reversíveis frequentemente: É importante também efetuarmos pequenas mudanças, garantindo a possibilidade de reversão das mesmas. Esta prática agiliza a entrega de atualizações benéficas ao workload, e facilita o rollback, caso necessário;
  • Refinar procedimentos frequentemente: Devemos revisar e otimizar os nossos procedimentos operacionais frequentemente (através de Game Days), isso permite a identificação de pontos de melhoria e garante uma maior aderência das operações em relação a evolução do workload;
  • Antecipar falhas: Precisamos testar os nossos cenários de falha antecipadamente, para entendermos o real impacto destas falhas sobre o sistema e validarmos a efetividade dos nossos procedimentos de recuperação;
  • Aprender com as falhas operacionais:  Aprender com falhas operacionais é importante para tornar o workload mais resiliente e robusto. Devemos também disseminar este aprendizado aos demais times da organização, para que todos aprimorem seus conhecimentos.

Abaixo, falaremos um pouco sobre cada uma das áreas referidas no pilar. Cada uma das áreas cita um estado operacional do workload.

Preparação

Para estarmos preparados para a excelência operacional devemos conhecer nossas prioridades operacionais, termos o design do nosso workload ajustado para operações e garantir que estamos prontos para colocar o workload no ar. Abaixo falaremos um pouco sobre cada uma dessas etapas.

Prioridades Operacionais

As prioridades operacionais devem ser identificadas a fim de garantir o sucesso do negócio, focando operações onde elas terão o maior impacto. Para isso devemos ter os nossos times bem alinhados em relação ao workload e as metas do negócio, considerando também regras de compliance e normativas externas. Podemos citar alguns exemplos de prioridade, como: o aperfeiçoamento das habilidades dos times, monitoramento avançado, automação de runbooks/playbooks e a otimização de performance do workload.

A AWS fornece algumas ferramentas para auxiliar nas prioridades operacionais:

  • AWS Support: O suporte da AWS oferece uma série de ferramentas que nos auxiliam na definição das nossas prioridades. Os planos de suporte são 24×7 e podemos utilizar o suporte técnico para obter insights sobre as melhores práticas operacionais, alinhadas às necessidades do workload;
  • AWS Cloud ComplianceO Cloud Compliance expõe todos os programas de compliance (ISO 27001, GDPR, etc) que a AWS participa, nos dando subsídios para confiarmos em seus processos internos, inclusive facilitando a obtenção das nossas certificações;
  • AWS Trusted Advisor: O Trusted Advisor avalia constantemente a nossa infraestrutura na AWS, apresentando pontos de melhoria que devemos trabalhar afim de adequar o workload às melhores práticas;
  • Business Support: Algumas features do Trusted Advisor, não estão disponíveis na versão básica dos planos de suporte. Para utilizarmos todo o potencial desta ferramenta é necessária a contratação do plano de suporte business;
  • Enterprise Support: O plano de suporte empresarial (enterprise) oferece um suporte mais direto e pessoal através dos gerentes de conta e engenheiros da AWS, que nos auxiliam a atingir os nossos objetivos técnicos e de negócio.

Design para operações

Quando projetamos o nosso workload, precisamos preparar ele para operações, pensando em como ele será implantado (deployed), atualizado e operado. Precisamos também utilizar práticas de engenharia para a redução de defeitos em runtime e riscos durante a implantação.

Utilizando instrumentação suficiente para entendermos o estado interno do nosso sistema e obtendo insights técnicos e de negócio, nos possibilitará uma melhor resposta aos eventos que ocorrem no workload e às variações no comportamento dos clientes.

As ferramentas da AWS que podemos utilizar neste processo são:

  • Amazon CloudWatch: O CloudWatch permite a criação de métricas e logs, possibilitando a obtenção de insights sobre o workload;
  • AWS CloudFormation:  O AWS CloudFormation permite que a criação de templates para a nossa infraestrutura. Podemos colocar estes templates sob controle de versão, o que nos permite automatizarmos o pipeline de deploy dos mesmos, reduzindo riscos operacionais;
  • AWS Developer Tools: A AWS possui uma série de ferramentas para desenvolvimento que podemos utilizar para gerir o código-fonte de nossas aplicações, compilar e implantar, garantindo a entrega segura de atualizações de forma automatizada;
  • AWS X-Ray: É mais uma ferramenta para a obtenção de insights, mas com uma abordagem distribuída. Ela permite o acompanhamento de todos os passos das requisições dos usuários, entre os diversos componentes de nossa arquitetura.
AWS X-Ray

Prontidão Operacional

Antes de colocar nosso workload em produção, precisamos ter certeza que estamos prontos para isso. Por este motivo é muito importante termos um processo (um checklist) para identificar o que está de acordo e o que ainda está pendente.

Devemos ter nossos runbooks e playbooks, com as devidas atividades de rotina e resolução de problemas, respectivamente. Vale salientar que a execução de testes e automação de todos os procedimentos executados no workload é de suma importância, principalmente para evitar erros humanos em sua execução. É importante também testar cenários de falha, para garantir que os processos de recuperação estão performando de acordo.

Outro ponto importante é garantirmos que o time está dimensionado de acordo e capacitado para operar o workload.

Cada cenário apresentará uma série de demandas diferentes, e para nos ajudar a suprir estas demandas, este pilar nos recomenda os seguintes serviços da AWS:

  • AWS Lambda: A flexibilidade e facilidade de integração da AWS Lambda viabiliza a automação de processos em resposta a eventos do nosso ambiente na AWS;
  • AWS Config: O Config permite verificarmos se os recursos pertencentes ao nosso workload estão de acordo com melhores práticas, e verificar mudanças nas stacks do CloudFormation;
  • AWS Systems Manager: Possibilita a automação de tarefas em instâncias EC2 e sistemas em ambientes híbridos.

Continua…

Era isso pessoal. O fechamento deste assunto será no próximo post.

Um grande abraço e boa semana!

Postado em AWS

2 comentários sobre “Well-Architected Framework – Operational Excellence – Parte 1

Deixe uma resposta