Visão geral do AlloyDB

O AlloyDB para PostgreSQL é um serviço de banco de dados totalmente gerenciado e compatível com o PostgreSQL. Ele integra um mecanismo de banco de dados criado pelo Google a uma arquitetura de vários nós baseada na nuvem para oferecer desempenho, confiabilidade e disponibilidade de nível empresarial para seus aplicativos mais exigentes.

Casos de uso do AlloyDB

O AlloyDB oferece uma alternativa escalonável ao PostgreSQL autogerenciado. Use o AlloyDB se quiser passar menos tempo gerenciando a infraestrutura e mais tempo criando aplicativos.

O AlloyDB foi projetado para cargas de trabalho exigentes, incluindo:

  • Processamento transacional e analítico híbrido (HTAP, na sigla em inglês): execute consultas analíticas complexas nos seus dados transacionais ativos sem afetar o desempenho ou a disponibilidade.
  • Aplicativos de IA de baixa latência: crie aplicativos de IA generativa aproveitando a IA do AlloyDB, que integra a pesquisa vetorial e a invocação de modelos de machine learning diretamente no mecanismo de banco de dados, eliminando a necessidade de movimentação de dados externos de alta latência.
  • Cargas de trabalho de missão crítica de nível empresarial: implante aplicativos que exigem os mais altos níveis de desempenho, confiabilidade e disponibilidade, com suporte de uma arquitetura desagregada de computação e armazenamento que abrange várias zonas de disponibilidade.

O que o AlloyDB oferece

O AlloyDB oferece muitos serviços para que você não precise criá-los e mantê-los por conta própria. Concentre-se nos dados e deixe que o AlloyDB faça as seguintes operações:

  • Backups: proteja seus dados com backups programados automatizados e sob demanda, além de um sistema de recuperação contínua que permite a recuperação pontual.
  • Alta disponibilidade: garanta a continuidade do serviço com nós redundantes localizados em zonas diferentes, com failover automático entre eles.
  • Gerenciamento de recursos: otimize o desempenho e a eficiência com sistemas que alocam e liberam memória e armazenamento automaticamente conforme necessário.
  • Otimização de consultas: melhore o desempenho do banco de dados usando um consultor de índice que sugere melhorias de esquema e um mecanismo colunar que acelera as consultas analíticas.
  • Segurança e criptografia: proteja os dados em repouso usando a criptografia padrão do Google ou chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) e gerencie o acesso usando o gerenciamento de identidade e acesso (IAM, na sigla em inglês) integrado. Google Cloud

Administração de banco de dados

O AlloyDB gerencia a infraestrutura subjacente do seu banco de dados, como backups automatizados, patches de segurança e alocação de recursos. No entanto, o AlloyDB não é uma ferramenta independente de administração de banco de dados. Você ainda precisa de ferramentas administrativas para gerenciar os esquemas, dados e usuários nos seus bancos de dados.

É possível usar as seguintes ferramentas para se conectar e gerenciar seus bancos de dados:

  • AlloyDB Studio: uma ferramenta baseada na Web integrada diretamente ao Google Cloud console que permite explorar e gerenciar seus dados usando uma interface SQL interativa.
  • Clientes do PostgreSQL: como o AlloyDB é totalmente compatível com o PostgreSQL, é possível usar clientes administrativos padrão e ferramentas de linha de comando, como psql e pgAdmin, para trabalhar com seu banco de dados.

Preços do AlloyDB

O AlloyDB usa um modelo de preços baseado no consumo, o que significa que você recebe cobranças pelos recursos usados. Os preços do AlloyDB variam de acordo com as definições de configuração e dependem dos seguintes fatores:

  • Recursos da instância: o tipo de máquina (número de vCPUs e quantidade de RAM) selecionado para as instâncias principal e do pool de leitura.
  • Armazenamento: a quantidade de dados armazenados na camada de armazenamento flexível do cluster.
  • Rede: a quantidade de tráfego de saída de rede das instâncias.

Para mais informações, consulte os preços do AlloyDB para PostgreSQL.

