Esse modelo de maturidade leva você a um percurso desde o reconhecimento básico de custos até o domínio de otimização avançada.
A partir de práticas fundamentais, como transparência e responsabilidade, você gradualmente criará recursos sofisticados, incluindo análise sistemática, insights orientados pelo usuário, aprendizados de produção e técnicas de eficiência avançadas. A progressão foi projetada para transformar sua abordagem de simplesmente reagir a surpresas de custo para moldar proativamente os resultados financeiros que se alinham aos seus objetivos de negócios.
O modelo é estruturado em cinco níveis de maturidade distintos, cada um com uma meta primária e um conjunto de estratégias principais. Utilize as abas exibidas abaixo para explorar cada nível. Examine também as compensações realçadas e os riscos associados à medida que você progride.
Estabelecer a responsabilidade da equipe e os processos fundamentais para gerenciar os custos de carga de trabalho durante todo o ciclo de vida.
O nível 1 do modelo de maturidade ajuda as equipes de carga de trabalho a entender seu orçamento e configurar processos e ferramentas para gerenciar seus custos durante o ciclo de vida da carga de trabalho. Antes de configurar processos mais maduros, como criar um modelo de custo, você deve se concentrar nas práticas recomendadas básicas de gerenciamento de custos para começar a carga de trabalho sem causar problemas com o orçamento.
As recomendações a seguir podem ajudá-lo a gerenciar os custos com eficiência ao criar sua carga de trabalho.
Principais estratégias
✓ Compartilhar metas financeiras, detalhes do orçamento e gastos de carga de trabalho com todos os membros da equipe, gerentes e tomadores de decisão
Forneça aos stakeholders informações detalhadas sobre o orçamento alocado, os detalhamentos de custos e as metas financeiras para sua carga de trabalho. Compartilhe insights detalhados sobre várias despesas, como custos de infraestrutura, licenças de software e despesas operacionais. Essa prática não é muitas vezes pensada, mas é importante. Ele ajuda a criar confiança entre a equipe de carga de trabalho e as equipes de liderança e mostra que a equipe de carga de trabalho está pensando no gerenciamento de despesas. Essa colaboração também ajuda a motivar a equipe de carga de trabalho a permanecer diligente em seu gerenciamento de custos devido a seus compromissos com as equipes de liderança.
Use ferramentas de colaboração para incentivar os membros da equipe a compartilhar ideias e insights de otimização de custos. Forneça mecanismos para a equipe colaborar em suas ideias e insights. Essa abordagem capacita os membros da equipe a oferecer sugestões em todas as disciplinas da equipe de carga de trabalho. Quando você promove uma cultura de colaboração na otimização de custos, reforça a mentalidade de que o gerenciamento de custos de carga de trabalho depende igualmente de todos os membros da equipe.
Para motivar uma mentalidade de otimização de custos, considere reconhecer indivíduos e equipes que demonstram responsabilidade financeira e contribuem para a otimização de custos. Você pode usar avaliações de desempenho, incentivos ou outros programas de reconhecimento.
✓ Coletar dados de custo detalhados de todas as fontes, incluindo dados faturados e medidos
Os dados faturados representam valores reais cobrados e os dados medidos são preditivos com base nos planos de cobrança. Para obter uma imagem totalmente detalhada dos custos da carga de trabalho, explore todas as ferramentas e métodos disponíveis que seu provedor de serviços oferece. A fatura mensal pode não dar aos stakeholders detalhes suficientes sobre os gastos. Compile dados para economizar tempo investigando acusações não claras e explicando termos obscuros. Depois de coletar dados de uso, centralize esses dados em um sistema unificado.
Aproveite os painéis de cobrança que têm filtros para exibições diferentes. Os stakeholders e os membros da equipe de carga de trabalho podem usar os filtros para ver facilmente as informações mais relevantes para eles.
✓ Determinar fatores de custo
Para identificar como diferentes componentes de carga de trabalho contribuem para os custos gerais, use as ferramentas que você adotou para coletar dados de cobrança. Preste atenção especial aos custos relacionados a processos, como transferências de dados ou transações, e como eles contribuem para os custos gerais. Esses custos geralmente são negligenciados durante as estimativas iniciais de custo do recurso antes da implantação.
Você também deve entender como fatores que não estão diretamente relacionados aos seus recursos de nuvem podem afetar seu orçamento. Esses fatores podem incluir treinamento para membros da equipe e licenciamento de software que seu provedor de nuvem não gerencia.
✓ Decidir se deseja construir ou comprar
Uma das primeiras decisões que a equipe de carga de trabalho precisa tomar é se deve usar soluções off-the-shelf ou criar soluções internas. Em geral, o Well-Architected Framework favorece manter as coisas simples. O uso de soluções fora da prateleira segue essa filosofia. Soluções bem estruturadas reduzem o fardo operacional da sua equipe e diminuem o tempo necessário para o desenvolvimento, permitindo que os desenvolvedores foquem na funcionalidade central do aplicativo.
Trade-off: Considere os custos ao decidir entre desenvolver ou comprar uma solução. Criar soluções internas geralmente significa um investimento antecipado para o tempo de desenvolvimento e todos os recursos necessários para concluir o desenvolvimento. Mas você tem menos custos recorrentes porque não precisa manter contratos de suporte ou licenciamento.
Para ajudá-lo a tomar a decisão certa para sua equipe, avalie os pontos a seguir.
-
O nível de controle desejado: Decida quanto controle você precisa sobre a funcionalidade de uma solução.
-
A quantidade necessária de personalização: Determine o nível de personalização adequado para sua carga de trabalho em evolução.
-
O tempo esperado para o mercado: Entenda as expectativas das partes interessadas para lançar sua carga de trabalho no mercado e como você pode cumprir melhor esse cronograma.
-
A experiência técnica necessária: Determine quanta experiência você precisa reter para criar e operar uma solução.
-
A carga operacional esperada: Estimar quanto tempo e esforço as equipes de operações precisam para dar suporte a uma solução.
Essas avaliações ajudam você a entender os custos totais de cada opção para que você possa pesá-los uns contra os outros. O custo total pode não ser o único fator decisivo. Mas se as opções tiverem diferenças significativas, escolha a opção de menor custo para acelerar o desenvolvimento da carga de trabalho.
✓ Invista nas habilidades da sua equipe
Invista em upskilling em áreas onde sua equipe não tem conhecimento. Habilidades de nuvem fortes facilitam uma boa tomada de decisão a longo prazo e otimizam sua produtividade diária. Considere treinamento ou certificações que seu provedor de nuvem ou outros parceiros oferecem. Aumentar a produtividade da sua equipe de carga de trabalho e de outros tomadores de decisão economiza tempo e dinheiro minimizando erros caros.
Criar análise sistemática de custos e relatórios para entender os padrões de gastos.
Após a implantação inicial, é comum se concentrar no desenvolvimento de novos recursos e na condução de vendas, ignorando o gerenciamento de custos. No Nível 2, espera-se que os gastos aumentem, portanto, você precisa adotar uma abordagem estruturada. Avalie os custos de ferramentas e tecnologias, crie uma linha de base e identifique os principais drivers de custo.
A gestão de custos pode parecer esmagadora, mas a análise sistemática de custos em um estágio inicial é necessária para manter o controle financeiro e apoiar o crescimento.
Principais estratégias
✓ Desenvolver um modelo de custo de linha de base
Um modelo de custo é uma estimativa do custo geral de uma carga de trabalho. O custo é dividido por fatores contribuintes, como serviços de plataforma, armazenamento de dados, fluxos de usuário e sistema e operações. No mínimo, você deve realizar uma análise sistemática de custo e criar um modelo de custo básico. Este exercício ajuda você a tomar decisões informadas sobre alocação e otimização de recursos.
Crie um inventário de todos os recursos do Azure e especifique quais aspectos de cada recurso resultam em custos mais altos.
Faça perguntas sobre as opções de tecnologia e seu alinhamento com metas como escalabilidade e confiabilidade dentro das restrições de custo. Para cada recurso, observe o custo e determine se o custo é muito alto ou muito baixo. Meça em relação às cargas esperadas, mantendo o crescimento potencial em mente.
Observe o custo dos fluxos e distingue entre fluxos críticos e não críticos. Priorize fluxos críticos, como a experiência do usuário em um aplicativo de comércio eletrônico, em fluxos não críticos, como trabalhos em segundo plano para fins de auditoria.
Calcule o custo do armazenamento de dados e dos padrões de acesso a dados.
✓ Criar relatórios de custo
Crie relatórios de custo básicos para visibilidade financeira e analise padrões de custo. Além disso, configure alertas de custo para quando você exceder uma quantidade específica de gastos.
Recomendamos que você use o Gerenciamento de Custos da Microsoft para analisar, monitorar e controlar seus gastos com serviços. Se essa opção não estiver disponível para você, crie um sistema para controlar o consumo e gerar um relatório mensal.
✓ Estabelecer a responsabilidade
A responsabilidade é inegociável para o gerenciamento de custos. Nos estágios iniciais, atribua um membro da equipe para examinar os orçamentos e relatórios de custos mensalmente e informar a equipe sobre picos inesperados. A pessoa responsável deve avaliar os gastos da carga de trabalho e orientar a equipe adequadamente.
Inicialmente, a responsabilidade pode ser flexível. À medida que a startup amadurece, imponha controles mais rigorosos.
✓ Avaliar oportunidades de otimização
Seu modelo de custo deve fornecer uma boa compreensão dos principais drivers de custo, e os relatórios de custo devem fornecer evidências. Avalie esses drivers e explore oportunidades para otimizar. Considere as seguintes estratégias:
Avalie o modelo de cobrança para cada recurso do Azure usado pela carga de trabalho. Determine se você precisa de todos os recursos que cada plano agrupa. Por exemplo, se você precisar de recursos específicos, como um ponto de extremidade privado com o Azure Front Door, talvez você precise do plano Premium. Caso contrário, considere escolher um plano mais baixo para economizar custos.
Escolha entre a cobrança baseada em consumo e a cobrança baseada em compromisso. Recomendamos que você comece com a cobrança baseada em consumo para entender os custos incorridos. Se a carga for consistente, você poderá explorar os descontos que o Azure fornece para cargas consistentes em estágios posteriores.
Avalie as práticas de codificação. Use a instrumentação de código para identificar processos caros para execução e fornecer insights sobre problemas de desempenho, que podem incorrer em custos desnecessários. Colete métricas como duração do processo e taxas de falha para tomar decisões controladas por dados para otimização futura.
✓ Decidir sobre uma estratégia de dimensionamento inicial
O escalonamento horizontal é preferido porque é mais econômico e mais fácil de implementar em comparação com o escalonamento vertical. O escalonamento implica em tempo de inatividade e custos mais altos.
Considere o teste de desempenho e as métricas, e escale horizontalmente ou verticalmente com base na sua avaliação.
Incorporar comentários do usuário e sinais operacionais para refinar estratégias de otimização de custos.
Nos estágios iniciais do desenvolvimento e operações de carga de trabalho, você pode contar com o ciclo de feedback de desenvolvimento interno para otimizar sua carga de trabalho. Nesse nível de maturidade, é importante expandir o ciclo de feedback para incluir usuários internos e externos, bem como outros stakeholders. À medida que faz refinamentos de otimização de custos para sua carga de trabalho, você também precisa considerar os prós e contras em relação a outros pilares, especialmente os pilares de Eficiência de Desempenho e Confiabilidade.
O nível 3 do pilar de Otimização de Custos concentra-se na preparação de sua carga de trabalho para produção, integrando comentários internos e externos à sua estratégia, garantindo que as metas de desempenho e confiabilidade sejam atendidas.
Principais estratégias
✓ Investir em fluxos impactantes e ajustar outros fluxos
Considere as prioridades atribuídas aos fluxos do aplicativo. Priorize os esforços de desenvolvimento em fluxos críticos enquanto procura maneiras de simplificar e reduzir o custo de fluxos não críticos. Fluxos não críticos podem ter requisitos de confiabilidade menos rigorosos. Como resultado, você pode ser capaz de simplificar o design deles.
Para cada fluxo, elimine elementos desnecessários, selecione as camadas de desempenho apropriadas, ajuste as configurações de dimensionamento para demanda variável e ajuste as configurações para se alinhar às necessidades de desempenho e orçamento. Monitore fluxos para identificar ineficiências como instâncias de computação ociosas, dados não utilizados e baixa largura de banda de rede. Use ferramentas nativas de log e análise para ajudar a agregar e analisar essas métricas em busca de tendências.
✓ Impor verificadores de integridade de custo usando alertas
Crie limites de gastos e alertas associados para estabelecer limites de segurança de custo. Essa abordagem garante que a carga de trabalho permaneça dentro do orçamento. Exemplos de alertas incluem os seguintes tipos:
Os alertas de orçamento permitem que você defina limites de gastos, monitore os custos e receba notificações para ajudar a controlar as despesas e permanecer informado.
Alertas de anomalias de custo notificam você sobre variações de custo inesperadas. Elas permitem que você investigue e resolva ineficiências ou padrões de gastos anormais.
Os alertas de uso do plano baseado em compromisso ajudam você a monitorar e otimizar o uso de seus recursos baseados em compromisso notificando os stakeholders quando o uso fica abaixo do limite desejado.
✓ Desenvolver uma estratégia para otimizar o uso de recursos
À medida que cria seus ambientes de produção e não produção, você pode implantar sem querer recursos superprovisionados. Com o tempo, você pode acumular recursos que foram implantados para uma prova de conceito (PoC) ou para testes que não são mais necessários. Desenvolver uma estratégia para identificar recursos subutilizados e não utilizados é essencial para melhoria contínua na manutenção de um ambiente de nuvem otimizado. Considere as seguintes recomendações:
Use os tipos de recursos e SKUs corretos para cada ambiente. Pesquise as opções de infraestrutura que sua plataforma de nuvem fornece e selecione tipos de recursos e SKUs apropriados para cada caso de uso. Geralmente, há tipos de recursos e SKUs específicos direcionados especificamente para ambientes de poc e de desenvolvimento/teste. Esses tipos de recursos e SKUs são significativamente mais baratos do que os recursos padrão ou de alto desempenho, mas você não pode usá-los para cargas de trabalho de produção.
Configure e imponha políticas para restringir tipos de recursos, SKUs, regiões e permissões de implantação para usuários. As políticas automatizadas ajudam a gerenciar as alterações de ambiente. Esse processo reduz o risco de implantações não autorizadas.
Padronizar usando a infraestrutura como código para todas as alterações de ambiente. Essa abordagem ajuda a impor suas políticas de mudança de ambiente e simplifica suas práticas de operações para reduzir o risco de erro humano.
Monitore métricas de uso como CPU, memória e armazenamento para ajudar a determinar se os recursos são subutilizados e podem ser reduzidos.
Examine os ambientes de produção e não produção para recursos não utilizados que podem ser desligados ou excluídos com segurança.
Aproveite as ferramentas que sua plataforma de nuvem fornece para ajudar a identificar otimizações de recursos. Por exemplo, o Assistente do Azure fornece recomendações de otimização de custo que identificam possíveis ineficiências e sugerem etapas para resolvê-las.
Prós e contras: considere as metas de desempenho e confiabilidade ao ajustar seus recursos. Envolva-se com os stakeholders quando os compromissos puderem ajudar a equilibrar o desempenho, a confiabilidade e os custos ou quando as restrições orçamentárias dificultarem os aprimoramentos da carga de trabalho.
✓ Otimizar licenças e outros custos estáticos
À medida que você implanta recursos de nuvem, use uma abordagem estratégica para comprar licenças e outros custos mensais fixos. Esses custos incluem licenciamento de servidor e banco de dados, licenciamento de software e reservas pré-compradas. Considere as seguintes estratégias de economia de custos:
Opções de pesquisa, como o Benefício Híbrido do Azure, para aplicar licenças existentes aos sistemas migrados para a nuvem ou para novas implantações na nuvem. Pesquise qualquer licenciamento por volume ou contratos empresariais que sua organização mantém para aproveitar possíveis economias de custos em recursos de nuvem ou licenciamento de software.
Use o licenciamento de não produção e desenvolvimento/teste para sistemas aplicáveis, como licenças de desenvolvimento/teste do Visual Studio.
Considere a compra antecipada de capacidade para os recursos de nuvem quando for prático. A capacidade de reserva pode reduzir significativamente seus custos mensais de uso e ajudar a manter despesas mais consistentes.
Risco: Ao comprar reservas, certifique-se de selecionar o modelo mais econômico para seu caso de uso. Por exemplo, se um recurso puder ser reduzido à noite ou sazonalmente, pode ser mais econômico ajustar seu dimensionamento de forma inteligente. Além disso, identifique a SKU correta para pré-compra por meio de teste de linha de base e planejamento de capacidade.
✓ Refinar políticas de dimensionamento automático
Suas políticas de dimensionamento iniciais podem ser baseadas no ciclo de feedback do desenvolvimento interno. Essas políticas se concentram em ajustar o dimensionamento para atender às necessidades de desenvolvimento. À medida que sua carga de trabalho evolui, incorpore comentários internos e externos do usuário para garantir que o desempenho permaneça dentro do intervalo aceitável.
Ajuste os limites de dimensionamento e introduza períodos de resfriamento para atenuar picos de carga temporários. Monitore e ajuste continuamente o sistema para otimizar os custos e atender aos requisitos. Defina as unidades de escala a serem usadas para avançar. Essas unidades dependem de fatores como design de carga de trabalho, caso de uso, componentes, fluxos e requisitos de negócios.
Por exemplo, para cargas de trabalho críticas, uma unidade de escala pode ser um carimbo de implantação inteiro. Como alternativa, para cargas de trabalho mais simples que têm fluxos não críticos, a unidade de escala pode ser baseada no número de instâncias de computação de um SKU específico alocado para a carga de trabalho. Selecione unidades de escala que permitam que a carga de trabalho lide com os aumentos esperados na carga sem desperdiçar capacidade. Atualize seu modelo de custo para incluir as necessidades de dimensionamento previstas.
✓ Otimizar seu patrimônio de dados
Os dados são um driver principal dos custos de nuvem. O gerenciamento de dados adequado pode ajudá-lo a manter os custos consistentes e dentro do orçamento. Use as seguintes estratégias para gerenciar seu patrimônio de dados:
Classifique e rotule dados para aplicar os controles apropriados e determinar os níveis apropriados de confiabilidade e desempenho para diferentes tipos de dados e armazenamentos.
Capture apenas dados essenciais, compacte dados para armazenamento mais frio e exclua dados desnecessários usando políticas de retenção adequadas. Deduplicar dados para eliminar dados redundantes e instruir os usuários sobre práticas eficientes de armazenamento de dados.
Otimize os backups usando backups incrementais, habilitando a compactação e movendo backups mais antigos para o armazenamento frio.
Otimize a replicação aplicando os modelos de replicação apropriados, sejam eles síncronos ou assíncronos, para otimizar a replicação com base em seus requisitos. Ajuste a frequência de replicação para se alinhar às suas necessidades específicas. Avalie continuamente seus requisitos e configuração.
Incorpore comentários internos e externos para examinar os padrões de acesso ao armazenamento e ajustar suas estratégias de gerenciamento do ciclo de vida de dados.
Use ferramentas para ajudar a otimizar consultas.
Prós e contras: compare suas políticas de backup e replicação com suas metas de recuperação. A replicação menos frequente ou o descarregamento de backups mais antigos para o armazenamento frio podem afetar o tempo de recuperação, portanto, esteja atento à implementação dessas otimizações.
✓ Otimizar código, práticas de desenvolvimento de software e estratégias de desenvolvimento de recursos
O código ineficiente pode degradar o desempenho do sistema. Essa ineficiência pode resultar em custos mais altos para uso de recursos. Otimizar seu código pode melhorar a eficiência e permitir que sua carga de trabalho suporte mais carga sem precisar aumentar seus recursos. Use as seguintes estratégias para otimizar seu código:
Analisar dados de tempo de execução e medir o desempenho usando ferramentas de profilagem.
Avalie a lógica de negócios e seu efeito na experiência do usuário.
Examine as recomendações de desempenho específicas do idioma.
Remova chamadas de função desnecessárias, minimize o registro em log e refine loops e condicionais.
Reduza o processamento de dados, minimize as solicitações de rede e as alocações de memória e avalie as implementações de corte cruzado.
Use os seguintes métodos para otimizar os caminhos de rede:
Minimize as transferências de dados entre componentes e entre regiões geografárias distantes analisando e eliminando transferências desnecessárias. Verifique se apenas os campos de dados necessários são enviados e não objetos ou estruturas de dados inteiros. Essa abordagem reduz o tamanho e a frequência das transferências de dados.
Evite transferir dados redundantes enviando apenas informações essenciais.
Refatore seu código para reduzir solicitações repetidas e agrupar as requisições quando possível.
Simplificar as práticas de desenvolvimento aprimora a velocidade de build. Essa abordagem ajuda as equipes de carga de trabalho a economizar tempo valioso e fornecer melhorias de forma eficiente à produção. Use as seguintes estratégias para simplificar as práticas de desenvolvimento:
Acelere os tempos de build otimizando a configuração, removendo etapas e processos desnecessários, paralelizando tarefas, usando cache e habilitando builds incrementais para evitar a compilação redundante.
Use a simulação de produção para otimizar o teste. A simulação de produção permite que os desenvolvedores foquem os testes em cenários simulados que sejam impraticáveis de reproduzir em um ambiente de produção.
Otimize as práticas de planejamento de desenvolvimento definindo objetivos e métricas claros, usando ferramentas de monitoramento para acompanhar os principais indicadores de desempenho e priorizando insights acionáveis.
Use ferramentas de assistência de codificação de IA, como o GitHub Copilot, para reduzir o tempo de desenvolvimento quando prático.
Avalie sua estratégia de desenvolvimento de recursos para garantir que recursos valiosos sejam priorizados. Incorpore comentários de usuários internos e externos e stakeholders para identificar os recursos que mais aprimoram a satisfação do usuário e impulsionam um maior envolvimento. Em alguns cenários, os recursos podem ser projetados especificamente para otimizar os custos. Compare esses recursos com prioridades funcionais para avaliar seu valor relativo.
Conduza otimizações de custo usando dados operacionais da produção.
O estágio Nível 4 do modelo de maturidade pressupõe que você tenha implantado em produção e tem operado sua carga de trabalho por tempo suficiente para coletar informações úteis sobre como ela normalmente é executada. Nesse nível, aplique esses insights de produção ao seu ambiente.
As alterações em seu ambiente de produção afetam diretamente outros aspectos da carga de trabalho. Por exemplo, refinamentos para redução de custos podem afetar um ou mais dos pilares restantes da Estrutura Well-Architected. Por esse motivo, as práticas de gerenciamento de alterações maduras são cruciais. Quando você faz ajustes de economia de custos em sua carga de trabalho, revise e teste cuidadosamente as alterações e desenvolva planos de reversão para reduzir os impactos de desempenho, segurança e confiabilidade.
Principais estratégias
✓ Refinar o modelo de custo com base em aprendizados de produção
Depois de implantar e operar sua carga de trabalho em produção por tempo suficiente para entender seus padrões de uso normais, reveja seu modelo de custo para planejar o futuro. O modelo de custo deve projetar despesas futuras, alocar fundos e ajustar-se para desvios. Na análise de cenário, o modelo de custo avalia o impacto financeiro de diferentes alterações de negócios e prevê as implicações de custo do comportamento do cliente. Para otimização de recursos, ele identifica recursos de nuvem subutilizados, prevê custos de dimensionamento e compara os modelos de cobrança dos provedores de nuvem para que você possa escolher a opção mais econômica.
Como parte deste exercício, determine a proximidade dos custos de execução com o modelo de custo desenvolvido anteriormente e investigue as causas das discrepâncias. Encontrar custos inesperados é comum e atribuir a culpa por eles normalmente é improdutivo. Em vez disso, avalie o valor dos componentes que geram custos inesperados. Colabore com os stakeholders para decidir se deseja ajustar o design da carga de trabalho para melhor alinhamento com o modelo de custo ou se o modelo de custo deve ser modificado.
Dilema: Tenha em mente que é difícil projetar com precisão os custos variáveis, especialmente quando você adota novas tecnologias. Talvez seja necessário procurar compromissos ao planejar seu orçamento. Certifique-se de que os stakeholders entendam como você determina suas estimativas de custo variável e sua estratégia para manter esses custos sob controle.
Risco: Medidas de corte de custos podem afetar negativamente a confiabilidade, a segurança, o desempenho e a excelência operacional. Analise cuidadosamente o impacto de cada medida planejada de corte de custos e determine se fazer uma alteração vale o impacto potencial.
✓ Otimizar o uso de dados para reduzir custos
Use seus insights de produção para refinar suas estratégias de dados. Especificamente, procure oportunidades de otimização para os seguintes fatores:
- Otimize suas soluções de armazenamento com facilidade de gerenciamento em mente. Avalie se as soluções de armazenamento implantadas no momento se encaixam melhor em seu caso de uso e se a transição para uma tecnologia diferente pode reduzir a carga operacional ou os custos de uso. Por exemplo, você pode ter implantado inicialmente o SQL Server em máquinas virtuais para migrar facilmente sua carga de trabalho ou porque era a tecnologia mais familiar para sua equipe de carga de trabalho. A migração para uma solução paaS (plataforma como serviço) pode reduzir significativamente a sobrecarga operacional e reduzir os custos, dependendo de vários fatores.
✓ Aumentar a densidade de recursos
Quando prático, otimize os custos consolidando serviços compartilhados entre cargas de trabalho. Por exemplo, você pode hospedar vários aplicativos Web em um único servidor ou instância de PaaS. Várias cargas de trabalho podem compartilhar um banco de dados, rede, segurança e outros serviços. Execute uma análise de custo-benefício para determinar se a consolidação de recursos é valiosa o suficiente para sua equipe executar. Depois de identificar os candidatos à consolidação, planeje cuidadosamente a implementação e siga boas práticas de gerenciamento de alterações. Certifique-se de que os stakeholders entendam os riscos.
Risco: a consolidação de recursos pode tornar sua carga de trabalho menos confiável e menos segura. Cargas de trabalho críticas e críticas aos negócios devem favorecer a confiabilidade e a segurança em vez de consolidação.
Risco: a consolidação mal executada pode levar a ineficiências futuras. Examine seu plano de consolidação minuciosamente para garantir que você não esteja criando gargalos que possam afetá-lo no futuro antes de executar a migração. Após a migração, dê atenção especial ao monitoramento dos recursos consolidados, assegurando que eles operem como esperado.
✓ Avaliar e otimizar os recursos do aplicativo
Monitore os padrões de uso de recursos em produção para avaliar o alinhamento deles com seu modelo de custo. Determine se um recurso deve ser mantido, refatorado ou removido. Em alguns casos, monetizar recursos pode ser uma decisão estratégica de negócios. Os recursos podem não justificar o investimento atual, mas ainda podem fornecer valor aos clientes. Oferecer esses recursos como complementos pagos ou assinaturas pode ajudar a compensar os custos de investimento.
✓ Minimizar os custos de dimensionamento regulando a demanda
Uma estratégia que pode ajudá-lo a otimizar os custos de dimensionamento de recursos é a regulação da demanda em vez de adicionar capacidade. Essa abordagem pode incluir o descarregamento da demanda para outros recursos ou reduzi-la por meio de várias estratégias, como filas de prioridade, buffer, balanceamento de carga e cache. Ao considerar essas táticas, avalie o impacto sobre os outros pilares do Well-Architected Framework. Controlar a oferta limitando os limites de dimensionamento e definindo um orçamento ajuda a manter as despesas dentro dos limites definidos. Acompanhe o uso e use plataformas de gerenciamento de custos e alertas de orçamento para ajudar a monitorar e controlar os gastos de forma eficaz.
Dilema: O descarregamento de tarefas para outros recursos pode reduzir os custos de dimensionamento, mas pode introduzir desafios operacionais e de manutenção. Execute uma análise completa de custo-benefício para confirmar se o método de descarregamento escolhido é eficiente e viável. Certifique-se de equilibrar economias com possíveis complexidades.
✓ Impor a responsabilidade de custo por meio da propriedade
A nomeação de um indivíduo diretamente responsável (DRI) ajuda a equipe de trabalho a assumir a responsabilidade sobre seus custos de trabalho. O DRI é responsável por gerenciar e otimizar custos monitorando o uso, implementando estratégias de economia de custos e garantindo que os gastos estejam alinhados com os objetivos de orçamento e de negócios. O DRI toma decisões relacionadas à alocação de recursos de nuvem, identifica áreas de possível redução de custos e garante o uso eficiente de serviços de nuvem para evitar despesas desnecessárias.
O DRI também serve como a linha de frente da defesa contra custos de carga de trabalho acima do esperado. Os DRIs podem ajudar a identificar a causa desses altos custos e trabalhar proativamente com a equipe de carga de trabalho para reduzi-los ao intervalo esperado antes que se tornem uma emergência de custo.
Transforme a otimização de custo em uma vantagem competitiva por meio da inovação contínua.
No Nível 5 do modelo de maturidade, você deve ter muitos mecanismos e processos de otimização de custo já em vigor. O nível 5 concentra-se na maximização do ROI (retorno sobre o investimento), mantendo um orçamento de carga de trabalho consistente e previsível, produzindo previsões altamente precisas e aplicando refinamentos avançados. Considere as recomendações a seguir para atingir essas metas.
Principais estratégias
✓ Aplicar guardrails orçamentários em seus processos de desenvolvimento de software
Use portões de liberação para servir como proteções de gastos estabelecendo critérios relacionados aos custos que devem ser atendidos para passar pelo portão. Por exemplo, você pode definir limites de gastos para garantir que os lançamentos não adicionem custos inesperados ao seu orçamento operacional. Incorpore esses portões à integração contínua e ao pipeline de entrega contínua para garantir que eles sejam incluídos em cada implantação.
✓ Investir na criação de conhecimento
Capacite sua equipe de carga de trabalho a assumir a propriedade de iniciativas de otimização de custos desenvolvendo um programa de treinamento de habilidades. Incentive os membros da equipe a aprender com líderes de pensamento do setor participando de conferências, webinars e outros eventos relevantes. Forneça treinamento interno para dar suporte ao acúmulo de habilidades e criar ambientes de teste para experiências práticas de aprendizagem. Alinhe o treinamento com iniciativas de otimização de custos, como otimizar estratégias de dimensionamento. Equipes altamente qualificadas melhoram a eficiência e podem reduzir a dependência de terceiros para projetos futuros.
Verifique se seu modelo de custo inclui treinamentos planejados para um período fiscal específico, como o próximo trimestre.
✓ Otimizar os custos de alta disponibilidade e recuperação de desastre
Depois de realizar exercícios de recuperação de desastres do mundo real (DR) ou vivenciar incidentes de DR do mundo real, você poderá encontrar oportunidades para otimização de custos. Você pode descobrir que uma estratégia de recuperação de desastre mais barata é suficiente para determinados componentes enquanto ainda atende às suas metas de recuperação. Por exemplo, talvez você não precise de um design de sobressalente ativo para fluxos não críticos. Nesse cenário, considere implementar uma abordagem de implantação na recuperação.
Como parte de suas práticas de melhoria contínua, revisite regularmente suas metas de recuperação para garantir que elas sejam apropriadas para requisitos de confiabilidade e custo.
✓ Refinar o design da carga de trabalho
Depois de observar sua carga de trabalho em produção por um longo período, você poderá determinar que está no limite de otimizações valiosas sem refatorar partes dela. A refatoração pode ser trabalhosa e dispendiosa. No entanto, a refatoração pode ser um investimento que vale a pena se resultar em economia de custos de longo prazo. Ele também pode estender o ciclo de vida da carga de trabalho adotando tecnologias e práticas de gerenciamento mais eficientes. Considere as seguintes estratégias:
Combine fluxos semelhantes. Reduza redundâncias ou uso de recursos subutilizados consolidando fluxos semelhantes em um recurso compartilhado ou conjunto de recursos. Por exemplo, você pode hospedar vários aplicativos Web em uma única instância de computação ou hospedar vários bancos de dados em um único servidor lógico.
Separar fluxos diferentes. Atribuir tarefas que têm diferentes necessidades computacionais para recursos dedicados melhora a eficiência e reduz os custos. Essa abordagem aprimora a escalabilidade, a tolerância a falhas e a adaptabilidade minimizando a interferência e otimizando a alocação de recursos de acordo com a prioridade de cada tarefa.
Rearquitetar a carga de trabalho para obter eficiência. Examine toda a arquitetura da carga de trabalho para procurar oportunidades para melhorar a eficiência. Favoreça um design de microsserviços e explore usando serviços gerenciados ou sem servidor que aliviam a carga operacional e podem ser facilmente dimensionados com o tamanho certo por meio do dimensionamento automático. Uma meta final para sua arquitetura pode ser implantar automaticamente ambientes de não produção somente quando necessário para atividades de implantação. Esses ambientes podem ser destruídos posteriormente para minimizar os custos de uso desnecessários.
Monitore e ajuste continuamente os tamanhos dos recursos com base nos padrões de uso para otimizar os custos.
✓ Evoluir as operações da sua equipe
Pesquise e adote metodologias de desenvolvimento eficientes, como Scrum, Kanban e cascata. Reavalie a eficiência da equipe regularmente para determinar se a metodologia escolhida é a melhor opção. Determine os custos das tarefas para cada funcionário, conhecidos como custos unitários, e procure oportunidades para reduzir esses custos. Examine as tarefas mais caras e avalie seu ROI.
Avalie se tarefas específicas podem ser descarregadas para outras equipes. Por exemplo, uma equipe de nuvem centralizada pode gerenciar tarefas operacionais para outras unidades de negócios ou cargas de trabalho, enquanto uma equipe de segurança centralizada pode lidar com monitoramento e testes. Ao descarregar tarefas, planeje a entrega com cuidado, garanta uma comunicação clara entre todas as equipes envolvidas e siga os processos de gerenciamento de alterações estabelecidos.