Projetar com uma mentalidade de eficiência de custo

Concluído
Gaste somente com o que for necessário para obter o maior retorno sobre seus investimentos.

Toda decisão arquitetônica tem implicações financeiras diretas e indiretas. Entenda os custos associados às opções de construção versus compra, escolhas de tecnologia, modelo de cobrança e licenciamento, treinamento, operações e assim por diante.

Com base em um conjunto de requisitos, otimizar e tomar decisões estratégicas, em relação aos custos, que ainda atendam efetivamente às preocupações transversais da carga de trabalho.

Cenário de exemplo

A Contoso Manufacturing (CM) opera um sistema de gerenciamento de armazém (WMS) personalizado para lidar com seus quatro armazéns na América do Sul e decidiu que é hora de atualizar a solução e transferi-la para a nuvem. Eles estão considerando uma mudança lift-and-shift da solução atual ou uma build de campo verde com ferramentas modernas de nuvem. A liderança sênior da CM quer controlar os custos e perguntou aos líderes da equipe de carga de trabalho como eles abordariam a migração com o objetivo de manter a eficiência dos custos.

A solução WMS é um aplicativo .NET executado no IIS e usa o SQL Server para seus bancos de dados.

Medir o custo total do projeto de carga de trabalho

Medir o custo total incorrido pelas escolhas de tecnologia e automação, levando em conta o impacto no retorno sobre o investimento (ROI). O projeto deve funcionar dentro dos limites aceitáveis para todos os requisitos funcionais e não funcionais. O projeto também deve ser flexível para acomodar a evolução prevista. Leve em conta o custo de aquisição, treinamento e gerenciamento de alterações.

A implantação de uma abordagem equilibrada que leve em conta o ROI evita o excesso de engenharia, o que pode aumentar os custos.

Desafio da Contoso

  • A equipe de engenharia de carga de trabalho está animada para levar essa carga de trabalho para a nuvem, juntando-se a outras equipes de CM que já estão fazendo desenvolvimento nativo da nuvem.
  • Eles estão cientes da dívida técnica no aplicativo e esperam resolvê-lo reescrevendo uma quantidade significativa do código do aplicativo e migrando para novas soluções nativas de nuvem para muitos componentes.
  • A equipe de engenharia espera aproveitar essa oportunidade para reprojetar completamente o sistema em microsserviços e hospedá-lo no AKS, uma tecnologia nova e empolgante para a equipe.

Aplicando a abordagem e os resultados

  • Embora a equipe de carga de trabalho tenha um desejo claro de fazer refatoração em grande escala como parte da migração para a nuvem, eles percebem que a carga de trabalho precisa manter o ROI. A manutenção do ROI da carga de trabalho provavelmente levará a equipe a usar soluções que não exijam treinamento extensivo da nova equipe de engenharia, e eles não poderão fazer grandes reescritas na carga de trabalho como parte da migração.
  • A equipe de carga de trabalho adota uma abordagem pragmática para o projeto do sistema, garantindo que ele permaneça com um bom custo-benefício, funcione dentro dos parâmetros esperados e não seja projetado em excesso. Para garantir que o ROI seja mantido e que a migração seja realizada de forma eficiente, eles decidiram que a melhor abordagem seria usar uma solução semelhante na nuvem, como o Serviço de Aplicativo do Azure.
  • Durante a migração, eles resolverão seletivamente algumas dívidas técnicas que lhes permitirão evoluir ainda mais a plataforma quando ela estiver no Azure, e considerarão o ROI como parte do processo de seleção.

Refinar o projeto

Faça o ajuste fino do projeto priorizando os serviços que podem reduzir o custo geral, que não precisam de investimento adicional ou que não têm um impacto significativo na funcionalidade. A priorização deve levar em conta o modelo de negócios e as opções de tecnologia que geram alto ROI.

Você poderá explorar opções mais baratas que podem permitir a flexibilidade de recursos ou o dimensionamento dinâmico, ou poderá justificar o uso dos investimentos existentes. Os parâmetros de priorização podem levar em conta os custos necessários para cargas de trabalho críticas, runtime e operações, além de outros custos que possam ajudar a equipe a trabalhar com mais eficiência.

Desafio da Contoso

  • A carga de trabalho existente é hospedada em um dispositivo hiperconvergente (HCI) e o centro de custos da equipe é cobrado pelos custos de computação, rede e armazenamento.
  • A carga de trabalho implantou os ambientes de pré-produção e produção em máquinas virtuais do Windows.
  • O GitHub Actions com executores auto-hospedados é usado para executar trabalhos do GitHub Actions.

Aplicando a abordagem e os resultados

  • Depois de avaliar várias opções nativas de nuvem, a equipe decidiu que migrar os componentes da Web para o Serviço de Aplicativo do Azure proporcionaria compatibilidade com os aplicativos do Windows IIS sem alterações significativas e não exigiria muito treinamento.
  • A equipe decide continuar usando o GitHub Actions com executores auto-hospedados, mas migrará para um conjunto de dimensionamento de máquinas virtuais com a capacidade de escalar para zero nós quando eles não estiverem sendo usados.

Projete sua arquitetura para dar suporte as limitações de custo

Implemente limitações de custo por meio de soluções de plataforma, políticas, padrões de projeto de infraestrutura e aplicativos ou automação para ajudar a garantir que os custos do seu ambiente de nuvem sejam mantidos dentro dos orçamentos.

A aplicação por meio de políticas de governança ou padrões de projeto de aplicativos incorporados pode evitar cobranças incidentais ou não aprovadas.

Desafio da Contoso

  • O sistema existente não tem limitações de custo, mas raramente sofre alterações, de modo que há pouca motivação para construir essas limitações.
  • Os proprietários do ambiente HCI definiram um limite de recursos que se aplica a essa carga de trabalho, impedindo efetivamente que a carga de trabalho consuma recursos excessivos de computação e armazenamento.
  • A equipe está preocupada com o fato de que a migração para a nuvem representará o risco de incorrer em custos inesperados e não tem certeza de como minimizar esse risco.

Aplicando a abordagem e os resultados

  • A equipe se instrui sobre as soluções de Gerenciamento de Custos da Microsoft.
  • A equipe planeja configurar limites de escala para os planos do Serviço de Aplicativo do Azure.
  • A equipe planeja configurar uma política de negação para determinados SKUs de máquinas virtuais com preços mais altos para impedir que esses SKUs sejam implantados.
  • A equipe planeja implementar a automação para ajudar a controlar os custos de armazenamento. Certos tipos de dados serão movidos automaticamente do armazenamento frequente para o armazenamento esporádico ou de arquivos com base em critérios como a data do último acesso. Esse tipo de automação não é possível no ambiente HCI.

Verifique seu conhecimento

1.

Qual desses é um dos fatores que você deve levar em conta ao medir o custo total da carga de trabalho?

2.

Ao ajustar o projeto da carga de trabalho para o custo, quais desses itens você deve priorizar?

3.

Se a equipe da carga de trabalho quiser garantir que o custo do Azure da carga de trabalho seja mantido sob controle, o que deve ser feito?