Como o AlloyDB funciona

Um aplicativo se conecta a instâncias do AlloyDB usando protocolos padrão do PostgreSQL.

Por baixo dos panos, o AlloyDB usa uma arquitetura desagregada e uma hierarquia de recursos projetada para maximizar a disponibilidade e o desempenho.

Diferença arquitetônica do PostgreSQL padrão

O PostgreSQL tradicional combina o mecanismo de banco de dados que processa consultas com o armazenamento no mesmo servidor. O AlloyDB usa uma arquitetura desagregada, em que as camadas de computação e armazenamento são separadas e escalonadas de forma independente.

  • Computação: máquinas virtuais ou nós que processam suas consultas.
  • Armazenamento: um mecanismo de armazenamento distribuído nativo da nuvem que mantém seus dados em várias zonas de disponibilidade e é escalonado automaticamente à medida que os dados crescem.

Hierarquia de recursos do AlloyDB

O AlloyDB organiza os recursos em três níveis: clusters, instâncias e nós.

O diagrama a seguir ilustra a hierarquia de recursos do AlloyDB, com um cluster escalonado com uma instância principal e várias instâncias de pool de leitura com balanceamento de carga:

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

  • Cluster: um recurso de nível superior que atua como um contêiner lógico para seus bancos de dados, registros e outros metadados em uma região. É possível criar vários clusters no mesmo projeto e região.
  • Instância: um cluster contém uma ou mais instâncias. Uma instância fornece o ponto de conexão para seus aplicativos.
  • Nó: uma instância é alimentada por um ou mais nós. Um nó é uma máquina virtual (VM) dedicada à execução do mecanismo de banco de dados.

O que é uma instância do AlloyDB?

Uma instância do AlloyDB é o ponto de acesso ao seu banco de dados. Cada instância tem um endereço IP estático particular na sua VPC. Quando o aplicativo envia uma consulta para esse endereço IP, a instância encaminha a solicitação para os nós subjacentes para processamento.

O AlloyDB usa dois tipos de instâncias:

  • Instância principal: fornece acesso de leitura e gravação aos seus dados. Cada cluster tem exatamente uma instância principal. Uma instância principal pode ser de alta disponibilidade (HA) ou básica.

    • Alta disponibilidade: contém dois nós, um ativo e um em espera, localizados em zonas diferentes para failover automático.

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

  • Instância do pool de leitura: fornece acesso somente leitura para escalonar suas cargas de trabalho. É possível adicionar uma ou mais instâncias do pool de leitura, cada uma contendo até 20 nós no total no cluster. O AlloyDB faz o balanceamento de carga automático das solicitações nos nós de um 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 escalonamento vertical e horizontal inerentes à arquitetura de vários nós descrita anteriormente. As seções a seguir analisam os principais recursos do AlloyDB.

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

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

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

  • Um mecanismo colunar pode acelerar o desempenho de 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 analisar com eficiência uma grande quantidade de dados de tabela quando necessário.

  • Uma variação adaptativa do recurso de autovacuum de dados desatualizados do PostgreSQL ajusta automaticamente os parâmetros relacionados ao vacuum para melhor atender à forma da sua carga de trabalho.

  • Os sistemas automáticos de gerenciamento de memória e armazenamento aproveitam o ambiente baseado na nuvem criado pelo Google em que o AlloyDB é executado, alocando e liberando memória e armazenamento continuamente 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) por meio dos nós redundantes da instância principal, localizados em duas zonas diferentes, com failover automático.

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

A adição de instâncias do pool de leitura que contêm pelo menos dois nós cria mais pontos de acesso de alta disponibilidade com balanceamento de carga e várias zonas aos seus dados. Todas as instâncias do pool de leitura são executadas de forma independente da instância principal.

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

Backup de dados e recuperação de desastres

O AlloyDB apresenta um sistema contínuo de backup e recuperação 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 backups.

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

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 AlloyDB Auth Proxy seguro, que usa o Google Cloud gerenciamento de identidade e acesso (IAM, na sigla em inglês) para controle de acesso. Para mais informações, consulte Autorização.

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

