Share via


Recomendações para otimizar os custos de fluxo

Aplica-se a esta recomendação de lista de verificação de Otimização de Custos do Azure Well-Architected Framework:

CO:09 Otimizar os custos do fluxo. Alinhe o custo de cada fluxo com a prioridade de fluxo. Ao atribuir prioridades aos fluxos, considere as funcionalidades e os requisitos não funcionais de cada fluxo. A otimização dos gastos com fluxos requer frequentemente compromissos estratégicos.

Este guia descreve as recomendações para otimizar o custo de cada um dos fluxos na sua carga de trabalho. A otimização de custos dos fluxos numa carga de trabalho envolve alocar e gerir estrategicamente recursos para minimizar as despesas e manter o desempenho. Esta otimização é crucial porque garante uma utilização eficiente dos recursos investidos, reduz as despesas desnecessárias e melhora o retorno global do investimento para a infraestrutura. Se não otimizar os custos dos fluxos numa carga de trabalho, arrisca-se a gastar excessivamente nos recursos, o que resulta em custos operacionais inflacionados e diminuição da rentabilidade.

Definições

Termo Definição
Desassociar A estratégia de remover um fluxo de um recurso que contém vários fluxos e colocá-lo num recurso separado.
Fluxo Numa carga de trabalho, a sequência de ações que executa uma função específica. Um fluxo envolve o movimento de dados e a execução de processos entre componentes da carga de trabalho.
Fluxo do sistema O fluxo de informações e processos num sistema. O sistema segue automaticamente este fluxo para ativar os fluxos de utilizador ou a funcionalidade da carga de trabalho.
Fluxo de utilizador Os caminhos ou sequências de ações que os utilizadores efetuam numa aplicação ou sistema.

Principais estratégias de design

Invista mais em fluxos de alta prioridade do que em fluxos de prioridade inferior. Alinhar a prioridade de fluxo e as despesas pode implicar a desacoplação de fluxos que partilham atualmente o mesmo recurso. Também pode envolver a combinação de fluxos que têm requisitos semelhantes, mas que são executados em recursos separados. Por exemplo, suponha que tem uma aplicação Web que inclui vários fluxos, como registo de utilizador, início de sessão e processamento de dados. Estes fluxos são executados num único servidor, apesar de terem necessidades de recursos diferentes. Para otimizar os custos e o desempenho, pode separar fluxos ou combinar fluxos:

  • Separar fluxos. Por exemplo, pode desassociar o fluxo de registo de utilizadores das outras pessoas e movê-lo para um servidor dedicado e de baixo custo. Este fluxo é importante, mas não é intensivo em recursos, pelo que é um bom candidato para um servidor menos dispendioso.

  • Combinar fluxos. Por exemplo, pode combinar os fluxos de início de sessão e processamento de dados, que têm requisitos de recursos mais elevados e executá-los em conjunto num servidor de alto desempenho. Combinar estes fluxos permite que o servidor processe de forma eficiente as necessidades intensivas de recursos de ambos os fluxos. Otimiza o desempenho e os custos.

Numa carga de trabalho, podem existir diferentes tipos de fluxos ou caminhos que tem de considerar. Este guia foca-se nos seguintes tipos de fluxo:

  • Fluxos de sistema. A otimização dos fluxos de sistema envolve simplificar a comunicação e a interação entre componentes do sistema, minimizar os estrangulamentos e garantir uma utilização eficiente dos recursos.

  • Fluxos de utilizador. A otimização dos fluxos de utilizador envolve melhorar a experiência do utilizador, reduzir pontos de atrito e garantir uma navegação e interação suaves dentro da aplicação ou do sistema.

Criar um inventário de fluxos

Um inventário de fluxos é uma lista abrangente e uma descrição de todas as sequências de ações, transições de dados e interações do sistema numa carga de trabalho. Um inventário de fluxos é o primeiro passo para garantir que os investimentos estão alinhados com a prioridade dos fluxos. Só deve otimizar os fluxos quando compreender totalmente o objetivo e as dependências. Eis os passos para criar um inventário dos fluxos de carga de trabalho:

  1. Fluxos de documentos. Comece por documentar e listar todos os fluxos existentes na sua carga de trabalho para compreender o estado abrangente do sistema. Inclua todas as sequências de ações, transições de dados e interações do sistema. Familiarize-se com todos os componentes, como serviços externos, bases de dados, middleware e integrações de terceiros. Além disso, controle ou calcule o volume de pedidos ao longo do tempo.

  2. Visualizar fluxos. Para obter uma perspetiva mais clara, represente as suas descobertas visualmente, possivelmente em fluxogramas ou diagramas. As visualizações ajudam-no a ver as interdependências entre componentes. Considere utilizar uma ferramenta como o Visio para o ajudar com as visualizações.

  3. Categorizar fluxos. Agrupe fluxos semelhantes, tendo em conta atributos como a respetiva funcionalidade (por exemplo, autenticação, obtenção de dados e processamento de transações), a importância para a empresa ou os recursos que utilizam (CPU, memória ou largura de banda).

Priorizar fluxos

