Recomendações para selecionar os serviços certos

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 certos. 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 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, talvez os serviços não sejam 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

Termo Definição
Zona de disponibilidade Um grupo separado de datacenters dentro de uma região. Cada zona de disponibilidade é independente das outras, com sua própria energia, 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 do 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.
Recurso Uma única entidade ou componente que você pode criar, configurar e utilizar em um provedor de serviços de nuvem.
Serviço Um produto ou oferta de um provedor de serviços de nuvem.
SKU (unidade de manutenção de estoque) 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.

Principais estratégias de design

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 que você usa devem corresponder aos padrões de desempenho sem a necessidade de ajustes importantes. Considere o equilíbrio entre recursos de plataforma e implementações personalizadas. Os recursos da plataforma fornecem soluções imediatas, mas as opções personalizadas oferecem uma adaptação precisa. Suas seleções de serviço devem ser de visão de futuro e 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 a compreender as 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 seus requisitos de carga de trabalho às suas metas de desempenho em cada camada. Você deve considerar restrições ou dependências. Ao entender seus requisitos de carga de trabalho, você 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.

  • Atender às metas de desempenho. Selecione os serviços que permitem que você atenda às metas de desempenho da 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 implantados. 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 a armazenamento, criptografia, controles de acesso, logs de auditoria e locais de dados.

  • Considere as habilidades de 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 experiência 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 do 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 ou limites predefinidos definidos pelos provedores de serviços. Os limites de serviço definem o uso máximo de recursos ou recursos dentro desse serviço. Quando você estiver familiarizado com os limites de serviço, poderá 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 da 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. Mas, 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 para a 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 à sua 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, ele 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 que estão disponíveis em uma região antes de selecioná-los. Verifique se uma região atende às suas necessidades de desempenho de carga de trabalho.

  • Considere a latência. A latência, o tempo que os dados levam para viajar da origem para o destino, aumenta os serviços adicionais que são uns dos outros. Os serviços que se comunicam entre regiões ou zonas de disponibilidade podem enfrentar maior latência. É recomendável identificar 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.

  • Entender o mapeamento de 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 maneira ideal.

Avaliar os requisitos de rede

Avalie suas necessidades de rede para determinar os serviços e as configurações de carga de trabalho apropriados. Verifique se a rede pode dar suporte à sua 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 percorrer a Internet pública. Essa técnica diminui a latência da carga de trabalho.

  • Entender 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 conteinerização. Diferentes serviços de computação têm funcionalidades e características variadas 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. Considerar 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, com otimização de 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 possa 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 conteinerização. Os contêineres fornecem vantagens de desempenho em comparação com uma carga de trabalho não pertencente. Considere usar a conteinerizaçã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 conteinerizar 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 Descrição
    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 sejam escalados verticalmente ou reduzidos com base na demanda e evitem gargalos de desempenho.
    Portabilidade 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 suas metas de desempenho, escolha a camada de serviço apropriada para o serviço de computação.

  • Determine a contagem de instâncias. Determine a contagem mínima de instâncias que sua carga de trabalho requer. 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 impede 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 oferecidos pelo provedor de nuvem. 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:

  • Entender 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 TCP (Protocolo de Controle de Transmissão) ou UDP (Protocolo de Datagrama do Usuário).

  • Conhecer 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 de banco de dados antes de escolher um banco de dados. Para avaliar os requisitos de 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 à 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 objetos 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 o crescimento antecipado de dados, o acesso simultâneo do 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 serviços de armazenamento 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 de negócios. Escolher a combinação certa 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 nos 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 do banco de dados, respostas à 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 servir conteúdo estático. Considere armazenar dados em cache para melhorar o desempenho da carga de trabalho. Escolha a opção de cache certa 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, confira Assinatura do Azure e limite de serviços, cotas e restrições.

O exemplo limites de consulta e cotas 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 de acordo com suas necessidades. Confira os seguintes guias para escolher:

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

Consulte o conjunto completo de recomendações.