Descripción general del Directorio de servicios

El Directorio de servicios es un servicio cubierto por las obligaciones de Google establecidas en el Anexo de Tratamiento de Datos de Cloud.

El Directorio de servicios es un único lugar para publicar, descubrir y conectarse a servicios de una manera coherente y confiable, independientemente de su entorno. El Directorio de servicios admite servicios en entornos Google Cloud, de múltiples nubes y locales, y puede escalar hasta miles de servicios y extremos para un solo proyecto.

El Directorio de servicios tiene las siguientes funciones:

  • Una API de registro y búsqueda para crear y resolver espacios de nombres, servicios y extremos
  • Integración con Cloud DNS Las zonas del directorio de servicios permiten que los servicios estén disponibles en la nube privada virtual (VPC).
  • Integración de IAM para asignar y controlar la visibilidad y los permisos del servicio
  • Google Cloud CLI y consola de Google Cloud integrados para interactuar con el directorio de servicios
  • Integración de Cloud Monitoring y Cloud Logging para supervisar, auditoría y depurar las operaciones de Service Directory

Por qué usar el Directorio de servicios

A medida que las aplicaciones adoptan servicios, se vuelve más difícil resolver la ubicación de un servicio a medida que cambian los extremos de esos servicios. Los servicios que se implementan en entornos híbridos presentan obstáculos adicionales, ya que ninguno puede compartir el mismo sistema de nombres, lo que dificulta la resolución y conexión de los servicios. Para ilustrar el problema, considera lo siguiente.

Imagina que estás compilando una API simple y que tu código necesita llamar a otra aplicación. Cuando la información del extremo permanece estática, puedes codificar estas ubicaciones en tu código o almacenarlas en un archivo de configuración pequeño. Sin embargo, con los microservicios y la multinube, este problema se vuelve mucho más difícil de resolver, ya que las instancias, los servicios y los entornos pueden cambiar.

Service Directory sin un balanceador de cargas (haz clic para ampliar)
Diferentes servicios de cambio (haz clic para ampliar)

Con el Directorio de servicios, puedes registrar todos tus servicios en un solo lugar y resolverlos con HTTP, gRPC y DNS.

Repasemos el diagrama anterior, pero esta vez agreguemos el directorio de servicios. En el siguiente diagrama, cada instancia de servicio está registrada en el Directorio de servicios. Estos registros se reflejan de inmediato en el DNS y se pueden consultar con HTTP/gRPC, independientemente de su implementación y entorno.

Directorio de servicios con un balanceador de cargas (haz clic para ampliar)
Directorio de servicios con un balanceador de cargas (haz clic para ampliar)

Puedes crear un nombre de servicio universal que funcione en todos los Google Cloud productos, como App Engine y GKE. Puedes hacer que estos servicios estén disponibles a través del DNS. Puedes aplicar controles de acceso a los servicios según los roles de red, proyecto y IAM de las cuentas de servicio.

El Directorio de servicios resuelve los siguientes problemas:

  1. Interoperabilidad: El Directorio de servicios es un servicio de nombres universal que funciona en Google Cloud, multinube y local. Puedes migrar servicios entre estos entornos y seguir usando el mismo nombre de servicio para registrar y resolver extremos.
  2. Administración de servicios: El Directorio de servicios es un servicio administrado. Tu organización no tiene que preocuparse por la alta disponibilidad, la redundancia, la escalabilidad ni el mantenimiento de su propio registro de servicios.
  3. Control de acceso: Con el Directorio de servicios, puedes controlar quién puede registrar y resolver tus servicios con IAM. Asigna roles del directorio de servicios a equipos, cuentas de servicio y organizaciones.
  4. Limitaciones del DNS puro: Los agentes de resolución de DNS pueden no ser confiables en términos de respeto por los TTL y el almacenamiento en caché, no pueden manejar tamaños de registro más grandes y no ofrecen una forma sencilla de entregar metadatos a los usuarios. Además de la compatibilidad con DNS, el Directorio de servicios ofrece APIs de HTTP y gRPC para consultar y resolver servicios.

Usa Cloud DNS con el Directorio de servicios

Cloud DNS es un servicio de sistema de nombres de dominio (DNS) rápido, escalable y confiable que se ejecuta en la infraestructura de Google.

Además de las zonas de DNS públicas, Cloud DNS también proporciona una solución de DNS interna administrada para redes privadas en Google Cloud. Las zonas de DNS privadas te permiten asignar nombres internos a tus instancias de máquina virtual (VM), balanceadores de cargas y otros recursos. Las consultas de DNS para esas zonas de DNS privadas se limitan a tus redes privadas.

En el siguiente diagrama, se ilustra cómo puedes usar las zonas del Directorio de servicios para que los nombres de los servicios estén disponibles mediante búsquedas de DNS.

Usa Cloud DNS con el Directorio de servicios (haz clic para ampliar)
Cómo usar Cloud DNS con el Directorio de servicios (haz clic para ampliar)

Descripción general de los componentes individuales:

  1. Los extremos se registran directamente en el Directorio de servicios con la API de este servicio. Puedes registrar servicios deGoogle Cloud y de terceros con el Directorio de servicios.Google Cloud
  2. Los clientes externos y los internos pueden buscar esos servicios en https://servicedirectory.googleapis.com.
  3. Para habilitar las solicitudes de DNS, crea una zona de Directorio de servicios en Cloud DNS que esté asociada con un espacio de nombres del Directorio de servicios.
  4. Los clientes internos pueden resolver este servicio con DNS, HTTP y gRPC. Los clientes externos (clientes que no están en la red privada) deben usar HTTP o gRPC para resolver los nombres de los servicios.

Configuración de ejemplo

Cómo exponer un servicio a través de DNS

En el siguiente diagrama, se ilustra cómo se modela una arquitectura de microservicios en el directorio de servicios y se pone a disposición mediante DNS. Ten en cuenta que el Directorio de servicios mantiene los servicios y los extremos por completo, pero la zona privada está en Cloud DNS.

Exposición de un servicio a través de DNS (haz clic para ampliar)
Exposición de un servicio a través de DNS (haz clic para ampliar)

En este diagrama (lado izquierdo), el servicio payments está registrado en un espacio de nombres con el nombre backend-namespace, la región us-east1 y el proyecto gcp-project. El espacio de nombres está vinculado a la zona privada example.com.

Para realizar una búsqueda de DNS, el cliente solicita el registro SRV para el nombre de dominio _payments._tcp.payments.example.com, que se resuelve en los números de puerto y los registros de direcciones de los extremos del servicio de pago.

¿Qué sigue?