A atribuição de prioridades de fluxos é o processo de classificação de fluxos com base na sua influência nos resultados empresariais, nas implicações na experiência do utilizador e nos recursos que consomem. Os fluxos críticos exigem frequentemente níveis mais elevados de disponibilidade, tempos de recuperação mais rápidos e melhor desempenho para cumprir os objetivos da carga de trabalho. Ao atribuir prioridades aos fluxos, pode alinhar melhor os gastos com a prioridade do fluxo. Para atribuir prioridades aos fluxos, considere os seguintes passos:

  • Identificar o valor do fluxo. Quando otimiza os custos do fluxo de carga de trabalho, tem de identificar o fluxo que fornece mais valor. Não quer gastar mais do que um fluxo vale. Em vez de simplesmente reduzir os custos, considere transferir os custos para priorizar os fluxos mais valiosos. Por exemplo, o fluxo de finalização de compra é fundamental para as empresas, mas o histórico de compras não é. Deve alocar mais recursos e orçamento ao fluxo de saída.

    Os fluxos de baixa prioridade têm expectativas mais baixas de disponibilidade, recuperação e desempenho. Pode reduzir os custos ao utilizar configurações mais baratas para reduzir o desempenho, a disponibilidade ou os gastos de continuidade de negócio.

  • Considere as métricas de fluxo. Se estiver a ter dificuldades em dar prioridade aos seus fluxos, considere os objetivos de disponibilidade e recuperação que atribuiu aos mesmos. Os fluxos críticos têm frequentemente requisitos de elevada disponibilidade e contratos de nível de serviço (SLAs). Os fluxos associados a um RPO e RTO inferiores são mais importantes do que os fluxos que têm um RPO e RTO mais elevados.

Otimizar fluxos independentes

Por vezes, os fluxos já estão em execução em recursos diferentes. Nestes casos, pode avaliar e otimizar mais facilmente os gastos. Avalie os componentes e processos envolvidos em cada fluxo independente para determinar se existem formas de os otimizar ou simplificar. Para otimizar fluxos independentes, pode seguir estes passos:

  • Eliminar componentes desnecessários. Remova quaisquer elementos desnecessários que não contribuam para a funcionalidade principal do fluxo, reduzindo assim a complexidade e o custo.

  • Redesenhar o fluxo. Considere redesenhar a arquitetura do fluxo para melhorar a sua eficiência. Pode alterar a sequência de operações, reduzir a latência ou melhorar as velocidades de transferência de dados, por exemplo.

  • Escolha um escalão de desempenho adequado. Diferentes fluxos podem ter diferentes exigências em termos de velocidade de processamento, memória ou outras métricas de recursos. Certifique-se de que escolhe uma camada de recursos que se alinha bem com os requisitos específicos de cada fluxo.

  • Ajuste as definições de dimensionamento. Se um fluxo tiver uma procura variável, considere implementar o dimensionamento automático para ajustar dinamicamente os recursos de acordo com as necessidades em tempo real, otimizando assim os custos.

  • Ajuste as configurações. Ajuste as outras definições, como as opções de armazenamento de dados ou de rede, para melhor se alinharem com os requisitos de desempenho e orçamento do fluxo.

Separar fluxos diferentes

Separar fluxos diferentes em diferentes recursos é um processo de alocação de tarefas distintas com necessidades computacionais variadas para recursos dedicados. Os fluxos diferentes são fluxos que têm atributos diferentes. Estes atributos podem incluir requisitos computacionais, dependências de dados, operações de E/S, sensibilidade à latência, necessidades de segurança e requisitos de conformidade. Muitas vezes, é mais económico executar diferentes tipos de fluxos em recursos separados. Ao fazê-lo, permite uma alocação de recursos precisa para cada fluxo, o que reduz as despesas desnecessárias e garante a máxima eficiência.

Considere separar fluxos diferentes que estão atualmente combinados. Esta separação aumenta a escalabilidade, a tolerância a falhas e a adaptabilidade e também simplifica os custos. Ao garantir que cada fluxo funciona de forma independente, reduz os riscos de interferência e pode alocar recursos de forma mais económica com base na prioridade de cada fluxo. Por exemplo, suponha que coloca CRM (fluxo de utilizador) com um motor de dados (fluxo de dados). O tráfego do utilizador para o sistema CRM durante o horário de expediente pode abrandar o motor de dados. Quando desassocia fluxos, o motor de dados pode dimensionar cada componente ou serviço de forma independente com base na procura de cargas de trabalho. Esta desacoplamento otimiza a alocação de recursos e reduz os custos.

Combinar fluxos semelhantes

