Descripción general de AlloyDB

AlloyDB para PostgreSQL es un servicio de base de datos completamente administrado y compatible con PostgreSQL que está diseñado para las cargas de trabajo más exigentes, incluido el procesamiento híbrido transaccional y analítico. AlloyDB vincula un motor de base de datos creado por Google con una arquitectura multinodo basada en la nube para brindar rendimiento, confiabilidad y disponibilidad de nivel empresarial.

Cómo funciona AlloyDB

Una aplicación se conecta a instancias de AlloyDB con protocolos y técnicas estándar de PostgreSQL. Luego, la aplicación usa la sintaxis de consultas de PostgreSQL para trabajar con la base de datos.

En segundo plano, AlloyDB utiliza una jerarquía de componentes y funciones basados en la nube que están diseñados para maximizar la disponibilidad de tus datos y optimizar el rendimiento y la capacidad de procesamiento de las consultas. Google CloudLas herramientas administrativas te permiten supervisar el estado de tu implementación de AlloyDB y ajustar su escala y tamaño para que se adapten mejor a las demandas cambiantes de tu carga de trabajo.

Diferencia arquitectónica entre AlloyDB y PostgreSQL estándar

Las implementaciones tradicionales de PostgreSQL acoplan el motor de base de datos que procesa las consultas con el almacenamiento en el que residen tus datos, a menudo en el mismo servidor. AlloyDB emplea una arquitectura desagregada. Las capas de procesamiento y almacenamiento están separadas y ofrecen un escalamiento individual.

Escalar una configuración típica de PostgreSQL implica el escalamiento vertical, que consiste en actualizar a un servidor más grande, o el escalamiento horizontal para las lecturas, que se realiza con réplicas de lectura que también duplican los datos.

El diseño desagregado de AlloyDB, creado en el sistema de archivos distribuidos de Google, ofrece varias ventajas:

  • Escalamiento independiente: Puedes escalar verticalmente tus recursos de procesamiento, específicamente nodos e instancias, según las demandas de las consultas sin aprovisionar ni desaprovisionar almacenamiento. También puedes escalar horizontalmente los nodos de solo lectura para lograr una mayor escalabilidad de lectura, sin afectar la disponibilidad. A medida que crecen tus datos, el almacenamiento se ajusta sin afectar el procesamiento.
  • Rendimiento mejorado: Con un motor de almacenamiento optimizado y nativo de la nube, AlloyDB proporciona un rendimiento rápido de consultas transaccionales y analíticas, que resulta de capas de almacenamiento en caché inteligentes y una administración avanzada de E/S.
  • Administración simplificada: La separación de responsabilidades permite la administración automática de muchas operaciones de bases de datos, como la replicación, las copias de seguridad y la aplicación de parches, que son tareas manuales en PostgreSQL autoadministrado.
  • Alta disponibilidad y durabilidad: El almacenamiento de datos redundante en la capa duradera abarca varias zonas de disponibilidad, lo que proporciona conmutación por error y recuperación automáticas sin pérdida de datos, independientemente del estado de la instancia.

Esta diferencia fundamental en la arquitectura se manifiesta en la jerarquía de recursos de AlloyDB, que usa clústeres como los contenedores lógicos generales de la base de datos, con nodos que proporcionan la potencia de procesamiento y las instancias que actúan como puntos de conexión de la aplicación, todo mientras los datos persisten en una capa de almacenamiento separada y desagregada.

En el siguiente diagrama, se ilustra un ejemplo de clúster escalado para controlar cargas de trabajo exigentes, con la inclusión de varias instancias de grupo de lectura con balanceo de cargas:

Diagrama que muestra un clúster que contiene una instancia principal y instancias de grupo de lectura

Clústeres

