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.
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.
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:
- 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.
- 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.
- 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.
- 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.
Descripción general de los componentes individuales:
- 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
- Los clientes externos y los internos pueden buscar esos servicios en https://servicedirectory.googleapis.com.
- 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.
- 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.
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?
- Para obtener información sobre cómo configurar un espacio de nombres de Service Directory, crear un servicio en el espacio de nombres y asignar extremos a un servicio, consulta Configura el Directorio de servicios.
- Para aprender a crear una zona de Directorio de servicios que aproveche un espacio de nombres existente, consulta Configura una zona de DNS del Directorio de servicios.
- Para obtener información sobre cómo realizar una consulta a una zona existente del Directorio de servicios con DNS, consulta Cómo realizar una consulta con DNS.
- Para encontrar soluciones a problemas habituales que podrías tener cuando usas Service Directory, consulta Solución de problemas.