Dapr

Distributed Apps Runtime (Dapr) ofrece API que le ayudan a escribir e implementar microservicios sencillos, portables, resistentes y protegidos. Las API de Dapr, que se ejecutan como un proceso sidecar en tándem con sus aplicaciones, eliminan las complejidades comunes que puede encontrar al crear aplicaciones distribuidas, como:

  • Detección de servicios
  • Integración del agente de mensajes
  • Cifrado
  • Observabilidad
  • Administración de secretos

Dapr se puede adoptar de forma incremental. Puede usar cualquiera de los bloques de creación de la API según sea necesario.

Diagrama que muestra cuántos marcos de código diferentes pueden establecer una interfaz con los distintos bloques de creación de Dapr a través de HTTP o gRPC.

Características y funcionalidades

El uso de la extensión de Dapr para aprovisionar Dapr en el clúster de AKS o Kubernetes habilitado para Arc elimina la sobrecarga de:

  • Descarga de herramientas de Dapr
  • Instalación y administración manual del entorno de ejecución de Dapr en el clúster de AKS

Puede instalar, implementar y configurar la extensión Dapr en el clúster mediante la CLI de Azure o una plantilla de Bicep.

Además, la extensión ofrece compatibilidad con todas las funcionalidades de configuración nativas de Dapr a través de argumentos de línea de comandos sencillos.

Dapr proporciona el siguiente conjunto de funcionalidades para ayudarle con el desarrollo de microservicios en AKS:

  • Aprovisionamiento sencillo de Dapr en AKS a través de extensiones de clúster.
  • Portabilidad habilitada a través de las API de HTTP y gRPC que abstraen las opciones de tecnologías subyacentes.
  • Llamadas de servicio a servicio confiables, seguras y resistentes a través de las API de HTTP y gRPC.
  • Publicación y suscripción a la mensajería que facilita la compatibilidad con el filtrado de CloudEvent y la semántica "al menos una vez" para la entrega de mensajes.
  • Observabilidad y supervisión conectables a través del recopilador de API de Open Telemetry.
  • Funciona independientemente del idioma, a la vez que ofrece SDK específicos del lenguaje.
  • Integración con VS Code a través de la extensión Dapr.
  • Más API para resolver los desafíos de las aplicaciones distribuidas

Preguntas más frecuentes

¿Cómo se comparan las mallas de servicio y de Dapr?

R: Cuando una malla de servicio se define como una malla de servicio de red, Dapr no es una malla de servicio. Aunque Dapr y las mallas de servicio ofrecen algunas funcionalidades superpuestas, una malla de servicio se centra en los problemas de red, mientras que Dapr se centra en proporcionar bloques de creación que facilitan a los desarrolladores la creación de aplicaciones como microservicios. Dapr está centrado en el desarrollador, mientras que las mallas de servicio están centradas en la infraestructura.

Algunas funcionalidades comunes que Dapr comparte con las mallas de servicio incluyen:

  • Protección de la comunicación entre servicios con el cifrado mTLS
  • Recopilación de métricas de servicio a servicio
  • Seguimiento distribuido de servicio a servicio
  • Resistencia a través de reintentos

Además, Dapr proporciona otros bloques de creación de nivel de aplicación para la administración de estados, mensajería de tipo pub/sub, actores, etc. Sin embargo, Dapr no proporciona funcionalidades para el comportamiento del tráfico, como el enrutamiento o la división del tráfico. Si la solución se beneficia del tráfico que se divide en una malla de servicio, considere la posibilidad de usar Open Service Mesh.

Para obtener más información sobre Dapr y las mallas de servicio, y cómo se pueden usar juntas, consulte la documentación de Dapr.

¿Cómo se compara la API de secretos de Dapr con el controlador CSI del almacén de secretos?

Tanto la API de secretos de Dapr como el controlador CSI del almacén de secretos administrado permiten la integración de secretos contenidos en un almacén externo, abstrayendo así la tecnología de almacén de secretos del código de la aplicación. El controlador CSI del almacén de secretos monta los secretos que se mantienen en Azure Key Vault como un volumen CSI para el consumo por parte de una aplicación. Dapr expone secretos a través de una API de RESTful a la que se puede llamar mediante el código de aplicación y se puede configurar con almacenes de secretos variados. En la tabla siguiente se enumeran las funcionalidades de cada oferta:

API de secretos de Dapr Controlador CSI del almacén de secretos
Almacenes de secretos admitidos Variables de entorno local (para desarrollo); Archivo local (para desarrollo); Secretos de Kubernetes; Administrador de secretos de AWS; Secretos de Azure Key Vault; Azure Key Vault con identidades administradas en Kubernetes; Administrador de secretos de GCP; HashiCorp Vault. Almacén de secretos de Azure Key Vault.
Acceso a los secretos en el código de aplicación Llamada a la API de secretos de Dapr. Acceso al volumen montado o sincronización del contenido montado como un secreto de Kubernetes y establecimiento de una variable de entorno.
Rotación de secretos Las nuevas llamadas API obtienen los secretos actualizados. Sondea los secretos y actualiza el montaje en un intervalo configurable.
Registro y métricas El sidecar de Dapr genera registros, que se pueden configurar con recopiladores como Azure Monitor, emite métricas a través de Prometheus y expone un punto de conexión HTTP para las comprobaciones de estado. Emite métricas de controlador y de proveedor de Azure Key Vault a través de Prometheus.

Para obtener más información sobre la administración de secretos en Dapr, consulte la introducción al bloque de creación de administración de secretos.

Para obtener más información sobre el controlador CSI del almacén de secretos y el proveedor de Azure Key Vault, consulte la introducción al controlador CSI del almacén de secretos.

¿Cómo se compara la extensión administrada del clúster de Dapr con la oferta de Dapr de código abierto?

La extensión administrada del clúster de Dapr es el método más sencillo para aprovisionar Dapr en un clúster de AKS. Con la extensión, puede descargar la administración de la versión en tiempo de ejecución de Dapr si opta por las actualizaciones automáticas. Además, la extensión instala Dapr con valores predeterminados inteligentes (por ejemplo, para aprovisionar el plano de control de Dapr en modo de alta disponibilidad).

Al instalar Dapr OSS mediante Helm o la CLI de Dapr, las versiones en tiempo de ejecución y las opciones de configuración son responsabilidad de los desarrolladores y los responsables de mantenimiento de los clústeres.

Por último, la extensión de Dapr es una extensión de AKS, por lo que puede esperar la misma directiva de compatibilidad que otras características de AKS.

Obtenga más información sobre la migración desde Dapr OSS a la extensión Dapr para AKS.

¿Cómo puedo autenticar componentes de Dapr con Microsoft Entra ID mediante identidades administradas?

¿Cómo puedo cambiar al uso de la extensión de Dapr si ya he instalado Dapr a través de un método como Helm?

La recomendación es desinstalar por completo Dapr del clúster de AKS y volver a instalarlo a través de la extensión de clúster.

Si instala Dapr a través de la extensión de AKS, nuestra recomendación es seguir usando la extensión para la administración futura de Dapr en lugar de la CLI de Dapr. La combinación de las dos herramientas puede provocar conflictos y generar un comportamiento no deseado.

Pasos siguientes

Después de conocer Dapr y algunos de los desafíos que resuelve, pruebe a implementar una aplicación con la extensión del clúster de Dapr.