Compartilhar via


Estratégias de arquitetura para selecionar os serviços corretos

Aplica-se a esta recomendação de lista de verificação de Eficiência de Desempenho do Azure Well-Architected Framework:

PE:03 Selecione os serviços corretos. Os serviços, a infraestrutura e as seleções de camada devem dar suporte à sua capacidade de atingir as metas de desempenho da carga de trabalho e acomodar as alterações de capacidade esperadas. As seleções também devem pesar os benefícios de usar recursos de plataforma ou criar uma implementação personalizada.

Este guia descreve as recomendações para selecionar os serviços apropriados para sua carga de trabalho. As recomendações a seguir ajudam você a escolher serviços que melhor atendam aos requisitos e às demandas de sua carga de trabalho. Ao usar serviços projetados para lidar com os requisitos da carga de trabalho, você pode garantir que sua carga de trabalho atenda às suas metas de desempenho. Se você escolher serviços inadequados para sua carga de trabalho, os serviços poderão não ser capazes de lidar com as demandas da carga de trabalho. Serviços insuficientes podem levar a tempos de resposta lentos, gargalos ou falhas de carga de trabalho.

Definições

Prazo Definition
Zona de disponibilidade Um grupo separado de datacenters em uma região. Cada zona de disponibilidade é independente das outras, com seu próprio poder, resfriamento e infraestrutura de rede. Muitas regiões dão suporte a zonas de disponibilidade.
Serviço de computação Um serviço que fornece a infraestrutura necessária para executar um aplicativo.
Serviço de banco de dados Um serviço que fornece bancos de dados relacionais e não relacionais para seu aplicativo.
Infraestrutura Os componentes físicos da computação em nuvem e a localização geográfica dos componentes.
IaaS (infraestrutura como serviço) Um serviço no qual o cliente é responsável pelo sistema operacional, identidade, aplicativos e rede.
PaaS (plataforma como serviço) Um serviço no qual o provedor de serviços de nuvem é responsável pelo sistema operacional. O provedor de serviços de nuvem compartilha a responsabilidade com o cliente pelo gerenciamento de identidade, aplicativos e rede.
Região Um perímetro geográfico que contém um conjunto de datacenters.
Resource Uma única entidade ou componente que você pode criar, configurar e utilizar em um provedor de serviços de nuvem.
Service Um produto ou oferta de um provedor de serviços de nuvem.
Unidade de manutenção de estoque (SKU) Uma camada de serviço para um serviço do Azure.
Serviço de armazenamento Um serviço que fornece armazenamento para objetos, blocos e arquivos.

Os serviços escolhidos devem se alinhar com as metas de desempenho da carga de trabalho e ser adaptáveis às necessidades futuras de capacidade. À medida que a carga de trabalho se expande ou evolui, os serviços usados devem corresponder aos padrões de desempenho sem a necessidade de ajustes importantes. Considere o equilíbrio entre os recursos da plataforma e as implementações personalizadas. Os recursos da plataforma fornecem soluções imediatas, mas as opções personalizadas oferecem uma personalização precisa. Suas seleções de serviço devem ser tanto de visão de futuro quanto adaptadas às suas necessidades específicas, levando em conta as compensações entre conveniência e personalização.

Entender os requisitos de carga de trabalho

Entender os requisitos de carga de trabalho refere-se à compreensão das demandas técnicas e funcionais de uma carga de trabalho. Essa análise ajuda a determinar os recursos, armazenamento, computação, rede e outras especificações necessárias para executar a carga de trabalho. Alinhar serviços com as necessidades específicas de uma carga de trabalho ajuda a impedir o excesso de provisionamento ou a subutilização de recursos.

Avalie as necessidades e características da carga de trabalho para determinar os requisitos e alinhe os requisitos de carga de trabalho aos seus destinos de desempenho em todas as camadas. Você deve considerar restrições ou dependências. Quando você entende os requisitos de carga de trabalho, pode tomar decisões informadas. Você pode determinar a infraestrutura certa e implementar estratégias para lidar com cargas de pico ou variações na demanda.

  • Atenda às metas de desempenho. Selecione os serviços que permitem que você atenda às metas de desempenho para sua carga de trabalho. Verifique se um serviço pode dar suporte às necessidades de desempenho e se você pode monitorar seu desempenho. Colete dados de desempenho para componentes críticos.

  • Considere as restrições organizacionais. Familiarize-se com as restrições que sua organização pode ter nos serviços que você implanta. Considere essas restrições ao projetar sua solução.

  • Considere os requisitos de conformidade e segurança. Os requisitos de conformidade e segurança podem afetar os serviços e configurações selecionados. Verifique se um serviço escolhido atende aos requisitos relacionados ao armazenamento, criptografia, controles de acesso, logs de auditoria e locais de dados.

  • Considere as habilidades da equipe. Sua equipe cria e mantém cargas de trabalho. Serviços diferentes exigem habilidades diferentes. Escolha os serviços que sua equipe sabe usar ou se comprometa a trecá-los antes de escolher um serviço. Verifique se os membros da equipe possuem conhecimento e conhecimento para usar efetivamente os serviços e otimizar seu desempenho.

