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 solo lugar para publicar, descubrir y conectar servicios de forma coherente y confiable, independientemente de su entorno. El Directorio de servicios admite servicios en Google Cloud, entornos de múltiples nubes y locales, y puede escalar verticalmente a miles de servicios y extremos para un solo proyecto.
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
- Compatibilidad integrada con la CLI de Google Cloud y la consola deGoogle Cloud para interactuar con el Directorio de servicios
- Integración de Cloud Monitoring y Cloud Logging para supervisar, auditar y depurar las operaciones del Directorio de servicios
Por qué usar el Directorio de servicios
A medida que las aplicaciones adoptan servicios, poder resolver la ubicación de un servicio se vuelve más difícil a medida que cambian los extremos de esos servicios. Los servicios implementados en entornos híbridos presentan obstáculos adicionales, ya que ninguno de los dos puede compartir el mismo sistema de nomenclatura, lo que dificulta la resolución y la conexión de los servicios. Para ilustrar el problema, considera lo siguiente.
Imagina que estás creando 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 de forma rígida estas ubicaciones en tu código o almacenarlas en un archivo de configuración pequeño. Sin embargo, con los microservicios y las múltiples nubes, este problema se vuelve mucho más difícil de resolver, ya que todas 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.
Volvamos al diagrama anterior, pero esta vez agreguemos Directorio de servicios. En el siguiente diagrama, cada instancia de servicio se registra 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 productos, como App Engine y GKE. Google CloudPuedes hacer que estos servicios estén disponibles a través del DNS. Puedes aplicar controles de acceso a los servicios según la red, el proyecto y los roles de IAM de las cuentas de servicio.
El Directorio de servicios resuelve los siguientes problemas:
- Interoperabilidad: Directorio de servicios es un servicio de nombres universal que funciona en Google Cloud, entornos de múltiples nubes y entornos locales. 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, el escalamiento ni el mantenimiento de su propio registro de servicios.
- Control de acceso: Con Service Directory, puedes controlar quién puede registrar y resolver tus servicios con IAM. Asigna roles de Directorio de servicios a equipos, cuentas de servicio y organizaciones.
- Limitaciones del DNS puro: Los agentes de resolución de DNS pueden ser poco confiables en cuanto al respeto de los TTL y el almacenamiento en caché, no pueden controlar tamaños de registros más grandes y no ofrecen una forma sencilla de entregar metadatos a los usuarios. Además de la compatibilidad con DNS, 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 enGoogle Cloud. Las zonas de DNS privado te permiten asignar nombres internos a tus instancias de máquina virtual (VM), balanceadores de cargas o cualquier otro recurso. Las consultas de DNS para esas zonas de DNS privadas se restringen 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 a través de las búsquedas de DNS.
Descripción general de los componentes individuales:
- Los extremos se registran directamente en el Directorio de servicios a través de la API del Directorio de servicios. Puedes registrar servicios deGoogle Cloud y que no sean deGoogle Cloud con el Directorio de servicios.
- Los clientes externos e 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 asociada a 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 Directorio de servicios y cómo se pone a disposición a través del 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 de pagos se registra 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 dirección de los extremos del servicio de pago.
¿Qué sigue?
- Para aprender a configurar un espacio de nombres del Directorio de servicios, crear un servicio en el espacio de nombres y asignar extremos a un servicio, consulta Configura el Directorio de servicios.
- Para obtener información sobre cómo crear una zona de Directorio de servicios que aproveche un espacio de nombres existente, consulta Configura una zona de DNS de Directorio de servicios.
- Para obtener información sobre cómo realizar una consulta en 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 Directorio de servicios, consulta Solución de problemas.