Visão geral do AlloyDB

O AlloyDB para PostgreSQL é um serviço de banco de dados totalmente gerenciado e compatível com PostgreSQL, projetado para as cargas de trabalho mais exigentes, incluindo processamento analítico e transacional híbrido. O AlloyDB combina um mecanismo de banco de dados criado pelo Google a uma arquitetura de vários nós baseada na nuvem para oferecer disponibilidade, confiabilidade e performance de nível empresarial.

Como o AlloyDB funciona

Um aplicativo se conecta a instâncias do AlloyDB usando protocolos e técnicas padrão do PostgreSQL. O aplicativo usa a sintaxe de consulta do PostgreSQL para trabalhar com o banco de dados.

Por baixo dos panos, o AlloyDB utiliza uma hierarquia baseada na nuvem de componentes e recursos projetados para maximizar a disponibilidade dos dados e otimizar a performance e o throughput das consultas. Google Cloud As ferramentas administrativas permitem monitorar a integridade da implantação do AlloyDB, ajustando a escala e o tamanho para atender melhor às demandas variáveis da carga de trabalho.

Clusters

Uma única implantação do AlloyDB em uma determinada região do Google Cloud organiza todos os recursos em um cluster. Isso inclui todos os bancos de dados, registros e outros metadados. O AlloyDB implanta todos os recursos de um cluster em uma única nuvem privada virtual (VPC) e usa um sistema de arquivos baseado na nuvem projetado pelo Google e otimizado para o AlloyDB.

Nós e instâncias

Um cluster contém vários nodes, que são instâncias de máquina virtual dedicadas à execução do mecanismo de banco de dados compatível com PostgreSQL que os aplicativos usam para consultar os dados do cluster. O AlloyDB organiza os nós em instâncias, cada uma com um endereço IP privado e estático na VPC. Na prática, seus aplicativos se conectam a instâncias nesses endereços IP usando protocolos do PostgreSQL. Em seguida, as instâncias transmitem consultas SQL para os nós.

O AlloyDB tem dois tipos de instâncias:

  • Instância principal:cada cluster tem uma instância principal, que fornece um ponto de acesso de leitura ou gravação aos dados. Uma instância principal pode ser de alta disponibilidade (HA) ou básica.

    • Instância principal de HA: uma instância principal de HA tem dois nós: um ativo e um de espera. O AlloyDB monitora a disponibilidade do nó ativo e promove automaticamente o nó de espera para o nó ativo quando necessário.

    • Instância básica:ambientes que não são de produção e não exigem alta disponibilidade podem usar instâncias básicas. Uma instância básica tem apenas um nó, sem um nó de espera. Para mais informações, consulte Reduzir custos usando instâncias básicas.

  • Instância do pool de leitura:o cluster pode ter uma ou mais instâncias do pool de leitura, cada uma contendo um ou mais nós somente leitura, até um máximo de 20 no cluster. O AlloyDB balanceia automaticamente todas as solicitações enviadas para uma instância de pool de leitura, encaminhando-as para os nós da instância.

Para casos de uso mais simples, um cluster pode ter apenas a instância principal, sem pools de leitura, e os aplicativos usam a instância principal para todas as consultas. Para trabalhos mais exigentes, adicione instâncias de pool de leitura ao cluster. Em seguida, configure seus aplicativos de relatórios ou análises para enviar solicitações de leitura a eles. Essa técnica reduz a carga na sua instância principal e melhora a escalabilidade ao distribuir a carga entre vários nós.

É possível adicionar, remover ou ajustar a contagem de nós de uma instância de pool de leitura a qualquer momento, conforme as necessidades do aplicativo mudam. Também é possível redimensionar a memória e a contagem de vCPUs dos nós constituintes de uma instância sempre que necessário, com um tempo de inatividade mínimo. O dimensionamento das instâncias não oferece risco de perda de dados, porque o AlloyDB armazena seus dados na camada de armazenamento flexível do cluster, e não nas instâncias.

Este diagrama ilustra um exemplo de cluster dimensionado para processar cargas de trabalho exigentes, com a inclusão de várias instâncias somente leitura de balanceamento de carga:

Diagrama mostrando um cluster com uma instância principal e instâncias de pool de leitura

Principais recursos

O AlloyDB se diferencia de uma instalação padrão do PostgreSQL de várias maneiras, além das vantagens de dimensionamento vertical e horizontal intrínsecas à arquitetura de vários nós descrita anteriormente. As seções a seguir têm uma análise mais detalhada dos principais recursos do AlloyDB.

Recursos automáticos e adaptáveis do banco de dados