Una sola implementación de AlloyDB dentro de una región Google Clouddeterminada organiza todos sus recursos en un solo clúster. Esto incluye todas tus bases de datos, registros y otros metadatos. AlloyDB implementa todos los recursos de un clúster en una sola nube privada virtual (VPC) y utiliza un sistema de archivos basado en la nube diseñado por Google y optimizado para AlloyDB.

Nodos e instancias

Un clúster contiene varios nodos, que son instancias de máquina virtual dedicadas a ejecutar el motor de base de datos compatible con PostgreSQL que las aplicaciones usan para consultar los datos del clúster. AlloyDB organiza los nodos en instancias, cada una de las cuales tiene una dirección IP estática y privada en tu VPC. En la práctica, tus aplicaciones se conectan a las instancias en estas direcciones IP con protocolos de PostgreSQL. Luego, las instancias pasan consultas de SQL a sus nodos.

AlloyDB tiene dos tipos de instancias:

  • Instancia principal: Cada clúster tiene una instancia principal que proporciona un punto de acceso de lectura o escritura a tus datos. Una instancia principal puede ser básica o con alta disponibilidad (HA).

    • Instancia principal de HA: Una instancia principal de HA tiene dos nodos: un nodo activo y un nodo en espera. AlloyDB supervisa la disponibilidad del nodo activo y, cuando es necesario, promueve automáticamente el nodo en espera al nodo activo.

    • Instancia básica: Los entornos que no son de producción y que no requieren alta disponibilidad pueden usar instancias básicas de forma opcional. Una instancia básica tiene solo un nodo, sin nodo en espera. Para obtener más información, consulta Reduce los costos con instancias básicas.

  • Instancia de grupo de lectura: Tu clúster puede tener, de manera opcional, una o más instancias de grupo de lectura, cada una de las cuales contiene uno o más nodos de solo lectura, hasta un máximo de 20 en todo el clúster. AlloyDB balancea automáticamente la carga de todas las solicitudes que se envían a una instancia de grupo de lectura y las enruta a los nodos de la instancia.

En casos de uso más simples, un clúster puede tener solo la instancia principal, sin grupos de lectura, y las aplicaciones usan la instancia principal para todas las consultas. Para trabajos más exigentes, puedes agregar instancias de grupos de lectura al clúster. Luego, configuras tus aplicaciones de informes o análisis para que les envíen solicitudes de lectura. Esta técnica reduce la carga en tu instancia principal y mejora la escalabilidad, ya que distribuye la carga en varios nodos.

Puedes agregar, quitar o ajustar la cantidad de nodos de una instancia de grupo de lectura en cualquier momento, a medida que cambian las necesidades de tu aplicación. También puedes cambiar el tamaño de la memoria y la cantidad de CPU virtuales de los nodos constituyentes de una instancia cuando lo necesites, con un tiempo de inactividad mínimo. Escalar tus instancias no implica ningún riesgo de pérdida de datos, ya que AlloyDB almacena tus datos en la capa de almacenamiento flexible del clúster, y no en las instancias.

Características clave

AlloyDB se distingue de una instalación estándar de PostgreSQL de varias maneras, más allá de las ventajas de escalamiento vertical y horizontal inherentes a la arquitectura de varios nodos que se describió anteriormente. En las siguientes secciones, se analizan en detalle las funciones clave de AlloyDB.

Funciones de base de datos automáticas y adaptativas

El motor de base de datos completamente compatible con PostgreSQL que impulsa cada nodo de AlloyDB tiene varias funciones que analizan de forma continua la estructura y la frecuencia de las consultas que controlan tus instancias, y utilizan esta información para sugerir mejoras en el esquema o aplicar optimizaciones de forma automática:

  • Un asesor de índices te ayuda a encontrar oportunidades para optimizar el esquema de tu base de datos con índices nuevos basados en tus patrones de uso.

  • Un motor de columnas puede acelerar el rendimiento de las consultas analíticas almacenando los datos en la memoria con un formato de columnas. Esto permite que AlloyDB use técnicas de procesamiento avanzadas para analizar de manera eficiente una gran cantidad de datos de la tabla cuando sea necesario.

  • Una variación adaptable de la función de aspiración automática de datos obsoletos de PostgreSQL ajusta automáticamente los parámetros relacionados con la aspiración para que se adapten mejor a la forma de tu carga de trabajo.

  • Los sistemas automáticos de administración de memoria y almacenamiento aprovechan el entorno basado en la nube y creado por Google en el que se ejecuta AlloyDB, y asignan y liberan memoria y almacenamiento de forma continua según sea necesario para que tu clúster se ejecute con un rendimiento óptimo y eficiencia de recursos.

