Olá, pessoal! Tudo bem?
Hoje vamos voltar a série sobre o Well-Architected Framework, encerrando a segunda parte do Cost Optimization Pillar (primeira parte aqui), falando sobre a importância de estarmos cientes sobre os gastos relacionados ao workload, e estratégias de otimização futuras.
Conscientização sobre as despesas
Entender os custos agregados aos workloads da empresa, são de suma importância para identificarmos pontos em que podemos reduzir custos e onde podemos evoluir dentro de um orçamento definido. Abaixo, citaremos alguns aspectos estabelecidos no guideline, que devemos considerar dentro deste processo.
Stakeholders
É importante que todas as partes envolvidas estejam cientes de como as suas ações e escolhas podem afetar nos custos de infraestrutura na nuvem. Dentre elas, podemos citar:
- Financeiro: O departamento financeiro deve estar ciente do modelo de consumo de ambientes de nuvem, pois ele é consideravelmente diferente de modelos on-premises;
- Business Owners: Os donos do negócio também devem entender este modelo para definir a evolução da empresa, com maior precisão ao planejar seu crescimento;
- Lideres técnicos: Lideres técnicos irão receber demandas de outros stakeholders, aplicando ajustes e melhorias no sistema, para atingir as metas de custo projetadas;
- Terceiros: Serviços e produtos de terceiros devem estar alinhados com as metas de negócio da empresa, fornecendo recursos para demonstrar tal alinhamento.
Governança e Visibilidade
A flexibilidade de ambientes de nuvem permite o provisionamento de recursos de forma muito prática e rápida. Está praticidade possibilita uma infinidade de cenários (ajustes, testes, novas funcionalidades) que podem incorrer diretamente sobre o custo de infraestrutura. Para administrarmos corretamente estes gastos, devemos ter métodos e ferramentas que nos auxiliem na sua visualização, análise e controle.
Na AWS, o Serviço de Gerenciamento de Custos e Faturamento permite configurar notificações, gerar relatórios e efetuar previsões, possibilitando o monitoramento e controle dos gastos atuais e futuros.
Em relação a governança, podemos utilizar o IAM e as SCPs (Service Control Policies do AWS Organizations) para limitarmos o provisionamento de recursos que estejam fora do orçamento definido.
Atribuição de custos
Para termos um melhor entendimento sobre o cenário de gastos da empresa, devemos atribuir corretamente os custos às suas fontes geradoras, como o departamento responsável por determinado recurso, o produto que utiliza determinado recurso, ou o ambiente (DEV, STG, PRD) onde está provisionado o recurso.
Na AWS, podemos definir TAGs para identificar cada uma destas fontes, ou ainda, podemos utilizar diversas contas para efetuar a segmentação e recorrer ao AWS Organizations para vincular estas contas hierarquicamente, consolidando o faturamento na conta principal.
Utilizando Tags
É muito importante utilizar um modelo consistente de TAGs na AWS, para facilitar o gerenciamento de recursos e controle de gastos. Em relação a este último, podemos utilizá-las para alocação de custos, reduzindo o escopo de visualizações e relatórios de acordo com as TAGs configuradas.
Rastreamento do ciclo de vida de entidades
Um último aspecto importante a ser considerado é o ciclo de vida de recursos provisionados. Devido a operações e testes do dia a dia, recursos podem acabar ficando órfãos, sem estarem vinculados a um projeto ou responsável. É muito importante rastrearmos este tipo de situação, eliminando estes recursos e, consequentemente, reduzindo custos.
Alguns serviços importantes AWS, que não foram mencionados, são o Cost Explorer, que foi citado indiretamente antes, e possibilita a visualização e análise de custos. E o Amazon CloudWatch que permite a criação de alertas em resposta a alterações no custo da conta.
Otimizar com o tempo
Devemos garantir sempre a melhor utilização dos recursos necessários para o sucesso de nossas aplicações. Para isso, devemos monitorar o seu estado, evoluindo com o passar do tempo.
Medir, monitorar e aprimorar
Para termos certeza da aderência dos requisitos definidos para o workload, em relação a real utilização dos usuários, devemos obter as métricas de ambos os casos (utilização e requisitos), compará-las e definir estratégias para deixar a distância entre o real e o projetado, menor. Isso fará com que o custo se aproxime do ótimo. Com o intuito de reduzir esta diferença, o guideline nos sugere quatro passos:
- Estabelecer uma função de otimização de custos: Devemos definir uma função de redução de custos, que englobe toda a organização. Essa função deverá abranger todos os elementos da organização, desde pessoas até aspectos técnicos;
- Estabelecer métricas e metas: Métricas e metas são importantes para avaliar a evolução do workload, e definir objetivos a serem alcançados. Vale salientar que as metas definidas aqui não devem ser apenas focadas em custo, mas sim na otimização do workload (o menor custo, para o melhor estado operacional);
- Obter insights e efetuar análises: Falando em métricas, devemos utilizar as ferramentas corretas para extrair dados e obter insights, observando as tarefas executadas pelos usuários, e verificando como o sistema responde a elas;
- Reportar e validar: É importante validar e reportar as análises obtidas, afim de avaliar a evolução das medidas tomadas em relação as metas definidas.
Permanecer sempre no verde
Como citado anteriormente, provedores de nuvem sempre disponibilizam novas features e novos serviços. Sem contar que os próprios requisitos do sistema podem mudar. Por isso, é muito importante avaliarmos constantemente os recursos existentes em nossos workloads, verificando se eles ainda são as melhores opções e se os mesmos ainda são utilizados, considerando a possibilidade de reconfigurar/substituir o recurso, ou ainda descartá-lo.
Na AWS devemos sempre ficar de olho no AWS News e AWS Blog, para identificarmos novidades que venham a otimizar os Workloads da empresa. Outra ferramenta importante é o AWS Trust Advisor, que avalia o ambiente notificando sobre diversas melhorias à serem feitas.
Conclusão
Para garantirmos o menor custo, devemos estar sempre observando o comportamento do workload, os seus padrões de utilização e as novidades tecnológicas. Desta forma, teremos a oportunidade de utilizar a tecnologia de forma inteligente, otimizando a utilização de recursos.
Com este post chegamos ao fim da série sobre o Well-Architected Framework. O propósito desta série era sintetizar os ensinamentos compreendidos no guideline, evidenciando as principais ideias. Espero que tenham gostado!
Um grande abraços e boa semana!