Considere as práticas recomendadas para o desenvolvimento de aplicativos

Concluído

Nesta unidade, você explora algumas práticas recomendadas a serem aplicadas ao desenvolver aplicativos com o Banco de Dados do Azure para MySQL – Servidor Flexível, que ajuda a aprimorar o desempenho, a resiliência e a segurança. Essas melhores práticas incluem:

  • Colocalizando recursos.
  • Implementação do pool de conexões.
  • Escolha do tamanho correto do contêiner do aplicativo.
  • Implementação de isolamento de rede e conectividade SSL.
  • Implementação da lógica de repetição para gerenciar falhas transitórias.
  • Escolha do tamanho certo da computação e do armazenamento para o banco de dados.

Essas práticas recomendadas entram em jogo em vários pontos durante o processo de desenvolvimento de aplicativos com o Banco de Dados do Azure para MySQL – Servidor Flexível, conforme mostrado no diagrama a seguir.

Diagrama mostrando seis práticas recomendadas principais a serem seguidas para o desenvolvimento de aplicativos.

Observação

A lista de práticas recomendadas não se limita a esta lista. Confira a documentação do Banco de Dados do Azure para MySQL e acesse guias detalhados de como implementar práticas recomendadas relacionadas a rede, segurança, monitoramento, otimização de desempenho, continuidade dos negócios e recuperação de desastres e outras áreas.

Colocalizar recursos

Ao implantar o aplicativo no Azure, verifique se todas as dependências de recursos estão hospedadas na mesma região. A disseminação de instâncias de recursos entre regiões ou zonas de disponibilidade pode criar latência de rede, o que pode afetar o desempenho geral do seu aplicativo.

Implementar o pool de conexões

O gerenciamento das conexões de banco de dados dentro de um aplicativo pode afetar significativamente o desempenho geral do aplicativo. Para aprimorar o desempenho e a resiliência do aplicativo, considere implementar o pool de conexões para conectá-lo a um servidor flexível MySQL. Um pooler de conexões (como o ProxySQL) pode diminuir o número de conexões ociosas e reutilizar as conexões existentes.

Dica

Para otimizar o desempenho, nos principais caminhos de código, reduza o número de vezes que as conexões são estabelecidas e o tempo para estabelecê-las.

Escolher o tamanho correto do contêiner do aplicativo

Como a seleção do tamanho apropriado para o contêiner do aplicativo é vital, certifique-se de que o aplicativo tenha recursos de computação e memória suficientes para lidar com as cargas esperadas. Você pode usar ferramentas como o JMeter para ajudar no teste de carga, o que pode ajudá-lo a dimensionar corretamente seus recursos com base nos resultados.

Implementar o isolamento de rede e a conectividade SSL

O Banco de Dados do Azure para MySQL – Servidor Flexível com integração de VNet (o método de conectividade de acesso privado) oferece segurança de rede e isolamento. Você pode usar a integração de VNet para bloquear o acesso do servidor apenas à sua infraestrutura de rede virtual (VNet). Os pontos de extremidade privados aprimoram essa segurança, permitindo que você se conecte ao servidor flexível com segurança em uma rede privada, evitando a exposição à Internet pública. Você pode proteger os recursos de aplicativo e de banco de dados em uma só VNet ou em diferentes VNets na mesma região ou em regiões diferentes (e conectados perfeitamente com o emparelhamento de rede virtual).

Também é recomendado proteger os dados em trânsito garantindo que o aplicativo se conecte a um servidor flexível MySQL usando o protocolo SSL.

Implementar a lógica de repetição para gerenciar falhas transitórias

Como os ambientes de nuvem são mais propensos a falhas transitórias, como interrupções de conectividade de rede ou tempo limite de serviços atingido, você deve garantir que seus aplicativos implementem uma lógica nos aplicativos para lidar com esses problemas, geralmente repetindo solicitações após um atraso.

É uma boa prática aguardar cinco segundos até a primeira repetição. Em seguida, com cada repetição subsequente, aumente gradualmente o tempo de espera, até 60 segundos. Depois de um número fixo de tentativas, o aplicativo pode considerar a operação com falha e notificá-lo para que você possa investigar ainda mais o erro persistente.

Escolher o tamanho certo da computação e do armazenamento para o seu banco de dados

É importante analisar a carga de trabalho e dimensionar corretamente suas instâncias de servidor flexível do MySQL para obter um equilíbrio aceitável entre o desempenho e o custo do aplicativo.

Computação

Você pode criar um servidor flexível MySQL em uma das três camadas de computação: Com capacidade de intermitência, Uso geral e Comercialmente Crítico. Como ponto de partida para escolher a camada de computação, considere os detalhes na tabela a seguir.