Alta disponibilidad

De forma predeterminada, un clúster de AlloyDB ofrece alta disponibilidad (HA) a través de los nodos redundantes de su instancia principal, ubicados en dos zonas diferentes, con conmutación por error automática.

Los clústeres que operan en entornos que no son de producción y que no requieren HA pueden usar, de manera opcional, instancias principales básicas de una sola zona.

Agregar instancias de grupo de lectura que contengan al menos dos nodos crea más puntos de acceso con balanceo de cargas, multizonales y de alta disponibilidad a tus datos. Todas las instancias del grupo de lectura se ejecutan de forma independiente de la instancia principal.

Para obtener más información sobre las consideraciones específicas de la región, consulta Geografía y regiones.

Copia de seguridad y recuperación ante desastres de datos

AlloyDB incluye un sistema continuo de copias de seguridad y recuperación que te permite crear un clúster nuevo basado en cualquier momento dentro de un período de retención ajustable. Esto te permite recuperarte rápidamente de accidentes de pérdida de datos.

Además, AlloyDB puede crear y almacenar copias de seguridad completas de los datos de tu clúster, ya sea a pedido o de forma periódica. En cualquier momento, puedes restablecer un clúster de AlloyDB nuevo a partir de una copia de seguridad que contenga todos los datos del clúster original en el momento de la creación de la copia de seguridad.

Para obtener más información, consulta Acerca de las copias de seguridad.

Como método adicional de recuperación ante desastres, puedes lograr la replicación entre regiones creando clústeres secundarios en regiones de Google Cloudseparadas. AlloyDB transmite datos de forma asíncrona desde un clúster principal designado a cada uno de sus clústeres secundarios. Cuando sea necesario, puedes promover un clúster secundario a un clúster de AlloyDB con todas las funciones y con instancias principales y de grupo de lectura.

Para obtener más información, consulta Acerca de la replicación entre regiones.

Seguridad y control de acceso

Puedes configurar un clúster para que requiera conexión con el proxy de autenticación de AlloyDB seguro, que usa Google Cloud Identity Access and Management (IAM) para el control de acceso. Para obtener más información, consulta Autorización.

AlloyDB usa el sistema estándar de roles de usuario de PostgreSQL para la autenticación y presenta algunos roles adicionales específicos de AlloyDB. Para obtener más información, consulta Administra los roles de usuario de AlloyDB.

Encriptación

De forma predeterminada, AlloyDB protege todos los datos en reposo con los métodos de encriptación de Google. Si, en cambio, necesitas encriptar tus datos con una clave que tú proporciones, puedes especificar una clave de encriptación administrada por el cliente (CMEK) cuando crees un clúster. Luego, AlloyDB usa la clave CMEK para encriptar todos los datos escritos en ese clúster.

Las CMEK también se aplican a las copias de seguridad. Puedes especificar una clave de CMEK cuando creas una copia de seguridad a pedido, configuras una programación de copias de seguridad o restableces desde una copia de seguridad.

Para obtener más información, consulta Acerca de CMEK.

Mantenimiento sin interrupciones