Compensação: os serviços especializados oferecem funcionalidades específicas, mas podem limitar a personalização. Os recursos flexíveis exigem mais gerenciamento e configuração em comparação com serviços especializados. Os serviços gerenciados oferecem facilidade de gerenciamento, mas você pode ter menos controle sobre a infraestrutura subjacente em comparação com recursos autogerenciados.

Entender os serviços

Entender os serviços é conhecer os recursos, os limites e as funcionalidades das ferramentas e ofertas de um fornecedor. Uma compreensão dos serviços ajuda você a usar recursos internos, reduzindo a necessidade de soluções personalizadas complexas e melhorando a eficiência de desempenho.

Considere vários fatores e obtenha uma compreensão abrangente de um serviço antes de escolhê-lo. Pesquise e avalie serviços e ferramentas que o provedor oferece. Determine quais serviços e ferramentas se alinham melhor com seus requisitos de carga de trabalho. Considere fatores como serviços gerenciados, opções sem servidor e serviços especializados.

Entender os limites de serviço

Os limites de serviço são os limites predefinidos que os provedores de serviços definem. Os limites de serviço definem o uso máximo de recursos ou recursos dentro desse serviço. Quando estiver familiarizado com os limites de serviço, você pode evitar problemas como contenção de recursos, degradação de desempenho ou interrupções inesperadas do serviço. Você pode planejar e dimensionar a infraestrutura adequadamente. Seu planejamento leva em conta fatores como volume de dados, capacidade de processamento e requisitos de residência de dados.

Preferir recursos da plataforma

Preferir recursos de plataforma é usar funcionalidades internas fornecidas por um provedor para lidar com tarefas específicas sem código personalizado. Os fornecedores projetam recursos de plataforma para lidar com tarefas específicas com eficiência em escala e mantêm regularmente esses recursos. Os recursos de plataforma permitem que você aproveite melhor os recursos de infraestrutura de nuvem. Escolha os serviços que permitem descarregar a funcionalidade para a plataforma em vez de escrever e manter seu próprio código personalizado. Em muitos casos, as soluções paaS (plataforma como serviço) fornecem melhor eficiência de desempenho do que o código personalizado. O código personalizado adiciona complexidade e torna a carga de trabalho propensa a problemas de desempenho. Só desenvolva código personalizado quando os recursos de serviço não forem suficientes.

Compensação: o melhor serviço para sua carga de trabalho pode ser uma tecnologia em que sua equipe não é qualificada, não pode pagar ou pode exigir camadas de segurança extras. Por exemplo, um balanceador de carga público pode atender às suas necessidades de desempenho. No entanto, se você não tiver um firewall de aplicativo Web, talvez seja necessário implantar um firewall para proteger a carga de trabalho.

Avaliar os requisitos de infraestrutura

