Projeto para otimização do uso

Concluído
Maximizar o uso de recursos e operações. Aplique-os aos requisitos funcionais e não funcionais negociados da solução.

Os serviços e as ofertas oferecem vários recursos e tipos de preços. Após adquirir um conjunto de recursos, evite subutilizá-los. Encontre maneiras de maximizar seu investimento na camada. Da mesma forma, avalie continuamente os modelos de cobrança para encontrar aqueles que melhor se alinham ao seu uso, com base nas cargas de trabalho de produção atuais.

Cenário de exemplo

Atualmente, a Contoso University está hospedando uma solução comercial pronta para uso (COTS) que permite que o corpo docente da universidade crie e atualize cursos para o ano letivo e é o principal portal de registro usado pelos alunos para esses cursos. A solução tem uma integração personalizada com um sistema de gerenciamento educacional de software como serviço (SaaS), para o qual eles esperam migrar todas as suas funções em alguns anos. Nesse meio tempo, eles querem otimizar os custos dos componentes de integração personalizados.

A solução tecnológica da oferta COTS é geralmente tratada como uma caixa preta, exceto pelo banco de dados, que é o Banco de Dados do Azure para MySQL. A integração personalizada é uma função durável do Azure, que é executada em um plano de serviço Standard no Serviço de Aplicativo do Azure. Anteriormente, esse Serviço de Aplicativo hospedava um site da universidade, mas esse não é mais o caso. Essa função durável é um aplicativo Python com suporte por uma conta dedicada de Armazenamento do Microsoft Azure que executa uma sincronização noturna do banco de dados MySQL para a API do SaaS.

Use preços baseados no consumo quando for prático

Pode haver serviços que ofereçam preços com base no consumo, o que significa que você só é cobrado pela utilização do serviço e pode desligar o serviço quando ele não for necessário para não incorrer em custos. Se você tiver componentes de carga de trabalho que são utilizados apenas esporadicamente, isso pode ajudar a minimizar os custos desperdiçados em comparação com o pagamento para que o componente seja executado 24 horas por dia, 7 dias por semana, 365 dias por ano.

Ao utilizar a precificação baseada em consumo, você paga apenas pelo que exatamente utiliza. Essa opção é uma boa escolha quando não se espera que a computação de sua carga de trabalho seja utilizada em tempo integral.

Desafio da Contoso

  • O trabalho de sincronização geralmente é executado por cerca de uma hora todas as noites, em um horário específico. Historicamente, seu desempenho tem sido satisfatório. As falhas de funcionamento são raras e as falhas transitórias foram bem tratadas na configuração atual.
  • Como a computação necessária para o trabalho de sincronização é utilizada apenas cerca de uma hora por dia, e eles pagam por 24 horas independentemente da utilização, a equipe de carga de trabalho está interessada em uma alternativa ao projeto atual.
  • A equipe considerou a possibilidade de escrever um script para encerrar o serviço todas as noites após a execução da sincronização e reimplantá-lo no dia seguinte, mas essa solução acarretaria um alto grau de risco e complexidade.

Aplicando a abordagem e os resultados

  • A equipe analisa o histórico do trabalhos e descobre que o maior tempo de execução da função foi de pouco menos de duas horas. Eles comparam o custo do plano dedicado com o custo do plano de consumo do Azure Functions para o pior cenário e concluem que o plano de consumo será mais barato.
  • A equipe executa um teste de desempenho para garantir que o desempenho seja suficiente e percebe um ligeiro aumento no tempo de execução, mas ainda está dentro dos limites aceitáveis.
  • O custo geral da carga de trabalho é reduzido com o uso do plano de consumo, pois eles só incorrem em custos quando o trabalho está sendo executado.

Otimizar seu projeto de alta disponibilidade

Priorize a implantação de modelos ativo-ativo ou somente ativo em vez de ativo-passivo, como parte de seu plano de recuperação, se você já tiver pago pelos recursos.