Combinar fluxos semelhantes num único recurso é um processo de consolidação de tarefas ou processos com atributos comparáveis e da utilização de recursos partilhados para os mesmos. Esta estratégia elimina redundâncias e garante uma utilização mais eficiente dos recursos, o que leva a uma redução significativa dos custos. Tipos semelhantes de fluxos partilham atributos semelhantes. Pode considerar os mesmos atributos que vê quando separa fluxos diferentes: requisitos computacionais, dependências de dados, operações de E/S, sensibilidade à latência, necessidades de segurança e requisitos de conformidade. Eis alguns exemplos em que combinar fluxos de carga de trabalho semelhantes para utilizar o mesmo recurso pode levar a poupanças substanciais:

  • Servidores Web. Em vez de dedicar servidores Web separados para cada aplicação, considere consolidá-los, especialmente se o tráfego não for consistentemente elevado. Um servidor Web partilhado, emparelhado com um proxy inverso, pode gerir e encaminhar efetivamente o tráfego para várias aplicações.

  • Gateways de API. Em vez de manter gateways de API individuais para microsserviços ou aplicações separados, pode utilizar um gateway de API centralizado para simplificar os pedidos e direcioná-los para o serviço relevante. Fazê-lo facilita a gestão e também reduz os custos.

  • Processamento de registos. Em vez de ter várias aplicações ou serviços que operam as suas próprias instâncias de processamento de registos, considere direcioná-las todas para uma ferramenta de processamento de registos partilhada. Esta abordagem minimiza o número de instâncias ativas, o que se traduz numa poupança direta de custos.

  • Serviços de autenticação. Se várias aplicações implementarem os seus próprios mecanismos de autenticação distintos, será introduzida redundância. Integrar uma solução de início de sessão único (SSO) ou um serviço de autenticação comum reduz esta duplicação e otimiza a utilização de recursos, o que reduz os custos.

Risco: não confunda coincidência com o design. Dois fluxos semelhantes não servem necessariamente o mesmo propósito. Tem de compreender a função e o design de cada fluxo antes de intercalar ou alterá-los. Interpretar mal um fluxo ao concentrar-se apenas no seu aspeto pode levar a consequências não intencionais e perturbar o serviço ou processo que suporta. Se vários fluxos servirem a mesma função e não existirem diferenças perceptíveis na estrutura ou intenção, considere consolidá-los.

Monitorizar continuamente fluxos

A natureza dos fluxos e das cargas de trabalho pode mudar ao longo do tempo, pelo que tem de rever as despesas dos fluxos para garantir que os custos estão alinhados com as prioridades. Avalie a utilização de recursos de cada fluxo ao analisar a utilização de computação, armazenamento e rede associada a cada fluxo. Identifique quaisquer ineficiências ou áreas onde os recursos são subutilizados. Esta análise ajuda-o a identificar oportunidades de otimização de custos. Eis algumas considerações a ter em conta ao rever a utilização do fluxo:

  • Analisar padrões de utilização. Analise os padrões de utilização dos fluxos. Alguns fluxos podem estar mais ativos durante determinadas horas do dia ou mês, enquanto outros podem ter uma carga consistente. Ao compreender estes padrões, pode prever as necessidades dos recursos e ajustar a alocação para evitar estrangulamentos e sobreaprovisionamento.

  • Monitorizar métricas relevantes. Determine as métricas que podem ajudar a avaliar a eficiência e a relação custo-eficácia de cada fluxo. Considere a utilização da CPU, os custos de transferência de dados, os custos de transação e os requisitos de espaço de armazenamento. Utilize as ferramentas de monitorização para recolher métricas detalhadas sobre a utilização e o desempenho dos recursos.

  • Considere a manutenção contínua. Considere o custo da manutenção, especialmente quando utiliza soluções de infraestrutura como serviço, como máquinas virtuais. Tem de ter em conta atividades como a aplicação de patches, atualizações, cópias de segurança, monitorização e segurança.

Durante a sua análise, identifique quaisquer ineficiências ou áreas em que os recursos não são utilizados de forma eficaz. Considere instâncias de computação inativas, dados não utilizados e largura de banda de rede reduzida. Estas ineficiências podem indicar oportunidades de otimização de custos.

Facilitação do Azure

Atribuir prioridades, otimizar e monitorizar fluxos: A ferramenta Fluxo de Utilizador no Application Insights fornece uma representação visual da navegação do utilizador nas páginas e funcionalidades do seu site. Esta ferramenta ajuda a identificar áreas onde os utilizadores saem frequentemente, repetem ações ou seguem caminhos específicos. Ao comparar o comportamento real do utilizador com os resultados e objetivos previstos, pode identificar fluxos críticos. Também lhe permite otimizar potenciais problemas, como taxas de abandono elevadas, ações repetitivas ou falhas de conceção. A ferramenta também permite filtragem de propriedades personalizadas através de dimensões, oferecendo uma análise mais personalizada.

O Azure Monitor ajuda-o a obter informações sobre o desempenho e o estado de funcionamento das suas aplicações. Fornece capacidades de monitorização e diagnóstico. Estas capacidades permitem-lhe identificar estrangulamentos de desempenho, otimizar a utilização de recursos e detetar e resolver problemas que possam afetar os custos.

O Log Analytics é uma ferramenta que lhe permite recolher, analisar e visualizar dados de registo de várias origens. Ao utilizar o Log Analytics, pode obter informações sobre os registos de aplicações e infraestruturas, identificar tendências e otimizar os custos ao gerir a utilização e a retenção de dados. Considere colocalizar registos e utilizar soluções dedicadas em vez de partilhadas para gerir melhor os custos.

Lista de verificação da Otimização de Custos

Veja o conjunto completo de recomendações.