Criptografia

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

A 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, acesse Sobre CMEK.

Manutenção e atualizações

Durante a vida útil de um cluster do AlloyDB, podem ocorrer dois tipos de atualizações:

  • Atualizações do sistema: o Google realiza atualizações do sistema periodicamente para garantir que o hardware e o software subjacentes sejam confiáveis, seguros e tenham desempenho ideal. Essas atualizações incluem patches de segurança, upgrades do sistema operacional e atualizações secundárias da versão do servidor PostgreSQL.
  • Atualizações de configuração: são mudanças que você realiza manualmente no cluster ou nas instâncias para atender às demandas de carga de trabalho em constante mudança. Os exemplos incluem redimensionar a contagem de vCPU e memória de uma instância ou modificar flags de banco de dados.

As operações de manutenção do AlloyDB foram projetadas para não serem disruptivas. Isso é feito preparando servidores de substituição e trocando-os rapidamente pelos servidores ativos quando estiverem prontos. Durante esse processo, as instâncias principais normalmente têm menos de um segundo de inatividade, enquanto os pools de leitura permanecem disponíveis continuamente. Todas as conexões ativas com o banco de dados são interrompidas momentaneamente, mas é possível continuar usando o banco de dados normalmente durante todo o processo.

Se você quiser aplicar uma atualização imediatamente, mesmo que isso signifique um tempo de inatividade maior, use a FORCE_APPLY flag de banco de dados.

IA do AlloyDB

A IA do AlloyDB integra um conjunto de recursos de IA e ML diretamente ao seu banco de dados do AlloyDB. Historicamente, a criação de aplicativos de IA exigia pipelines de dados complexos e processos de ETL para mover dados de bancos de dados operacionais para plataformas especializadas de IA/ML. Esse método levou a desafios como aumento da latência da transferência de dados, maior sobrecarga operacional do gerenciamento de sistemas diferentes e armazenamento duplicado. Ao integrar recursos de IA diretamente ao banco de dados, a IA do AlloyDB elimina a necessidade de movimentação externa de dados.

Para facilitar o desenvolvimento de aplicativos de IA, a IA do AlloyDB fornece as seguintes extensões:

  • vector (uma versão do pgvector personalizada para a IA do AlloyDB): armazena e indexa embeddings vetoriais para pesquisa semântica. Oferece suporte à execução de consultas híbridas e pesquisas de similaridade. Para começar a usar a pesquisa vetorial, consulte Fazer uma pesquisa vetorial.
  • alloydb_scann: fornece pesquisa de vizinho mais próximo aproximada de alto desempenho implementando um índice de vizinho mais próximo altamente eficiente com tecnologia do algoritmo ScaNN. Para mais informações, consulte Criar um índice ScaNN.
  • google_ml_integration: fornece acesso às funções de IA, que permite a invocação de modelos de ML do AlloyDB para tarefas como geração de embeddings, classificação semântica, filtros e junções baseados em IA e geração e resumo de texto. O gerenciamento de endpoints de modelo permite o registro e a invocação de modelos de IA, incluindo modelos externos da OpenAI ou da Anthropic. Para mais informações, consulte Registrar um endpoint de modelo e Avaliar consultas semânticas com operadores de IA.
  • alloydb_ai_nl: permite a interação com seu banco de dados usando linguagem natural. Ele permite que os desenvolvedores de aplicativos gerem consultas SQL precisas e seguras em resposta a perguntas em linguagem natural do usuário final, permitindo que usuários não SQL acessem dados. Para mais informações, consulte Visão geral da linguagem natural.

Para uma lista de casos de uso dos recursos de IA do AlloyDB, consulte Criar aplicativos de IA generativa.

Suporte a extensões

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

Uma alternativa auto-hospedada: AlloyDB Omni

Como alternativa à execução do AlloyDB no Google Cloud Google Cloud, o Google oferece o AlloyDB Omni. Essa edição simplificada e para download do AlloyDB permite executar o mecanismo de banco de dados avançado 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