O mecanismo de banco de dados totalmente compatível com PostgreSQL que alimenta todos os nós do AlloyDB tem vários recursos que analisam continuamente a estrutura e a frequência das consultas que suas instâncias processam, usando essas informações para sugerir melhorias no esquema ou aplicar otimizações automaticamente:

  • Um orientador de índice ajuda a encontrar oportunidades para otimizar o esquema do banco de dados usando novos índices com base nos padrões de uso.

  • Um mecanismo colunar pode acelerar a performance das consultas analíticas armazenando dados na memória usando um formato colunar. Isso permite que o AlloyDB use técnicas de processamento avançadas para verificar de maneira eficiente uma grande quantidade de dados de tabelas quando necessário.

  • Uma variação adaptável do recurso de autovacuum de dados desatualizados do PostgreSQL ajusta automaticamente os parâmetros relacionados ao vácuo para se adequar melhor à forma da sua carga de trabalho.

  • Os sistemas automáticos de gerenciamento de memória e armazenamento aproveitam o ambiente baseado em nuvem criado pelo Google em que o AlloyDB é executado, alocando e liberando continuamente memória e armazenamento conforme necessário para manter o cluster em execução com desempenho ideal e eficiência de recursos.

Alta disponibilidade

Por padrão, um cluster do AlloyDB oferece disponibilidade (HA) com os nós redundantes da instância principal, localizados em duas zonas diferentes, com failover automático.

Clusters que operam em ambientes que não são de produção e não exigem HA podem usar instâncias básicas de zona única.

A adição de instâncias do pool de leitura com pelo menos dois nós cria mais pontos de acesso de alta disponibilidade, balanceados por carga e de várias zonas, aos seus dados. Todas as instâncias do pool de leitura são executadas independentemente da instância principal.

Para mais informações sobre considerações específicas de cada região, consulte Geografia e regiões.

Backup de dados e recuperação de desastres

O AlloyDB tem um sistema de backup e recuperação contínuo que permite criar um novo cluster com base em qualquer ponto no tempo dentro de um período de armazenamento ajustável. Isso permite que você se recupere rapidamente de acidentes de perda de dados.

Além disso, o AlloyDB pode criar e armazenar backups completos dos dados do cluster, sob demanda ou em uma programação regular. A qualquer momento, é possível restaurar um backup para um novo cluster do AlloyDB que contenha todos os dados do cluster original no momento da criação do backup.

Para mais informações, consulte Sobre os backups.

Como outro método de recuperação de desastres, é possível fazer a replicação entre regiões criando clusters secundários em regiões separadas do Google Cloud. O AlloyDB transmite dados de um cluster principal designado para cada um dos clusters secundários de forma assíncrona. Sempre que necessário, é possível promover um cluster secundário para um cluster AlloyDB com recursos completos e instâncias de pool de leitura e principal.

Para mais informações, consulte Sobre a replicação entre regiões.

Segurança e controle de acesso

É possível configurar um cluster para exigir conexão com o proxy de autenticação AlloyDB seguro, que usa o Identity Access and Management (IAM) do Google Cloud para controle de acesso. Para mais informações, consulte Autorização.

O AlloyDB usa o sistema função do usuário padrão do PostgreSQL para autenticação, introduzindo algumas funções adicionais específicas para o AlloyDB. Para mais informações, consulte Gerenciar papéis de usuário do AlloyDB.

Encryption

O AlloyDB protege todos os dados em repouso usando os métodos de criptografia do Google por padrão. Se você precisar criptografar seus dados usando uma chave fornecida, especifique uma chave de criptografia gerenciada pelo cliente (CMEK) ao criar um cluster. O AlloyDB usa a chave CMEK para criptografar todos os dados gravados nesse cluster.

O CMEK também se aplica a backups. É possível especificar uma chave CMEK ao criar um backup sob demanda, configurar uma programação de backup ou restaurar um backup.

Para mais informações, consulte Sobre a CMEK.

Manutenção sem interrupção

As operações de manutenção do AlloyDB foram projetadas para minimizar interrupções no banco de dados. As instâncias primárias e secundárias têm um tempo de inatividade de menos de um segundo, enquanto os pools de leitura permanecem continuamente disponíveis sem tempo de inatividade. Isso é feito preparando servidores substitutos e trocando-os rapidamente pelos servidores ativos quando estiverem prontos. Durante esse processo, todas as conexões ativas com o banco de dados são descartadas momentaneamente. Você pode continuar usando o banco de dados normalmente durante esse processo.

Embora esse processo de substituição garanta um tempo de inatividade mínimo, a operação geral pode levar vários minutos, conforme indicado no console do Google Cloud e na CLI do Google Cloud.

Essas operações de manutenção incluem tarefas de manutenção periódicas executadas pelo Google e tarefas que você executa manualmente, como configuração de sinalizações e redimensionamento de instâncias. Se você quiser aplicar uma atualização imediatamente, mesmo que isso signifique um tempo de inatividade maior, use a flag FORCE_APPLY do banco de dados.

Suporte a extensões

O AlloyDB inclui suporte para várias extensões conhecidas do PostgreSQL. Para conferir a lista completa, consulte Extensões de banco de dados compatíveis.

Uma alternativa auto-hospeda: o AlloyDB Omni

Como alternativa à execução do AlloyDB no Google Cloud, o Google oferece o AlloyDB Omni. Esta edição simplificada e para download do AlloyDB permite executar o mecanismo de banco de dados no seu próprio ambiente de computação baseado em Linux, onde quer que ele esteja.

Para mais informações, consulte Sobre o AlloyDB Omni.

A seguir