Camada de computação Cargas de trabalho de destino
Com capacidade de intermitência Ideal para cargas de trabalho que não precisam da CPU completa continuamente. Econômico para aplicativos Web menores e cargas de trabalho de desenvolvimento.
Uso Geral Ideal para a maioria das cargas de trabalho empresariais que exigem computação e memória balanceadas com taxa de transferência de E/S escalonável. Os exemplos incluem servidores para hospedar aplicativos Web e móveis e outros aplicativos empresariais.
Comercialmente Crítico Ideal para cargas de trabalho de banco de dados de alto desempenho que exigem desempenho na memória para processamento mais rápido de transações e com simultaneidade superior. Os exemplos incluem servidores para o processamento de dados em tempo real e aplicativos analíticos ou transacionais de alto desempenho.

Embora você também possa redimensionar servidores flexíveis do MySQL após a criação, você só pode escalar verticalmente ou para baixo entre as camadas de Uso Geral ou Comercialmente Crítico.

Armazenamento

Em termos de armazenamento, você pode escalar o ambiente verticalmente ao se aproximar dos limites de capacidade de armazenamento. Você também pode habilitar o recurso de crescimento automático do armazenamento para garantir que o serviço dimensione o armazenamento automaticamente conforme os limites de armazenamento se aproximarem.

Para tomar decisões informadas sobre computação e armazenamento em tempo hábil, monitore constantemente as principais métricas do Azure Monitor, como Percentual de CPU do host, Percentual de memória do host, Percentual de armazenamento, Percentual de E/S, Conexões ativas e outras, ou configure alertas para receber notificações quando a solução se aproximar dos limites da implantação.

Ajuste o IOPS para obter o desempenho ideal

Um aprimoramento significativo disponível no Banco de Dados do Azure para MySQL – Servidor Flexível é o recurso IOPS de Dimensionamento Automático (Operações de Entrada/Saída por Segundo), que complementa o recurso IOPS pré-provisionado existente. Esta seção explora como você pode usar opções de IOPS e IOPs de Dimensionamento Automático pré-provisionados para otimizar o desempenho do banco de dados com base em requisitos de carga de trabalho variados.

IOPS pré-provisionado

Você pode alocar um número específico de IOPS para sua instância de banco de dados usando IOPS pré-provisionado. Esse recurso é crucial para cargas de trabalho que exigem desempenho consistente e previsível. Ao estipular um limite de IOPS definido, você pode garantir que seu banco de dados possa lidar com um número previsto de solicitações por segundo, mantendo assim um desempenho estável e confiável. Você também tem a flexibilidade de ajustar o número de IOPS provisionado conforme sua carga de trabalho muda, permitindo escalabilidade e controle preciso sobre o desempenho do banco de dados.

IOPS de dimensionamento automático

O IOPS de dimensionamento automático traz o dimensionamento dinâmico de desempenho, um recurso essencial para gerenciar efetivamente cargas de trabalho flutuantes. Com esse recurso habilitado, o servidor de banco de dados ajusta automaticamente o IOPS com base na demanda em tempo real sem a necessidade de pré-provisionamento. Ter essa flexibilidade é particularmente benéfico para aplicativos críticos de camada 1 que podem enfrentar necessidades de desempenho variáveis.

Os principais benefícios do uso da funcionalidade de IOPS de Dimensionamento Automático incluem:

  • Dimensionamento dinâmico: O recurso IOPS de dimensionamento automático ajusta automaticamente os limites de IOPS com base na demanda real de carga de trabalho. Esse ajuste dinâmico ajuda a garantir que seu banco de dados opere consistentemente em níveis de desempenho ideais sem intervenção manual.

  • Tratamento de picos de carga de trabalho: Esse recurso permite que seu banco de dados lide perfeitamente com aumentos repentinos na carga, garantindo que o desempenho do aplicativo permaneça consistente durante os períodos de pico. Essa funcionalidade é crucial para manter a disponibilidade do serviço e a satisfação do usuário.

  • Eficiência de custo: Ao contrário do IOPS pré-provisionado, em que você paga por um limite especificado, independentemente do uso real, o IOPS de Dimensionamento Automático garante que você pague apenas pelas operações de E/S realmente usadas. Isso pode resultar em uma economia significativa de custos, especialmente para bancos de dados com necessidades variáveis de E/S.

  • Gerenciamento simplificado: Ao reduzir a necessidade de dimensionamento manual e planejamento de capacidade, o IOPS de Dimensionamento Automático libera recursos administrativos, permitindo que sua equipe se concentre em iniciativas mais estratégicas em vez de manutenção de rotina.