Se seu projeto tiver como padrão o uso de modelos ativo-passivo, você poderá ter recursos ociosos que poderiam ser usados. A conversão para ativo-ativo pode permitir que você atenda aos requisitos de nivelamento de carga e intermitência de escala sem gastar demais. Se você conseguir atingir suas metas de recuperação com um modelo somente ativo, os custos desses recursos poderão ser completamente removidos.

Desafio da Contoso

  • O aplicativo COTS usa o Servidor Flexível do Banco de Dados do Azure para MySQL configurado para alta disponibilidade na mesma zona, o que fornece um servidor em espera na mesma zona de disponibilidade que o servidor primário. Eles também habilitaram os backups automáticos.
  • O RPO da carga de trabalho é relativamente longo, com 12 horas, e o RTO é de três horas durante o dia letivo.
  • Com base em testes de recuperação anteriores, a equipe sabe que pode atingir suas metas de RPO e RTO por meio de failover automático para o servidor em espera. Eles também testaram a recuperação do banco de dados a partir de um backup e podem cumprir as metas nesse cenário.

Aplicando a abordagem e os resultados

  • A equipe de carga de trabalho reavalia o benefício do projeto de alta disponibilidade em relação ao custo do serviço, que é o dobro de uma única instância.
  • A equipe testa a criação de uma nova instância e a recuperação de um banco de dados a partir do backup e está convencida de que ainda estará em conformidade com suas metas de recuperação, portanto, decide eliminar a instância em espera.
  • A equipe atualiza o plano de DR para refletir a nova estratégia de recuperação e perceber a economia de custos por meio da nova configuração.

Mantenha seu ambiente de nuvem livre de recursos e dados não utilizados

Faça a revisão periódica e rigorosa das implantações para verificar se há recursos e dados não utilizados e os descomissione. Com o tempo, os recursos e os dados que foram necessários para alguma finalidade no passado, mas que não estão mais sendo usados, podem permanecer em seus ambientes de nuvem e acumular custos desnecessariamente. Fique atento para manter seus ambientes limpos para ajudar a otimizar a eficiência de custos.

O desligamento de recursos não utilizados e a exclusão de dados quando você não precisa mais deles reduzem o desperdício e liberam fundos para que você possa investi-los em outros lugares.

Desafio da Contoso

  • Historicamente, a universidade tem adotado uma abordagem conservadora em relação ao descomissionamento de soluções, temendo que seja necessário reverter para uma configuração anterior. Essa cautela fez com que serviços abandonados fossem executados em um ou mais ambientes por meses e, em alguns casos, foram esquecidos.
  • Quando serviços abandonados são descobertos, geralmente é por acidente, pois não há um processo formal para analisar o ambiente em busca desses serviços.

Aplicando a abordagem e os resultados

  • A equipe adiciona o descomissionamento do Serviço de Aplicativo à lista de pendências como parte da migração do Serviço de Aplicativo para a hospedagem de consumo da Função Durável. Como parte do próximo sprint, eles encerrarão as implantações do Serviço de Aplicativo em todos os ambientes.
  • Para ajudar na detecção proativa de recursos abandonados, a equipe configura alertas no Assistente do Azure para notificá-los sobre recursos não utilizados.
  • A equipe implementa uma nova política que exige que a equipe faça revisões completas mensais dos ambientes de pré-produção e revisões completas trimestrais do ambiente de produção para identificar os recursos abandonados. Todos os recursos abandonados encontrados serão adicionados à lista de pendências para descomissionamento.

Verifique seu conhecimento

1.

Qual dessas opções está disponível para determinados serviços de computação do Azure para permitir que você economize dinheiro pagando apenas pela computação que usa?

2.

Qual dos seguintes projetos de HA deve ser evitado em termos de custo-benefício se você já tiver pago pelos recursos?

3.

Qual é uma maneira de a equipe de carga de trabalho garantir a captura de recursos abandonados, como servidores MySQL que não são mais usados?