Las operaciones de mantenimiento de AlloyDB están diseñadas para minimizar las interrupciones en tu base de datos. Las instancias principales y secundarias tienen un tiempo de inactividad de menos de un segundo, mientras que los grupos de lectura permanecen disponibles de forma continua sin tiempo de inactividad. Esto se logra preparando servidores de reemplazo y cambiándolos rápidamente por los servidores activos cuando están listos. Durante este proceso, se interrumpen momentáneamente todas las conexiones activas a la base de datos. Puedes seguir usando tu base de datos con normalidad durante todo este proceso.

Si bien este proceso de reemplazo garantiza un tiempo de inactividad mínimo, la operación general puede tardar varios minutos, como se indica en la consola Google Cloud y en Google Cloud CLI.

Estas operaciones de mantenimiento incluyen tareas periódicas que ejecuta Google y tareas que realizas de forma manual, como la configuración de marcas y el cambio de tamaño de las instancias. Si deseas aplicar cualquier actualización de inmediato, incluso si eso significa un tiempo de inactividad más prolongado, usa la marca de base de datos FORCE_APPLY.

AlloyDB AI

AlloyDB AI integra un conjunto de funciones de IA y AA directamente en tu base de datos de AlloyDB. Históricamente, la creación de aplicaciones basadas en IA requería canalizaciones de datos y procesos de ETL complejos para trasladar los datos de las bases de datos operativas a las plataformas especializadas de IA/AA. Este método generó desafíos, como una mayor latencia en la transferencia de datos, una mayor sobrecarga operativa por la administración de diferentes sistemas y almacenamiento duplicado. Al integrar las capacidades de IA directamente en la base de datos, AlloyDB AI elimina la necesidad de un movimiento externo de datos extenso.

Para facilitar el desarrollo de aplicaciones de IA, AlloyDB AI proporciona las siguientes extensiones:

  • vector (una versión de pgvector personalizada para AlloyDB AI): Almacena y crea índices de embeddings de vectores para la búsqueda semántica. Admite la ejecución de búsquedas híbridas y de similitud. Para comenzar a usar la búsqueda de vectores, consulta Cómo realizar una búsqueda de vectores.
  • alloydb_scann: Proporciona una búsqueda de vecino más cercano aproximado de alto rendimiento mediante la implementación de un índice de vecino más cercano altamente eficiente potenciado por el algoritmo de ScaNN. Para obtener más información, consulta Crea un índice de ScaNN.
  • google_ml_integration: Proporciona acceso al motor de consultas de IA, que permite la invocación de modelos de AA desde AlloyDB para tareas como la generación de incorporaciones, la clasificación semántica, los filtros y las uniones basados en IA, y la generación y el resumen de texto. La administración de extremos de modelos permite el registro y la invocación de modelos de IA, incluidos los modelos externos de OpenAI o Anthropic. Para obtener más información, consulta Cómo registrar un extremo del modelo y Cómo evaluar búsquedas semánticas con operadores de IA.
  • alloydb_ai_nl: Permite la interacción con tu base de datos usando lenguaje natural. Permite a los desarrolladores de aplicaciones generar consultas en SQL precisas y seguras en respuesta a preguntas en lenguaje natural de los usuarios finales, lo que permite que los usuarios que no conocen SQL accedan a los datos. Para obtener más información, consulta Descripción general del lenguaje natural.

Para obtener una lista de los casos de uso de las capacidades de AlloyDB AI, consulta Compila aplicaciones de IA generativa.

Compatibilidad con extensiones

AlloyDB incluye compatibilidad con varias extensiones populares de PostgreSQL. Para obtener la lista completa, consulta Extensiones de bases de datos compatibles.

Una alternativa autoalojada: AlloyDB Omni

Como alternativa a la ejecución de AlloyDB dentro de Google Cloud, Google ofrece AlloyDB Omni. Esta edición optimizada y descargable de AlloyDB te permite ejecutar su potente motor de base de datos en tu propio entorno de procesamiento basado en Linux, dondequiera que se encuentre.

Para obtener más información, consulta Acerca de AlloyDB Omni.

¿Qué sigue?