19/08/2022
Por Thiago Marques
O pai ta on!!
Seguindo com nossa análise do pilar de sustentabilidade, hoje concluiremos as questões do pilar e algumas formas de garantir a cobertura no framework.
Questão04: Como você aproveita os padrões de uso e acesso a dados para apoiar suas metas de sustentabilidade?
Diferente da questão03 onde o importante era a relação do gerenciamento do dado x a sustentabilidade, a questão04 foca em como você armazena o dado em si. Aqui a AWS está questionando assuntos como a política de backup e retenção de dados, o ciclo de vida dos dados, e até mesmo a movimentação deles entre a rede.
Como garantir:
1. Use tecnologias compatíveis com seus padrões de acesso/armazenamento de dados: Como sempre o primeiro ponto é iniciar com a monitoração de acesso e armazenamento de dados, contudo o principal ponto é ter uma política, ou um script no lambda que faça a migração dos dados conforme o padrão, por exemplo, armazenar aquele contrato que fechou a 3 anos em um S3 Glacier é muito melhor (para esse item) do que em um volume EBS.
2. Use políticas de ciclo de vida para excluir dados desnecessários: Além de excluir os dados desnecessários, esse item trata diretamente do ciclo de vida para o armazenamento. A melhor forma de garantir a conformidade nesse item é utilizar os lifecycles que a AWS proporciona, seja ele um S3 Intelligent-Tiering, um ECR lifecycle ou até mesmo o EBS lifecycle.
3. Minimize o provisionamento em excesso para armazenamento: Tudo em excesso faz mal, e aqui o ponto é que além de fazer mal para o bolso, faz mal para o ambiente. Para mitigar esse item o ideal é utilizar volumes elásticos, utilizar de recursos como LVM para dimensionar os discos e/ou o próprio EFS que escala conforme a sua necessidade, além de ser possível fazer o dedup e assim garantir a remoção de dados duplicados.
4. Minimize a movimentação de dados entre redes: Nesse ponto a AWS tem um mar de soluções, que vão desde utilizar o CDN para fazer cache de dados nos edge locations, passando por compreensão de HTTP requests no OpenSearch e até mesmo a utilização de TransitGateways para comunicação interna ao invés de se utilizar o backbone de interna para isso.
5. Faça backup de dados somente quando for difícil recriar: Aqui o mais importante é ter uma política de retenção mais justa, fazer backup de todos os servidores e mesmo de todas as workspaces de usuários acaba gerando mais consumo de energia para todo o ciclo. Note que além da retenção, escolher o que vai ser feito o backup também é crucial. Tirar o snapshot inteiro da instancia é uma opção, contudo muitas vezes o necessário é apenas o /opt/aplicacao
Questão05: Como seu gerenciamento de hardware e suas práticas de uso apoiam suas metas de sustentabilidade?
Ligado diretamente ao principio de adoção de ofertas mais eficientes de hardware, essa questão vai lidar com a forma com que se gerencia o hardware dentro do workload. Aqui o gerenciamento cobrado é diretamente a forma com que se escolhe os requisitos para de hardware do ambiente, sugerindo sempre a utilização necessária (sem excessos) e mais atual.
Como garantir:
1. Utilize a quantidade mínima de hardware: Utilizar serviços serverless, ou mesmo o combo de elasticidade (cloudwatch metrics + elb + asg) é uma ótima forma de garantir. Adicionado a isso esse ponto também solicita uma abordagem mais ‘inteligente’, com processos automatizados para processamento cíclico, como fechamento de quarter.
2. Utilize tipos de instancia com impacto menor: Item diretamente ligado a atualização das instancias x a utilização, além da utilização de instancias spots e/ou bustable. Para garantir esse item é necessário estar antenado com os novos lançamentos de tipos de instancias e/ou modernizar o workload para processadores com um custo energético menor com o gráviton.
3. Use serviços gerenciados: Outro item ligado diretamente com o princípio do pilar. Usar serviços gerenciados garante ‘menos’ responsabilidade no modelo de sustentabilidade, pois toda a administração passa a ser também da AWS. Assim utilizar o lifecycle do S3, ASG, Fargate, EKS e RDS são pontos principais aqui.
4. Otimize o uso de GPUs: GPUs possuem um poder de processamento absurdo (para se ter uma comparação, um processador CPU lançado em 2013, tem a mesma capacidade que um processador GPU lançado em 2005 em questões de GB/s), contudo tem um preço bem alto no que tange a impacto ambiente, por conta da energia que consome. Assim se pode garantir esse item com a utilização de filas no SQS que iniciam uma instancia em GPU apenas quando necessário, ou utilizar o Amazon Elastic Graphics, e assim ter uma aceleração gráfica flexível.
Questão06: Como o seu processo de desenvolvimento e implantação apoia suas metas de sustentabilidade?
Ao passo que a questão02 cobra dos padrões de comportamento, a questão03 cobra dos padrões de arquitetura, e sim, nesse ponto é onde temos cross-overs entre os pilares de performance, confiabilidade e custos. A questão no que tange a sustentabilidade, analisa como funcionam a análise de performance e componentes ociosos, assim como a retro compatibilidade dos dispositivos para consumir o seu workload.
Como garantir:
Escale a infra com a necessidade do usuário:
1. Mantenha seu workload atualizado: nesse ponto o importante não é atualização do hardware, e sim do software, e para isso existem formas como patch manager, SSM, modernização da arquitetura em si, e até mesmo monitoração de métricas com o cloudwatch.
2. Aumente a utilização dos ambientes de compilação: Esse item é justamente para provocar a utilização de infraestrutura como código, o que facilita a ativação/desativação mais rápida e eficiente, assim utilizar cloudformation e o próprio SSM são opções, ou até mesmo garantir a utilização de hibernation nos EC2 pode ajudar.
3. Use farms de dispositivos gerenciados para testes: Esse item vai muito de encontro com o da questão03 na utilização de retro compatibilidade, contudo o foco aqui é realizar os testes em farm de dispositivos diversas para entender o impacto de hardware que a aplicação/workload tem. Assim a utilização de Devices Farm é uma ótima opção, uma vez que a grande maioria das aplicações hoje são web.
That’s all folks! Be Happy!!!
Thiago Marques
Technical Account Manager
thiago.marques@darede.com.br
Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.