A eficiência de desempenho dos recursos está vinculada à infraestrutura em que residem. Isso torna a seleção da infraestrutura certa crítica à eficiência do desempenho do serviço. Avaliar os requisitos de infraestrutura significa identificar a região geográfica e as zonas de disponibilidade mais adequadas para dar suporte à carga de trabalho. As principais considerações nesta tomada de decisão incluem:

  • Entenda as regiões e as zonas de disponibilidade. Cada região corresponde a uma localização geográfica distinta. As zonas de disponibilidade representam datacenters físicos individuais em uma determinada região.

  • Modelo de implantação de região única versus várias regiões. Um modelo de implantação de região única implanta todos os recursos em uma única região. Um modelo de implantação de várias regiões implanta recursos em várias regiões. Uma implantação de várias regiões pode reduzir a latência para os usuários finais e reduzir as restrições de capacidade. No entanto, também pode aumentar o custo e a complexidade da carga de trabalho. Escolha o modelo de implantação que melhor atenda às suas necessidades de carga de trabalho.

  • Entenda os recursos disponíveis. Regiões diferentes têm recursos disponíveis diferentes, como o número de serviços e zonas de disponibilidade. Entenda os recursos disponíveis em uma região antes de selecioná-la. Verifique se uma região atende às suas necessidades de desempenho de carga de trabalho.

  • Considere a latência. Latência, o tempo que os dados levam para viajar de origem para destino, aumenta os serviços adicionais uns dos outros. Os serviços que se comunicam entre regiões ou zonas de disponibilidade podem enfrentar maior latência. É recomendável identificar os serviços que se comunicam com frequência e posicioná-los na mesma região. Além disso, selecionar uma região próxima à sua base de usuários primária pode minimizar a latência, oferecendo uma melhor experiência do usuário.

  • Entenda o mapeamento do datacenter. As zonas de disponibilidade podem não ser mapeadas consistentemente para os mesmos datacenters em assinaturas diferentes. Por exemplo, 'Zona 1' em 'Assinatura A' pode ser diferente de 'Zona 1' em 'Assinatura B'. Ao operar com várias assinaturas, você deve conhecer esses mapeamentos para selecionar zonas que reforçam o desempenho de forma ideal.

Avaliar os requisitos de rede

Avalie as necessidades de rede para determinar as configurações e os serviços de carga de trabalho apropriados. Verifique se a rede pode dar suporte à carga de trabalho. Para avaliar os requisitos de rede, considere:

  • Entenda o tráfego de rede. Avalie o tráfego de rede esperado para a carga de trabalho. Entenda as necessidades de transferência de dados e a frequência das solicitações de rede.

  • Entenda os requisitos de largura de banda. Determine os requisitos de largura de banda para a carga de trabalho. Considere a quantidade de dados transmitidos e recebidos pela rede.

  • Entenda a latência de rede. Avalie a latência desejada para a carga de trabalho. Use redes virtuais privadas e redes de backbone em vez de atravessar a Internet pública. Essa técnica diminui a latência da carga de trabalho.

  • Entenda a taxa de transferência. Considere a taxa de transferência necessária para a carga de trabalho. A taxa de transferência refere-se à quantidade de dados que podem ser transmitidos por uma rede em um determinado tempo. Configure as opções de roteamento de rede para aproveitar os benefícios da taxa de transferência de rede.

Compensação: a rede virtual privada limita o acesso público e dificulta a implantação e o gerenciamento de recursos.

Avaliar os requisitos de computação

Avaliar os requisitos de computação envolve avaliar as necessidades de computação específicas de uma carga de trabalho, incluindo fatores como tipo de instância, escalabilidade e contêinerização. Diferentes serviços de computação têm diferentes funcionalidades e características que podem afetar o desempenho da carga de trabalho. Selecione o serviço de computação ideal para garantir que sua carga de trabalho seja executada com eficiência. Considere as seguintes estratégias:

  • Entenda os tipos de instância. Diferentes tipos de instância são otimizados para cargas de trabalho diferentes, como instâncias com otimização de CPU, otimizada para memória e GPU. Escolha o tipo de instância que se alinha às suas necessidades.

  • Considere o dimensionamento automático. Se sua carga de trabalho tiver demanda variável, considere um serviço de computação com um recurso de dimensionamento automático que pode ajustar automaticamente a capacidade de computação com base na demanda. O dimensionamento automático ajuda a garantir que você tenha recursos suficientes durante os horários de pico e impede o excesso de provisionamento durante períodos de baixa demanda.

  • Considere a contêinerização. Os contêineres fornecem vantagens de desempenho em comparação com uma carga de trabalho não pertencente. Considere usar a contêinerização se ela atender às suas necessidades arquitetônicas. Os contêineres melhoram o desempenho da computação por meio de isolamento, eficiência de recursos, tempo de inicialização rápido e portabilidade.

    Ao usar contêineres, considere fatores de design, como o contêiner de todos os componentes do aplicativo. Use runtimes de contêiner baseados em Linux para imagens leves. Dê aos contêineres ciclos de vida curtos para torná-los imutáveis e substituíveis. Reúna logs e métricas relevantes de contêineres, hosts de contêiner e do cluster subjacente. Use esses dados para monitorar e analisar o desempenho. Os contêineres são apenas um componente de uma arquitetura geral. Escolha um orquestrador de contêiner apropriado, como o Kubernetes, para aprimorar ainda mais o desempenho e a escalabilidade.

    Benefício do contêiner Description
    Isolamento Os contêineres fornecem ambientes isolados para aplicativos. Os contêineres garantem que os recursos do aplicativo não interfiram entre si. Esse isolamento garante que os recursos de computação atribuídos a um contêiner sejam dedicados à execução de um aplicativo específico, resultando em um melhor desempenho.
    Eficiência de recursos Os contêineres são leves e compartilham o kernel do sistema operacional host, o que permite uma utilização eficiente de recursos. Vários contêineres podem ser executados na mesma infraestrutura virtualizada, o que maximiza o uso de recursos de computação.
    Tempo de inicialização rápido As imagens de contêiner são predefinidas e são iniciadas rapidamente quando necessário. Esse tempo de inicialização rápido permite escalabilidade rápida. Ele permite que os aplicativos reduzam ou reduzam verticalmente com base na demanda e evitem gargalos de desempenho.
    Portability Os contêineres encapsulam todas as dependências e bibliotecas necessárias dentro da imagem. Com contêineres, é mais fácil mover aplicativos entre diferentes sistemas operacionais ou ambientes. Essa portabilidade permite flexibilidade na implantação de aplicativos e permite uma migração fácil entre provedores de nuvem ou ambientes locais.
  • Escolha a camada apropriada. Em cada serviço de computação, você pode definir a capacidade de computação, selecionar recursos e habilitar recursos. Com base em seus destinos de desempenho, escolha a camada de serviço apropriada para seu serviço de computação.

  • Determine a contagem de instâncias. Determine a contagem mínima de instâncias necessária para sua carga de trabalho. Algumas cargas de trabalho, mesmo com carga mínima, podem exigir mais de uma instância de um recurso de computação. Defina a contagem mínima de instâncias adequadamente.

