Partilhar via


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

Aplica-se a esta recomendação da 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 camadas devem oferecer 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 do uso de recursos da plataforma ou da criação de 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 os serviços que melhor atendem 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 ela atenda às metas de desempenho. Se você escolher serviços inadequados para sua carga de trabalho, os serviços podem não ser capazes de lidar com as demandas da sua carga de trabalho. Serviços insuficientes podem levar a tempos de resposta lentos, gargalos ou falhas de carga de trabalho.

Definições

Term Definition
Zona de disponibilidade Um grupo separado de datacenters dentro de uma região. Cada zona de disponibilidade é independente das outras, com sua própria infraestrutura de energia, resfriamento e rede. Muitas regiões suportam 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.
Infraestrutura como serviço (IaaS) Um serviço no qual o cliente é responsável pelo sistema operacional, identidade, aplicativos e rede.
Plataforma como serviço (PaaS) 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.
Serviço Um produto ou oferta de um fornecedor de serviços na 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 estar alinhados 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 seus padrões de desempenho sem exigir grandes ajustes. Considere o equilíbrio entre os recursos da plataforma e as implementações personalizadas. Os recursos da plataforma fornecem soluções imediatas, mas opções personalizadas oferecem personalização precisa. As suas seleções de serviços devem ser orientadas para o futuro e adaptadas às suas necessidades específicas, tendo em conta as compensações entre conveniência e personalização.

Compreender os requisitos da carga de trabalho

Compreender os requisitos da 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 os serviços com as necessidades específicas de uma carga de trabalho ajuda a evitar o provisionamento excessivo ou a subutilização de recursos.

Avalie as necessidades e características de sua carga de trabalho para determinar os requisitos e alinhe seus requisitos de carga de trabalho às suas metas de desempenho em todos os níveis. Você deve levar em conta restrições ou dependências. Quando você entende seus requisitos de carga de trabalho, pode tomar decisões informadas. Você pode determinar a infraestrutura certa e implementar estratégias para lidar com picos de carga ou variações na demanda.

  • Cumpra as metas de desempenho. Selecione serviços que permitam que você atinja as metas de desempenho para sua carga de trabalho. Certifique-se de que um serviço pode suportar as necessidades de desempenho e que você pode monitorar seu desempenho. Colete dados de desempenho para componentes críticos.

  • Considere restrições organizacionais. Esteja familiarizado 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 as configurações selecionados. Certifique-se de que um serviço escolhido atenda aos requisitos relacionados a 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 competências diferentes. Escolha serviços que sua equipe saiba como usar ou se comprometa a treiná-los antes de escolher um serviço. Garantir que os membros da equipe possuam a experiência e o conhecimento para usar os serviços de forma eficaz e otimizar seu desempenho.

Compensação: os serviços especializados oferecem funcionalidades específicas, mas podem limitar a personalização. 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 os recursos autogerenciados.

Compreender os serviços

Compreender os serviços é conhecer as capacidades, os limites e as funcionalidades das ferramentas e ofertas de um fornecedor. Uma compreensão dos serviços ajuda você a usar recursos integrados, 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 os serviços e ferramentas que o provedor oferece. Determine quais serviços e ferramentas melhor se alinham com seus requisitos de carga de trabalho. Considere fatores como serviços gerenciados, opções sem servidor e serviços especializados.

Compreender os limites de serviço

Os limites de serviço são os limites predefinidos que os prestadores de serviços definem. Os limites de serviço definem o uso máximo de recursos ou capacidades 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 consideração fatores como volume de dados, capacidade de processamento e requisitos de residência de dados.

Prefira os 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 da plataforma para lidar com tarefas específicas de forma eficiente em escala e mantêm esses recursos regularmente. Os recursos da plataforma permitem que você aproveite melhor os recursos de infraestrutura de nuvem. Escolha serviços que lhe permitam descarregar funcionalidades para a plataforma em vez de escrever e manter o seu próprio código personalizado. Em muitos casos, as soluções de plataforma como serviço (PaaS) 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 do serviço não forem suficientes.

Compensação: o melhor serviço para sua carga de trabalho pode ser uma tecnologia na qual 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 do desempenho dos recursos está ligada à 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 suportar sua carga de trabalho. As principais considerações nesta tomada de decisão incluem:

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

  • Modelo de implantação de região única versus região múltipla. 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 em 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 se adapta às suas necessidades de carga de trabalho.

  • Entenda os recursos disponíveis. Diferentes regiões têm diferentes recursos disponíveis, como o número de serviços e zonas de disponibilidade. Entenda os recursos disponíveis em uma região antes de selecioná-la. Certifique-se de que uma região atenda à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 ao destino, aumenta quanto mais serviços são uns dos outros. Os serviços que se comunicam entre regiões ou zonas de disponibilidade podem enfrentar maior latência. Recomenda-se identificar os serviços que se comunicam frequentemente e posicioná-los dentro da mesma região. Além disso, selecionar uma região próxima à sua base de usuários principal pode minimizar a latência, oferecendo uma melhor experiência ao 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 'Subscrição A' pode ser diferente de 'Zona 1' em 'Subscrição B'. Ao operar com várias assinaturas, você deve conhecer esses mapeamentos para selecionar zonas que reforcem o desempenho de forma otimizada.

Avaliar os requisitos de rede

Avalie suas necessidades de rede para determinar os serviços e configurações de carga de trabalho apropriados. Certifique-se de que a rede pode suportar a 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. Compreender as necessidades de transferência de dados e a frequência dos pedidos 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 através da rede.

  • Entenda a latência da 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. Taxa de transferência refere-se à quantidade de dados que podem ser transmitidos através de uma rede em um determinado tempo. Configure as opções de roteamento de rede para aproveitar os benefícios da taxa de transferência da 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

