Perspectiva do Azure Well-Architected Framework no Armazenamento de Blobs do Azure
O Armazenamento de Blobs do Azure é uma solução de armazenamento de objetos da Microsoft para a nuvem. O Armazenamento de Blobs é otimizado para armazenar grandes quantidades de dados não estruturados. Dados não estruturados são dados que não estão de acordo com uma definição ou um modelo de dados específico, como texto ou dados binários.
Este artigo pressupõe que, como arquiteto, você revisou suas opções de armazenamento e escolheu o Armazenamento de Blobs como o serviço de armazenamento no qual executar suas cargas de trabalho. A orientação neste artigo fornece recomendações de arquitetura mapeadas de acordo com os princípios dos pilares do Azure Well-Architected Framework.
Importante
Como usar este guia
Cada seção tem uma lista de verificação de projeto que apresenta áreas de preocupação arquitetônicas juntamente com estratégias de projeto.
Também estão incluídas recomendações sobre os recursos tecnológicos que podem ajudar a implementar essas estratégias. As recomendações não representam uma lista exaustiva de todas as configurações disponíveis para o Armazenamento de Blobs e suas dependências. Em vez disso, eles listam as principais recomendações mapeadas para as perspectivas de design. Use as recomendações para criar sua prova de conceito ou otimizar seus ambientes existentes.
Confiabilidade
O objetivo do pilar Confiabilidade é fornecer funcionalidade contínua, criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.
Os princípios de projeto de confiabilidade fornecem uma estratégia de projeto de alto nível aplicada a componentes individuais, fluxos do sistema e ao sistema como um todo.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Confiabilidade.
Usar análise de modo de falha: minimize os pontos de falha considerando dependências internas, como a disponibilidade de redes virtuais, o Cofre de Chaves do Azure ou a Rede de Entrega de Conteúdo do Azure ou pontos de extremidade do Azure Front Door. Falhas podem ocorrer se as credenciais exigidas pelas cargas de trabalho para acessar o Armazenamento de Blobs desaparecerem do Cofre de Chaves ou se as cargas de trabalho usarem um ponto de extremidade baseado em uma rede de entrega de conteúdo removida. Nesses casos, as cargas de trabalho podem precisar usar um ponto de extremidade alternativo para se conectar. Para obter informações gerais sobre a análise do modo de falha, consulte Recomendações para executar a análise do modo de falha.
Definir metas de confiabilidade e recuperação: revise os SLAs (contratos de nível de serviço) do Azure. Derive o SLO (objetivo de nível de serviço) para a conta de armazenamento. Por exemplo, o SLO pode ser afetado pela configuração de redundância escolhida. Considere o efeito de uma interrupção regional, o potencial de perda de dados e o tempo necessário para restaurar o acesso após uma interrupção. Considere também a disponibilidade de quaisquer dependências internas que você identificou como parte de sua análise do modo de falha.
Configurar redundância de dados: para máxima durabilidade, escolha uma configuração que copie dados entre zonas de disponibilidade ou regiões globais. Para obter disponibilidade máxima, escolha uma configuração que permita aos clientes ler dados da região secundária durante uma interrupção da região primária.
Projetar aplicativos: projete aplicativos para mudar perfeitamente para a leitura de dados da região secundária se a região primária ficar indisponível por qualquer motivo. Isso só se aplica a configurações de armazenamento com redundância geográfica (GRS) e armazenamento com redundância geográfica (GZRS). Projetar aplicativos para lidar com interrupções reduz o tempo de inatividade para os usuários finais.
Explore recursos para ajudá-lo a atingir suas metas de recuperação: torne os blobs restauráveis para que possam ser recuperados se estiverem corrompidos, editados ou excluídos por engano.
Crie um plano de recuperação: considere recursos de proteção de dados, operações de backup e restauração ou procedimentos de failover. Prepare-se para possíveis perdas e inconsistências de dados e o tempo e o custo do failover. Para obter mais informações, consulte Recomendações para projetar uma estratégia de recuperação de desastres.
Monitorar possíveis problemas de disponibilidade: inscreva-se no painel Integridade do Serviço do Azure para monitorar possíveis problemas de disponibilidade. Use métricas de armazenamento no Azure Monitor e logs de diagnóstico para investigar alertas.
Recomendações
Recomendação | Benefício |
---|---|
Configure sua conta para redundância. Para obter máxima disponibilidade e durabilidade, configure sua conta usando ZRS (zone-redundant storage) ou GZRS. |
A redundância protege seus dados contra falhas inesperadas. As opções de configuração ZRS e GZRS replicam em diferentes zonas de disponibilidade e permitem que os aplicativos continuem lendo dados durante uma paralisação. Para obter mais informações, consulte Durabilidade e disponibilidade por cenário de interrupção e Parâmetros de durabilidade e disponibilidade. |
Antes de iniciar um failover ou failback, avalie o potencial de perda de dados verificando o valor da propriedade last synchronization time . Esta recomendação aplica-se apenas às configurações GRS e GZRS. | Essa propriedade ajuda a estimar a quantidade de dados que você pode perder iniciando um failover de conta. Todos os dados e metadados gravados antes da última hora de sincronização estão disponíveis na região secundária, mas os dados e metadados gravados após a última hora de sincronização podem ser perdidos porque não são gravados na região secundária. |
Como parte de sua estratégia de backup e recuperação, habilite as opções de exclusão flexível de contêiner, exclusão flexível de blob, controle de versão e restauração point-in-time. | A opção de exclusão flexível permite que uma conta de armazenamento recupere contêineres e blobs excluídos. A opção de controle de versão rastreia automaticamente as alterações feitas nos blobs. Essa opção permite restaurar um blob para um estado anterior. A opção de restauração point-in-time protege contra exclusão acidental de blob ou corrupção e permite restaurar dados de blob de bloco para um estado anterior. Para obter mais informações, confira Visão geral de proteção de dados. |
Segurança
O objetivo do pilar Segurança é fornecer garantias de confidencialidade, integridade e disponibilidade à carga de trabalho.
Os princípios de design de segurança fornecem uma estratégia de design de alto nível para atingir essas metas aplicando abordagens ao design técnico da configuração do Armazenamento de Blobs.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Segurança. Identificar vulnerabilidades e controles para melhorar a postura de segurança. Estender a estratégia para incluir mais abordagens, conforme necessário.
Revise a linha de base de segurança do Armazenamento do Azure: para começar, primeiro revise a linha de base de segurança do Armazenamento.
Usar controles de rede para restringir o tráfego de entrada e saída: desabilite todo o tráfego público para a conta de armazenamento. Use controles de rede de conta para conceder o nível mínimo de acesso exigido por usuários e aplicativos. Para obter mais informações, consulte Como abordar a segurança de rede para sua conta de armazenamento.
Reduzir a superfície de ataque: impedir o acesso anônimo, o acesso à chave de conta ou o acesso por conexões HTTP (não seguras) pode reduzir a superfície de ataque. Exigir que os clientes enviem e recebam dados usando a versão mais recente do protocolo TLS (Transport Layer Security).
Autorizar o acesso sem usar senhas ou chaves: o Microsoft Entra ID oferece segurança superior e facilidade de uso em comparação com chaves compartilhadas e assinaturas de acesso compartilhado. Conceda às entidades de segurança apenas as permissões necessárias para que elas realizem suas tarefas.
Proteja informações confidenciais: proteja informações confidenciais, como chaves de conta e tokens de assinatura de acesso compartilhado. Embora essas formas de autorização geralmente não sejam recomendadas, você deve girá-las, expirá-las e armazená-las com segurança.
Habilitar a opção de transferência segura necessária: habilitar essa configuração para todas as suas contas de armazenamento garante que todas as solicitações feitas na conta de armazenamento ocorram em conexões seguras. Todas as solicitações feitas por HTTP falham.
Proteger objetos críticos: aplique políticas de imutabilidade para proteger objetos críticos. As políticas protegem os blobs armazenados para fins legais, de conformidade ou outros fins comerciais de serem modificados ou excluídos. Configure retenções para períodos de tempo definidos ou até que as restrições sejam suspensas por um administrador.
Detectar ameaças: habilite o Microsoft Defender for Storage para detectar ameaças. Os alertas de segurança são acionados quando ocorrem anomalias na atividade. Os alertas notificam os administradores de assinatura por e-mail com detalhes de atividades suspeitas e recomendações sobre como investigar e remediar ameaças.
Recomendações
Recomendação | Benefício |
---|---|
Desative o acesso de leitura anônimo a contêineres e blobs. | Quando o acesso anônimo é permitido para uma conta de armazenamento, um usuário que tenha as permissões apropriadas pode modificar a configuração de acesso anônimo de um contêiner para habilitar o acesso anônimo aos dados nesse contêiner. |
Aplique um bloqueio do Gerenciador de Recursos do Azure na conta de armazenamento. | Bloquear uma conta impede que ela seja excluída e cause perda de dados. |
Desative o tráfego para os pontos de extremidade públicos da sua conta de armazenamento. Crie pontos de extremidade privados para clientes executados no Azure. Habilite o ponto de extremidade público somente se clientes e serviços externos ao Azure exigirem acesso direto à sua conta de armazenamento. Habilite regras de firewall que limitam o acesso a redes virtuais específicas. | Comece com acesso zero e, em seguida, autorize incrementalmente os níveis mais baixos de acesso necessários para clientes e serviços para minimizar o risco de criar aberturas desnecessárias para invasores. |
Autorize o acesso usando o RBAC (controle de acesso baseado em função) do Azure. | Com o RBAC, não há senhas ou chaves que possam ser comprometidas. A entidade de segurança (usuário, grupo, identidade gerenciada ou entidade de serviço) é autenticada pelo Microsoft Entra ID para retornar um token OAuth 2.0. O token é usado para autorizar uma solicitação contra o serviço de Armazenamento de Blobs. |
Não permitir autorização de chave compartilhada. Isso desabilita não apenas o acesso à chave da conta, mas também os tokens de assinatura de acesso compartilhado de serviço e conta, pois eles são baseados em chaves de conta. | Somente solicitações seguras autorizadas com o Microsoft Entra ID são permitidas. |
Recomendamos que você não use uma chave de conta. Se você precisar usar chaves de conta, armazene-as no Cofre de Chaves e certifique-se de gerá-las periodicamente. | O Cofre de Chaves permite recuperar chaves em tempo de execução, em vez de salvá-las usando seu aplicativo. O Cofre de Chaves também facilita a rotação de suas chaves sem interrupção para seus aplicativos. Girar as chaves da conta periodicamente reduz o risco de expor seus dados a ataques mal-intencionados. |
Recomendamos que você não use tokens de assinatura de acesso compartilhado. Avalie se você precisa de tokens de assinatura de acesso compartilhado para proteger o acesso aos recursos do Armazenamento de Blobs. Se você precisar criar uma, revise essa lista de práticas recomendadas de assinatura de acesso compartilhado antes de criá-la e distribuí-la. | As práticas recomendadas podem ajudá-lo a evitar que um token de assinatura de acesso compartilhado seja vazado e a se recuperar rapidamente se ocorrer um vazamento. |
Configure sua conta de armazenamento para que os clientes possam enviar e receber dados usando a versão mínima do TLS 1.2. | A versão 1.2 é mais segura e mais rápida que as versões 1.0 e 1.1 do TLS, que não dão suporte aos modernos algoritmos e conjuntos de criptografia. |
Considere usar sua própria chave de criptografia para proteger os dados em sua conta de armazenamento. Para obter mais informações, confira Chaves gerenciadas pelo cliente para criptografia do Armazenamento do Azure. | As chaves gerenciadas pelo cliente fornecem maior flexibilidade e controle. Por exemplo, você pode armazenar chaves de criptografia no Cofre de Chaves e girá-las automaticamente. |
Otimização de custos
A Otimização de Custos se concentra em detectar padrões de gastos, priorizar investimentos em áreas críticas e otimizar em outras para atender aos requisitos de orçamento e negócios da organização.
Os princípios de projeto de Otimização de Custos fornecem uma estratégia de design de alto nível para atingir essas metas e fazer compensações conforme necessário no projeto técnico relacionado ao Armazenamento de Blobs e seu ambiente.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Otimização de Custos para investimentos. Ajuste o design para que a carga de trabalho esteja alinhada com o orçamento alocado para a carga de trabalho. Seu design deve usar os recursos certos do Azure, monitorar investimentos e encontrar oportunidades para otimizar ao longo do tempo.
Identifique os medidores que são usados para calcular sua fatura: os medidores são usados para rastrear a quantidade de dados armazenados na conta (capacidade de dados) e o número e o tipo de operações que são executadas para gravar e ler dados. Há também medidores associados ao uso de recursos opcionais, como tags de índice de blob, inventário de blob, suporte a feed de alterações, escopos de criptografia e suporte a SSH File Transfer Protocol (SFTP). Para obter mais informações, consulte Como você é cobrado pelo Armazenamento de Blobs.
Entenda o preço de cada medidor: certifique-se de usar a página de preços apropriada e aplique as configurações apropriadas nessa página. Para obter mais informações, consulte Localizando o preço unitário para cada medidor. Considere o número de operações associadas a cada preço. Por exemplo, o preço associado às operações de gravação e leitura se aplica a 10.000 operações. Para determinar o preço de uma operação individual, divida o preço listado por 10.000.
Estimar o custo da capacidade e das operações: você pode modelar os custos associados ao armazenamento, entrada e saída de dados usando a calculadora de preços do Azure. Use campos para comparar o custo associado a várias regiões, tipos de conta, tipos de namespace e configurações de redundância. Para determinados cenários, você pode usar cálculos de exemplo e planilhas disponíveis na documentação da Microsoft. Por exemplo, você pode estimar o custo do arquivamento de dados ou estimar o custo do uso do comando AzCopy para transferir blobs.
Escolha um modelo de faturamento para capacidade: avalie se o uso de um modelo baseado em compromisso é mais econômico do que o uso de um modelo baseado em consumo. Se você não tiver certeza sobre quanta capacidade precisa, pode começar com um modelo baseado em consumo, monitorar as métricas de capacidade e avaliar posteriormente.
Escolha um tipo de conta, um nível de redundância e uma camada de acesso padrão: você deve selecionar um valor para cada uma dessas configurações ao criar uma conta de armazenamento. Todos os valores afetam as taxas de transação e as taxas de capacidade. Todas essas configurações, exceto o tipo de conta, podem ser alteradas após a criação da conta.
Escolha a camada de acesso padrão mais econômica: a menos que uma camada seja especificada com cada carregamento de blob, os blobs inferem sua camada de acesso a partir da configuração de camada de acesso padrão. Uma alteração na configuração da camada de acesso padrão de uma conta de armazenamento se aplica a todos os blobs na conta para os quais não tenha sido explicitamente definida uma camada de acesso. Esse custo pode ser significativo se você tiver coletado um grande número de blobs. Para obter mais informações sobre como uma alteração de camada afeta cada blob existente, consulte Alterando a camada de acesso de um blob.
Carregue dados diretamente para a camada de acesso mais econômica: por exemplo, se a configuração da camada de acesso padrão da sua conta estiver ativa, mas você estiver carregando arquivos para fins de arquivamento, especifique uma camada mais fria como o arquivamento ou uma camada fria como parte da operação de carregamento. Depois de carregar blobs, use políticas de gerenciamento de ciclo de vida para mover blobs para as camadas mais econômicas com base em métricas de uso, como a hora do último acesso. Escolher a camada mais ideal antecipadamente pode reduzir os custos. Se você alterar a camada de um blob de bloco que já carregou, pagará o custo de gravação na camada inicial quando carregar o blob pela primeira vez e, em seguida, pagará o custo de gravação na camada desejada.
Tenha um plano para gerenciar o ciclo de vida dos dados: otimize os custos de transação e capacidade aproveitando as camadas de acesso e o gerenciamento do ciclo de vida. Os dados usados com menos frequência devem ser colocados em camadas de acesso mais frias, enquanto os dados acessados com frequência devem ser colocados em camadas de acesso mais quentes.
Decida de quais recursos você precisa: alguns recursos, como controle de versão e exclusão suave de blob, incorrem em custos adicionais de transação e capacidade, bem como outros encargos. Certifique-se de revisar as seções de preços e faturamento em artigos que descrevem esses recursos ao escolher quais recursos adicionar à sua conta.
Por exemplo, se você habilitar o recurso de inventário de blob, será cobrado pelo número de objetos examinados. Se você usar tags de índice de blob, será cobrado pelo número de tags de índice. Se você habilitar o suporte a SFTP, será cobrada uma cobrança por hora, mesmo que não haja transferências SFTP. Se você decidir não usar um recurso, confirme se o recurso está desabilitado porque alguns recursos são ativados automaticamente quando você cria a conta.
Criar guardrails: crie orçamentos com base em assinaturas e grupos de recursos. Use políticas de governança para restringir tipos de recursos, configurações e locais. Além disso, use o RBAC para bloquear ações que podem levar a gastos excessivos.
Monitore os custos: garanta que os custos permaneçam dentro dos orçamentos, compare os custos com as previsões e veja onde os gastos excessivos ocorrem. Você pode usar o painel de análise de custos no portal do Azure para monitorar custos. Você também pode exportar dados de custo para uma conta de armazenamento e analisar esses dados usando o Excel ou o Power BI.
Monitore o uso: monitore continuamente os padrões de uso e detecte contas e contêineres não utilizados ou subutilizados. Use insights de armazenamento para identificar contas com nenhum ou baixo uso. Habilite relatórios de inventário de blob e use ferramentas como o Azure Databricks ou o Azure Synapse Analytics e o Power BI para analisar dados de custo. Fique atento a aumentos inesperados na capacidade, o que pode indicar que você está coletando vários arquivos de log, versões de blob ou blobs excluídos por software. Desenvolva uma estratégia para expirar ou fazer a transição de objetos para níveis de acesso mais econômicos. Tenha um plano para expirar objetos ou mover objetos para camadas de acesso mais acessíveis.
Recomendações
Recomendação | Benefício |
---|---|
Embale arquivos pequenos em arquivos maiores antes de movê-los para camadas mais frias. Você pode usar formatos de arquivo como TAR ou ZIP. | Camadas mais frias têm custos de transferência de dados mais altos. Com menos arquivos grandes, você pode reduzir o número de operações necessárias para transferir dados. |
Use a reidratação de prioridade padrão ao reidratar blobs do armazenamento de arquivos. Use a reidratação de alta prioridade apenas para situações de restauração de dados de emergência. Para obter mais informações, consulte Reidratar um blob arquivado para uma camada online | A reidratação de alta prioridade da camada de arquivamento pode levar a contas mais altas do que o normal. |
Reduza o custo de uso de logs de recursos escolhendo o local de armazenamento de log apropriado e gerenciando períodos de retenção de logs. Se você planeja consultar logs apenas ocasionalmente (por exemplo, consultar logs para auditoria de conformidade), considere enviar logs de recursos para uma conta de armazenamento em vez de enviá-los para um espaço de trabalho Logs do Monitor do Azure. Você pode usar uma solução de consulta sem servidor, como o Azure Synapse Analytics, para analisar logs. Para obter mais informações, consulte Otimizar o custo para consultas pouco frequentes. Use políticas de gerenciamento do ciclo de vida para excluir ou arquivar logs. | Armazenar logs de recursos em uma conta de armazenamento para análise posterior pode ser uma opção mais barata. O uso de políticas de gerenciamento do ciclo de vida para gerenciar a retenção de logs em uma conta de armazenamento evita que um grande número de arquivos de logs se acumule ao longo do tempo, o que pode levar a cobranças de capacidade desnecessárias. |
Se você habilitar o controle de versão, use uma política de gerenciamento de ciclo de vida para excluir automaticamente versões antigas de blob. | Cada operação de gravação em um blob cria uma nova versão. Isso aumenta os custos de capacidade. Você pode manter os custos sob controle removendo versões que não são mais necessárias. |
Se você habilitar o controle de versão, coloque blobs que são frequentemente substituídos em uma conta que não tenha o controle de versão habilitado. | Toda vez que um blob é substituído, uma nova versão é adicionada, o que leva a um aumento das cobranças de capacidade de armazenamento. Para reduzir os encargos de capacidade, armazene dados substituídos com frequência em uma conta de armazenamento separada com o controle de versão desabilitado. |
Se você habilitar a exclusão flexível, coloque blobs que são frequentemente substituídos em uma conta que não tenha a exclusão flexível habilitada. Definir períodos de retenção. Considere começar com um curto período de retenção para entender melhor como o recurso afeta sua fatura. O período de retenção mínimo recomendado é de sete dias. | Toda vez que um blob é substituído, um novo instantâneo é criado. A causa do aumento das cobranças de capacidade pode ser difícil de acessar porque a criação desses instantâneos não aparece nos logs. Para reduzir os encargos de capacidade, armazene dados substituídos com frequência em uma conta de armazenamento separada com a exclusão flexível desativada. Um período de retenção evita que blobs apagados suavemente se acumulem e aumentem o custo da capacidade. |
Habilite o suporte a SFTP somente quando ele for usado para transferir dados. | Habilitar o ponto de extremidade do SFTP incorre em um custo por hora. Ao desativar cuidadosamente o suporte a SFTP e, em seguida, habilitá-lo conforme necessário, você pode evitar que cobranças passivas se acumulem em sua conta. |
Desative todos os escopos de criptografia que não são necessários para evitar cobranças desnecessárias. | Os escopos de criptografia incorrem em uma cobrança por mês. |
Excelência operacional
A Excelência Operacional concentra-se principalmente em procedimentos para práticas de desenvolvimento, observabilidade e gerenciamento de versões.
Os princípios de design de Excelência Operacional fornecem uma estratégia de design de alto nível para atingir essas metas para os requisitos operacionais da carga de trabalho.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Excelência Operacional para definir processos de observabilidade, teste e implantação relacionados à configuração do Armazenamento de Blobs.
Criar planos de manutenção e recuperação de emergência: considere recursos de proteção de dados, operações de backup e restauração e procedimentos de failover. Prepare-se para possíveis perdas e inconsistências de dados e o tempo e o custo do failover.
Monitore a integridade de sua conta de armazenamento: crie painéis de insights de armazenamento para monitorar métricas de disponibilidade, desempenho e resiliência. Configure alertas para identificar e resolver problemas em seu sistema antes que seus clientes os percebam. Use as configurações de diagnóstico para rotear logs de recursos para um espaço de trabalho Logs do Monitor do Azure. Em seguida, você pode consultar logs para investigar alertas mais profundamente.
Habilitar relatórios de inventário de blob: habilite os relatórios de inventário de blob para revisar o status de retenção, retenção legal ou criptografia do conteúdo da sua conta de armazenamento. Você também pode usar relatórios de inventário de blob para entender o tamanho total dos dados, a idade, a distribuição de camadas ou outros atributos dos dados. Use ferramentas como o Azure Databricks ou o Azure Synapse Analytics e o Power BI para visualizar melhor os dados de inventário e criar relatórios para as partes interessadas.
Configurar políticas que excluam blobs ou os movam para níveis de acesso econômicos: crie uma política de gerenciamento do ciclo de vida com um conjunto inicial de condições. A política executada automaticamente, exclui ou define a camada de acesso de blobs com base nas condições definidas. Analise periodicamente o uso do contêiner usando métricas do Monitor e relatórios de inventário de blob para que você possa refinar as condições para otimizar a eficiência de custos.
Recomendações
Recomendação | Benefício |
---|---|
Use a infraestrutura como código (IaC) para definir os detalhes de suas contas de armazenamento em modelos do Gerenciador de Recursos do Azure (modelos ARM), Bicep ou Terraform. | Você pode usar seus processos de DevOps existentes para implantar novas contas de armazenamento e usar a Política do Azure para impor sua configuração. |
Use os insights de armazenamento para acompanhar a integridade e o desempenho de suas contas de armazenamento. Os insights de armazenamento fornecem uma visão unificada das falhas, do desempenho, da disponibilidade e da capacidade de todas as suas contas de armazenamento. | Você pode acompanhar a integridade e o funcionamento de cada uma de suas contas. Crie facilmente painéis e relatórios que as partes interessadas podem usar para rastrear a integridade de suas contas de armazenamento. |
Eficiência de desempenho
A eficiência de desempenho consiste em manter a experiência do usuário mesmo quando há um aumento na carga por meio do gerenciamento da capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar possíveis gargalos e otimizar o desempenho máximo.
Os princípios de design de Eficiência de Desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade em relação ao uso esperado.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Eficiência de desempenho. Defina uma linha de base baseada em indicadores-chave de desempenho para sua configuração de Armazenamento de Blobs.
Planejar a escala: entenda as metas de dimensionamento para contas de armazenamento.
Escolha o tipo de conta de armazenamento ideal: se sua carga de trabalho exigir altas taxas de transação, objetos menores e uma latência de transação consistentemente baixa, considere o uso de contas de armazenamento de blob de bloco premium. Uma conta v2 de uso geral padrão é mais apropriada na maioria dos casos.
Reduza a distância de viagem entre o cliente e o servidor: coloque os dados nas regiões mais próximas dos clientes conectados (idealmente na mesma região). Otimize para clientes em regiões distantes usando a replicação de objetos ou uma rede de entrega de conteúdo. As configurações de rede padrão fornecem o melhor desempenho. Modifique as configurações de rede apenas para melhorar a segurança. Em geral, as configurações de rede não diminuem a distância percorrida e não melhoram o desempenho.
Escolha um esquema de nomenclatura eficiente: diminua a latência das operações de listagem, lista, consulta e leitura usando prefixos de hashtag mais próximos do início da chave de partição de blob (conta, contêiner, diretório virtual ou nome de blob). Esse esquema beneficia principalmente contas que têm um namespace simples.
Otimize o desempenho dos clientes de dados: escolha uma ferramenta de transferência de dados mais apropriada para o tamanho dos dados, a frequência de transferência e a largura de banda de suas cargas de trabalho. Algumas ferramentas, como o AzCopy , são otimizadas para desempenho e exigem pouca intervenção. Considere os fatores que influenciam a latência e ajuste o desempenho revisando as diretrizes de otimização de desempenho publicadas com cada ferramenta.
Otimizar o desempenho do código personalizado: considere o uso de SDKs de armazenamento em vez de criar seus próprios wrappers para operações REST de blob. Os SDKs do Azure são otimizados para desempenho e fornecem mecanismos para ajustar o desempenho. Antes de criar um aplicativo, revise a lista de verificação de desempenho e escalabilidade do Armazenamento de Blobs. Considere o uso da aceleração de consulta para filtrar dados indesejados durante a solicitação de armazenamento e impedir que os clientes transfiram dados desnecessariamente pela rede.
Coletar dados de desempenho: monitore sua conta de armazenamento para identificar gargalos de desempenho que ocorrem devido à limitação. Para obter mais informações, consulte Monitorando seu serviço de armazenamento com o Monitor Storage insights. Use métricas e logs. As métricas fornecem números, como erros de limitação. Os logs descrevem a atividade. Se você vir métricas de limitação, poderá usar logs para identificar quais clientes estão recebendo erros de limitação. Para obter mais informações, consulte Auditando operações do plano de dados.
Recomendações
Recomendação | Benefício |
---|---|
Provisione contas de armazenamento na mesma região em que os recursos dependentes são colocados. Para aplicativos que não estão hospedados no Azure, como aplicativos de dispositivo móvel ou serviços corporativos locais, localize a conta de armazenamento em uma região mais próxima desses clientes. Para obter mais informações, consulte Geografias do Microsoft Azure. Se os clientes de uma região diferente não precisarem dos mesmos dados, crie uma conta separada em cada região. Se os clientes de uma região diferente precisarem apenas de alguns dados, considere usar uma política de replicação de objetos para copiar de forma assíncrona objetos relevantes para uma conta de armazenamento na outra região. |
Reduzir a distância física entre a conta de armazenamento e VMs, serviços e clientes locais pode melhorar o desempenho e reduzir a latência da rede. A redução da distância física também reduz o custo para aplicativos hospedados no Azure porque o uso da largura de banda em uma única região é gratuito. |
Para um amplo consumo por clientes Web (streaming de vídeo, áudio ou conteúdo estático de site), considere usar uma rede de entrega de conteúdo por meio do Azure Front Door. | O conteúdo é entregue aos clientes mais rapidamente porque usa a rede de borda global da Microsoft com centenas de pontos de presença globais e locais em todo o mundo. |
Adicione uma sequência de caracteres de hash (como três dígitos) o mais cedo possível na chave de partição de um blob. A chave de partição é o nome da conta, o nome do contêiner, o nome do diretório virtual e o nome do blob. Se você planeja usar carimbos de data/hora em nomes, considere adicionar um valor de segundos ao início desse carimbo. Para obter mais informações, consulte Particionamento. | Usar um código hash ou um valor de segundos mais próximo do início de uma chave de partição reduz o tempo necessário para listar blobs de consulta e leitura. |
Ao carregar blobs ou blocos, use um blob ou tamanho de bloco maior que 256 KiB. | Tamanhos de blob ou bloco acima de 256 KiB aproveita os aprimoramentos de desempenho na plataforma feitos especificamente para blobs maiores e tamanhos de bloco. |
Políticas do Azure
O Azure fornece um extenso conjunto de políticas internas relacionadas ao Armazenamento de Blobs e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio de políticas do Azure. Por exemplo, você pode verificar se:
- O acesso de leitura público anônimo a contêineres e blobs não está habilitado.
- As configurações de diagnóstico do Armazenamento de Blobs são definidas para transmitir logs de recursos para um espaço de trabalho de Logs do Monitor do Azure.
- Somente solicitações de conexões seguras (HTTPS) são aceitas.
- Uma política de expiração de assinatura de acesso compartilhado está habilitada.
- A replicação de objeto entre locatários está desabilitada.
- A autorização de chave compartilhada está desabilitada.
- As regras de firewall de rede são aplicadas à conta.
Para uma governança abrangente, revise as definições internas da Política do Azure para Armazenamento e outras políticas que podem afetar a segurança da camada de computação.
Recomendações do Assistente do Azure
O Assistente do Azure é um consultor de nuvem personalizado que ajuda a seguir as práticas recomendadas para otimizar as implantações do Azure. Aqui estão algumas recomendações que podem ajudá-lo a melhorar a confiabilidade, a segurança, a relação custo-benefício, o desempenho e a excelência operacional do Armazenamento de Blobs.
Próxima etapa
Para obter mais informações sobre o Armazenamento de Blobs, consulte a documentação do Armazenamento de Blobs.