Avaliar os requisitos de balanceamento de carga

O balanceamento de carga garante que o tráfego de rede seja distribuído uniformemente e impeça que qualquer servidor único seja sobrecarregado com solicitações. O balanceamento de carga ajuda a evitar gargalos e reduzir os tempos de resposta. Avalie os diferentes serviços de balanceamento de carga que seu provedor de nuvem oferece. Examine a documentação e as ferramentas de comparação do provedor de nuvem para entender os recursos. Selecione o serviço mais adequado para sua carga de trabalho. Para selecionar um serviço de balanceamento de carga, considere:

  • Entenda o tipo de tráfego: determine se o serviço de balanceamento de carga precisa lidar com o tráfego da Web, como HTTP e HTTPS, ou outros protocolos, como Protocolo de Controle de Transmissão (TCP) ou UDP (User Datagram Protocol).

  • Conheça o roteamento global ou regional: determine se sua carga de trabalho requer balanceamento de carga em uma região específica ou em várias regiões.

  • Conheça os SLOs (objetivos de nível de serviço): considere o SLA (contrato de nível de serviço). Diferentes serviços de balanceamento de carga oferecem diferentes níveis de desempenho.

  • Entender os recursos: considere os serviços de balanceamento de carga que fornecem aceleração do site, distribuição de tráfego ideal e balanceamento de carga de camada 4 de baixa latência.

Avaliar os requisitos do armazenamento de dados

Avaliar os requisitos do armazenamento de dados é avaliar as necessidades e condições específicas para armazenar, recuperar e gerenciar dados. Essa avaliação considera fatores como volume de dados, velocidade de acesso, consistência e durabilidade. Uma carga de trabalho pode exigir vários tipos de armazenamentos de dados com base em requisitos técnicos e comerciais variados. Identificar os serviços de armazenamento de dados corretos e a implementação adequada ajuda a evitar gargalos e garante o acesso rápido aos dados.

Avaliar os requisitos do banco de dados