A avaliação dos requisitos de computação envolve a avaliação das necessidades específicas de computação de uma carga de trabalho, incluindo fatores como tipo de instância, escalabilidade e conteinerização. Diferentes serviços de computação têm capacidades e características variadas que podem afetar o desempenho da sua carga de trabalho. Selecione o serviço de computação ideal para garantir que sua carga de trabalho seja executada de forma eficiente. Considere as seguintes estratégias:

  • Entenda os tipos de instância. Diferentes tipos de instância são otimizados para diferentes cargas de trabalho, como instâncias de CPU, memória otimizada 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 evita o provisionamento excessivo durante períodos de baixa demanda.

  • Considere a conteinerização. Os contêineres oferecem vantagens de desempenho em comparação com uma carga de trabalho não conteinerizada. Considere o uso de conteinerização se ela atender às suas necessidades arquitetônicas. Os contêineres melhoram o desempenho de 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 a conteinerização de todos os componentes do aplicativo. Use tempos de execução de contêiner baseados em Linux para imagens leves. Dê aos contentores ciclos de vida curtos para os tornar imutáveis e substituíveis. Reúna logs e métricas relevantes de contêineres, hosts de contêineres 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 melhorar ainda mais o desempenho e a escalabilidade.

    Benefício do contentor Description
    Isolamento Os contêineres fornecem ambientes isolados para aplicativos. Os contêineres garantem que os recursos do aplicativo não interfiram uns com os outros. 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 melhor desempenho.
    Eficiência na utilização dos recursos Os contêineres são leves e compartilham o kernel do sistema operacional host, o que permite uma utilização eficiente dos recursos. Vários contêineres podem ser executados na mesma infraestrutura virtualizada, o que maximiza o uso de recursos de computação.
    Tempo de arranque rápido As imagens de contêiner são pré-construídas e iniciadas rapidamente quando necessário. Este tempo de arranque rápido permite uma escalabilidade rápida. Ele permite que os aplicativos aumentem ou diminuam a escala com base na demanda e evitem gargalos de desempenho.
    Portability Os contêineres encapsulam todas as dependências e bibliotecas necessárias na 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 o nível apropriado. Dentro de 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 seu serviço de computação.

  • Determine a contagem de instâncias. Determine a contagem mínima de instâncias que sua carga de trabalho exige. 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 de acordo.

Avaliar os requisitos de balanceamento de carga

O balanceamento de carga garante que o tráfego de rede seja distribuído uniformemente e evita que qualquer servidor 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. Consulte a documentação e as ferramentas de comparação do provedor de nuvem para entender os recursos. Selecione o serviço mais adequado para a sua carga de trabalho. Para selecionar um serviço de balanceamento de carga, considere:

  • Compreender 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 (Transmission Control Protocol) ou UDP (User Datagram Protocol).

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

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

  • Compreender os recursos: considere 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 de armazenamento de dados

Avaliar os requisitos de 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 comerciais e técnicos variáveis. Identificar os serviços de armazenamento de dados certos e a implementação adequada ajuda a evitar gargalos e garante 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 mudança. Avalie as necessidades e os critérios da sua base 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:

  • Identificar as necessidades de carga de trabalho. Compreenda os requisitos específicos de sua 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 em suas necessidades de carga de trabalho. Por exemplo, se sua carga de trabalho exigir processamento de dados em tempo real de alto desempenho, você pode 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 adapta à sua carga de trabalho. Avalie os requisitos do banco de dados para garantir que o banco de dados escolhido ofereça suporte às estruturas de dados, relacionamentos e restrições de integridade necessários. Por exemplo, se seus dados tiverem uma estrutura altamente relacional, você pode optar por um sistema de gerenciamento de banco de dados relacional (RDBMS) 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 seu modelo de dados. Certifique-se de que o banco de dados escolhido suporte as estruturas de dados e relacionamentos necessários.

  • Avalie as capacidades. 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 de acordo. 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 de gravação intensiva.

  • 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 suave e evitar gargalos de desempenho à medida que sua carga de trabalho é dimensionada. Considere os requisitos de escalabilidade da sua carga de trabalho. Esses requisitos incluem o crescimento antecipado dos 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 que se alinhem com seus padrões de acesso a dados, requisitos de durabilidade e necessidades de desempenho. A maioria das cargas de trabalho na nuvem usa uma combinação de tecnologias de armazenamento. Esta técnica é conhecida como abordagem de persistência poliglota. Determine a combinação apropriada de serviços de armazenamento para sua carga de trabalho. Você também pode querer separar os dados para evitar contaminação. Por exemplo, você pode ter contas de armazenamento separadas para monitorar dados e dados corporativos. 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 freqüência. O cache reduz a latência de acesso aos dados e reduz a carga nos componentes de armazenamento de dados. Ele permite que a carga de trabalho lide com mais solicitações sem escala. É 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 definições de configuração. 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 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 requisitos: use o Azure Monitor para coletar e analisar dados de sua carga de trabalho. O Monitor fornece informações sobre o desempenho e a integridade de suas cargas de trabalho, permitindo que você identifique e solucione problemas.

Compreender e avaliar serviços: analise os serviços e produtos do Azure para determinar se cumprem os seus requisitos de desempenho. O Azure oferece vários serviços que alcançam o mesmo resultado. Você tem a flexibilidade de alinhar sua escolha de serviço às suas necessidades de desempenho, conjunto de habilidades da equipe e requisitos de custo.

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

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

O Azure tem muitos serviços que podem acomodar qualquer carga de trabalho. Reveja as orientações de seleção para cada tipo de serviço para o ajudar a simplificar a sua seleção com base nos seus requisitos. Consulte os seguintes guias para escolher:

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

Consulte o conjunto completo de recomendações.