O banco de dados pode afetar fatores como armazenamento e recuperação de dados, processamento de transações, garantias de consistência e manipulação de dados grandes ou em rápida alteração. Avalie as necessidades e os critérios do banco de dados. Selecione um sistema de banco de dados que possa atender a esses requisitos. Avalie os requisitos do banco de dados antes de escolher um banco de dados. Para avaliar os requisitos do banco de dados e escolher o banco de dados apropriado, siga estas etapas:

  • Identifique as necessidades de carga de trabalho. Entenda os requisitos específicos da carga de trabalho, como volume de dados, taxas de transação esperadas, simultaneidade, tipos de dados e crescimento esperado. Avalie diferentes sistemas de banco de dados com base nas suas necessidades de carga de trabalho. Por exemplo, se sua carga de trabalho exigir processamento de dados em tempo real de alto desempenho, você poderá escolher um sistema de banco de dados otimizado para ingestão rápida de dados e baixa latência.

  • Considere o modelo de dados. Determine o modelo de dados que melhor se adapte à sua carga de trabalho. Avalie os requisitos de banco de dados para garantir que o banco de dados escolhido dê suporte às estruturas de dados, relações e restrições de integridade necessárias. Por exemplo, se seus dados tiverem uma estrutura altamente relacional, você poderá optar por um RDBMS (sistema de gerenciamento de banco de dados relacional) que forneça suporte robusto para transações e integridade referencial. O modelo de dados pode ser hierárquico, de rede, relacional, orientado a objeto ou NoSQL. Avalie a complexidade do modelo de dados. Verifique se o banco de dados escolhido dá suporte às estruturas e relações de dados necessárias.

  • Avalie os recursos. Considere fatores como padrões de leitura/gravação, complexidade da consulta, requisitos de latência e necessidades de escalabilidade. Avalie os recursos de desempenho de diferentes sistemas de banco de dados adequadamente. Alguns bancos de dados se destacam em cargas de trabalho de leitura pesada, enquanto outros são otimizados para cargas de trabalho analíticas ou com uso intensivo de gravação.

  • Avalie a carga. Considere fatores como volume de dados, taxas de transação, taxas de leitura/gravação e crescimento esperado. Escolha um banco de dados que possa lidar com a carga de trabalho prevista para garantir uma operação tranquila e evitar gargalos de desempenho à medida que sua carga de trabalho é dimensionada. Considere os requisitos de escalabilidade da carga de trabalho. Esses requisitos incluem crescimento de dados previsto, acesso simultâneo ao usuário e a necessidade de dimensionamento horizontal ou vertical. Avalie as opções de escalabilidade e os recursos de disponibilidade fornecidos por diferentes sistemas de banco de dados.

Avaliar os requisitos de armazenamento

Escolha os serviços de armazenamento que estejam alinhados com seus padrões de acesso a dados, requisitos de durabilidade e necessidades de desempenho. A maioria das cargas de trabalho de nuvem usa uma combinação de tecnologias de armazenamento. Essa técnica é conhecida como a abordagem de persistência poliglota. Determine a combinação apropriada de serviços de armazenamento para sua carga de trabalho. Talvez você também queira separar dados para evitar contaminação. Por exemplo, você pode ter contas de armazenamento separadas para monitorar dados e dados comerciais. Escolher a combinação correta e a implementação correta é importante para otimizar o desempenho do aplicativo.

Avaliar os requisitos de cache

Um cache armazena dados acessados com frequência. O cache reduz a latência de acesso a dados e reduz a carga em componentes de armazenamento de dados. Ele permite que a carga de trabalho lide com mais solicitações sem dimensionamento. É comum armazenar em cache dados de carga de trabalho e conteúdo estático. Um cache Redis pode armazenar dados de sessão, resultados de banco de dados, respostas de API e dados de referência, como configurações. Uma rede de distribuição de conteúdo ou um aplicativo Web estático pode armazenar em cache e fornecer conteúdo estático. Considere armazenar dados em cache para melhorar o desempenho da carga de trabalho. Escolha a opção de cache correta para sua carga de trabalho, preferindo os serviços de cache da plataforma, como o Cache Redis do Azure, em vez dos personalizados ou auto-hospedados.

Facilitação do Azure

Noções básicas sobre os requisitos: use o Azure Monitor para coletar e analisar dados de sua carga de trabalho. O Monitor fornece insights sobre o desempenho e a integridade de suas cargas de trabalho, permitindo que você identifique e solucione problemas.

Noções básicas e avaliação de serviços: examine os serviços e produtos do Azure para determinar se eles atendem aos seus requisitos de desempenho. O Azure oferece vários serviços que realizam o mesmo resultado. Você tem a flexibilidade de alinhar sua escolha de serviço às suas necessidades de desempenho, conjunto de habilidades de equipe e requisitos de custo.

Para obter uma lista dos limites mais comuns do Azure, consulte os limites, cotas e restrições de serviço, cotas e assinaturas do Azure.

O exemplo de limites e cotas de consulta mostra como consultar os limites e cotas de recursos comumente usados.

O Azure tem muitos serviços que podem acomodar qualquer carga de trabalho. Examine as diretrizes de seleção para cada tipo de serviço para ajudá-lo a simplificar sua seleção com base em seus requisitos. Confira os seguintes guias para escolher:

Lista de verificação de eficiência de desempenho

Consulte o conjunto completo de recomendações.