Dapr y Rainbond se integran para realizar BaaS nativo en la nube y desarrollo de microservicios modulares

fondo

Dapr es un tiempo de ejecución de aplicaciones distribuidas de código abierto que ayuda a los desarrolladores a crear aplicaciones distribuidas débilmente acopladas con buena escalabilidad y capacidad de mantenimiento. Rainbond es una plataforma de gestión de aplicaciones nativa de la nube de nivel empresarial que proporciona funciones y herramientas ricas para facilitar a los desarrolladores la gestión e implementación de aplicaciones. La combinación de Rainbond y Dapr puede proporcionar los siguientes puntos de valor:

  1. Ampliar el soporte nativo de la nube para Dapr: Rainbond proporciona un conjunto completo de soluciones de soporte de aplicaciones nativas de la nube, incluido el desarrollo de aplicaciones, la orquestación de aplicaciones, la entrega de aplicaciones, la operación y el mantenimiento de aplicaciones y otras capacidades de gestión del ciclo de vida de las aplicaciones, mientras que Dapr es solo un desarrollo de aplicaciones. framework, que incluye modelos de desarrollo de aplicaciones, descubrimiento de servicios, basado en eventos y más. La combinación de Rainbond y Dapr puede proporcionar un soporte de aplicaciones nativas de la nube más completo y ayudar a los desarrolladores a crear e implementar aplicaciones más rápido.
  2. Mejore la portabilidad de las aplicaciones de Dapr: Rainbond proporciona capacidades de plantilla de aplicación, y las aplicaciones desarrolladas por Dapr se empaquetan en forma de plantillas, que se pueden entregar y migrar fácilmente a otras plataformas para su funcionamiento.
  3. Ampliar las capacidades de gobierno de servicios para Rainbond: Rainbond admite la extensión de las capacidades de gobierno de servicios a través de complementos. Combinado con Dapr, el gobierno de servicios se puede realizar a través de Dapr. La combinación de los dos puede proporcionar una función de gobierno de servicios más completa y ayudar a los desarrolladores a administrar y controlar mejor los servicios en las aplicaciones.
  4. Agregue capacidades de BaaS a Rainbond: para desarrollar software en Rainbond, debe instalar la base de datos de back-end y el middleware usted mismo, y Dapr proporciona las capacidades de back-end en forma de API. Los desarrolladores solo necesitan acceder a las capacidades de back-end a través de API para realizar la experiencia BaaS.

En resumen, Dapr y Rainbond pueden complementar la falta de capacidades de cada uno. Rainbond resuelve el problema de la gestión del ciclo de vida de las aplicaciones. Los desarrolladores no necesitan comprender la tecnología subyacente, pero aún deben comprender los servicios de back-end. Dapr complementa esta capacidad y permite a los desarrolladores centrarse más en el negocio.

Las ideas de integración de Rainbond y Dapr

En el sistema comercial del marco de microservicios Dapr, Daprd es el núcleo de todo el negocio. La aplicación envía solicitudes a Daprd a través de la API de tiempo de ejecución, y Daprd es responsable de procesar estas solicitudes e interactuar con los servicios subyacentes. Daprd es inyectado por el servicio dapr-sidecar-injector en Dapr Services y se inyecta cuando el Pod cumple con las condiciones de inyección. Al mismo tiempo, el operador dapr en Dapr Services monitoreará el recurso de configuración de Dapr (CRD) en todo el clúster. Cuando capture la creación de un recurso de configuración de Dapr, se registrará en la memoria y el Daprd inyectado nuevamente use esta configuración si el Pod declara , se proporcionarán las capacidades correspondientes.

  • Instalación del Servicio Dapr : Rainbond integra los recursos de los Servicios Dapr y los coloca en la tienda de aplicaciones como una aplicación de complemento. A través de la instalación, nuestro clúster puede equipar rápidamente nuestro clúster con la capacidad de arquitectura de microservicio dapr, evitando la necesidad de ejecutar comandos en el clúster. y al mismo tiempo resolver problemas externos.El dapr init -kproblema del tirón del espejo.
  • Inyección DaprD : en el método de inyección tradicional, necesitamos agregar manualmente campos de condición de inyección, lo que requiere mucho tiempo, es difícil de mantener y es propenso a errores; Rainbond admite agregar diferentes campos de atributos a nuestro Pod para cumplir con la inyección de diferentes arquitecturas de microservicios por cambiando el modo de gobierno de las Condiciones de la aplicación, para lograr la inyección por lotes, el uso rápido y la administración fácil.
  • Configuración de Dapr : Dapr proporciona cuatro recursos para configurar Daprd para expandir nuestras capacidades de gobierno de servicios, a saber, Configuración, Componente, Resiliencia y Suscripción. Necesitamos crear estos recursos en el clúster en forma de escritura Yaml para que los usen los componentes comerciales. Plataforma Rainbond En la entrada de gestión de recursos k8s en la aplicación, el efecto es kubectlalgo similar pero kubectlmás fácil de gestionar. Entre ellos, el recurso Configuración se usa para almacenar la información de configuración de la aplicación, como cadenas de conexión, claves, certificados, etc., que deben declararse para annotationslas propiedades de Rainbond proporciona annotationsconfiguración de propiedades, lo que simplifica nuestro proceso de configuración.
  • Instalación y acoplamiento de componentes de Dapr : la tienda de aplicaciones de Rainbond ya tiene muchas implementaciones de back-end, como MySQL, Redis, etc., que se pueden instalar y usar en Rainbond con un solo clic. Configure el yaml del Componente en la administración de recursos K8s de la aplicación Dapr y vincule la dirección del servicio de back-end.
  • **Desarrollo de aplicaciones Dapr: **La aplicación desarrollada por Dapr se puede implementar en la plataforma Rainbond con código fuente, imagen y yaml, y luego acceder a los servicios de back-end de acuerdo con la especificación API de Dapr. Rainbond proporciona integración continua, entrega continua, y gestión del entorno para aplicaciones Dapr, gestión de configuración, registro y control de rendimiento, puerta de enlace de acceso, operación y mantenimiento de aplicaciones y otras capacidades para ayudar en el desarrollo y la gestión de aplicaciones Dapr.

Proceso de implementación y uso

Blancos usando Dpar basado en Rainbond:

  • Implementación con un solo clic del servicio Dapr, de modo que el clúster tenga la capacidad de la arquitectura de microservicio Dapr.
  • Inyecte automáticamente Daprd para componentes comerciales.
  • Administre visualmente la configuración de Dapr.
  • Simplifique el proceso de configuración de parámetros de atributos de Daprd.
  • Múltiples formas de entregar su negocio Dapr.

Permítame implementar un ejemplo de publicación y suscripción para que comprenda y domine rápidamente cómo se usa Dapr en Rainbond

requisito previo

  1. La versión de Rainbond es superior a v5.13.
  2. Rainbond ya se ha hecho cargo de la tienda de aplicaciones de código abierto y tiene permisos de inserción.

Practicar pasos

1. Instale el complemento Rainbond Service Mesh

El complemento Rainbond ServiceMesh es responsable de procesar y ajustar los componentes de la aplicación de acuerdo con el modo de gobierno especificado para cumplir con las condiciones básicas para la inyección del complemento de gobierno de microservicios. a través de平台管理->应⽤市场->开源应⽤商店->搜索 Rainbond-ServiceMesh 并进行安装

2. Instale el complemento de la aplicación Dapr

Cree un equipo llamado dapr-system en inglés e instale Dapr Services. a través de 平台管理->应⽤市场->开源应⽤商店->搜索 Rainbond-Dapr 并进行安装.

3. Componente vinculante

Dapr admite el acoplamiento con varias implementaciones de componentes, como Redis, Mysql, Oauth, etc. También es muy fácil de instalar en la plataforma Rainbond. La mayoría de las implementaciones se pueden encontrar en la tienda de aplicaciones de Rainbond. También se aceptan algunos almacenamientos no compatibles. para participar en la producción y lanzamiento de la aplicación en la tienda de aplicaciones. En este ejemplo, necesitamos instalar Redis a través de 平台管理->应⽤市场->开源应⽤商店->搜索 Redis 并进行安装. Una vez completada la instalación 应用视图->k8s资源->编写 Component 资源, vincúlelo.

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: pubsub
spec:
  type: pubsub.redis
  version: v1
  metadata:
  - name: "redisHost"
    value: "YOUR_REDIS_HOST_HERE"
  - name: "redisPassword"
    value: "YOUR_REDIS_PASSWORD_HERE"

Si es MySQL, el paso es enlazar平台管理->应⽤市场->开源应⽤商店->搜索 MySQL 并进行安装 después de que se complete la instalación . 应用视图->k8s资源->编写 Component 资源

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: <NAME>
spec:
  type: state.mysql
  version: v1
  metadata:
  - name: connectionString
    value: "<CONNECTION STRING>"
  - name: schemaName
    value: "<SCHEMA NAME>"
  - name: tableName
    value: "<TABLE NAME>"
  - name: pemPath
    value: "<PEM PATH>"

4. Cambiar el modo de gobierno de aplicaciones

Cambie el modelo de gobierno de las aplicaciones comerciales a Dapr. a través de 应用视图->治理模式->选择 Dapr 治理模式进行切换. Entre ellos, el modo de gobierno dapr agregará campos a los annotationsatributos dapr.io/enabled: "true"y dapr.io/app-id="xxx"donde xxx es el nombre en inglés del componente. Debido a que es dapr.io/app-idel único identificador en el sistema Dapr, Rainbond admite la autoconfiguración. Si se detecta este campo de atributo , la configuración original se usará primero. Una vez que se cumplen las condiciones de inyección, el servicio dapr-sidecar-injector comienza a funcionar para inyectar Daprd para nuestros componentes comerciales.

5. Implementar negocios

Rainbond proporciona una variedad de formas de implementar su negocio, duplicación, Helm, Yaml, código fuente, etc. Aquí elijo usar la implementación espejo, los pasos específicos son: 应用视图->添加组件->指定镜像->填写镜像地址.

demo镜像地址:
registry.cn-hangzhou.aliyuncs.com/zhangqihang/pubsub-node-subscriber:latest
registry.cn-hangzhou.aliyuncs.com/zhangqihang/pubsub-react-form:latest
registry.cn-hangzhou.aliyuncs.com/zhangqihang/pubsub-go-subscriber:latest

Dado que la cola de mensajes en Dapr annotationsnecesita establecer dapr.io/app-portel campo para la propiedad del componente, no se genera automáticamente al cambiar el modo de gobierno, por lo que debemos hacerlo 组件视图->其他设置->Kubernetes属性->新增属性->选择 annotations->添加 dapr.io/app-port=组件端口字段. De manera similar, aquí se configuran otros campos annotationsde atributos .

6. Despliega el efecto final

Luego puede acceder al componente de publicación de mensajes y publicar mensajes en las suscripciones A pubsub-react-form 组件的组件视图->端口->打开对外服务, B y C. Puede ver el contenido de la suscripción observando los registros de los componentes pubsub-node-subscriber.pubsub-go-subscriber组件视图->日志

7. Administrar a través de la consola de Dapr

Visite el panel de dapr para ver la información de registro de nuestros componentes de microservicio en Dapr.

8. Publicar plantilla de aplicación

Rainbond ofrece la posibilidad de publicar plantillas de aplicaciones con un solo clic. En la vista de la aplicación de desarrollo de Dapr, haga clic 发布para publicar la plantilla de la aplicación e instalarla rápidamente en otros entornos en línea y sin conexión a través de la plantilla de la aplicación. Sin embargo, cuando lo use en otros entornos, primero debe instalar el entorno básico de Rainbond y Dapr.

Escalando Dapr en Rainbond

seguimiento de enlaces

El seguimiento de enlaces es una tecnología de monitoreo y solución de problemas de red que se utiliza para rastrear la ruta de los paquetes de datos en la red y los nodos por los que pasan para optimizar el rendimiento de la red y encontrar problemas. En Dapr, funciona mediante la configuración de rastreadores de enlace Configuration资源. ConfigurationEl siguiente es un ejemplo de configuración de recursos implementado por Zipkin tracker . Consulte Observabilidad de Dapr para obtener más detalles .

existir应用视图->k8s资源->编写 Configuration 资源

apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
  name: daprConfig
  namespace: default
spec:
  tracing:
    samplingRate: "1"
    zipkin:
      endpointAddress: "http://localhost:9411/api/v2/spans"

Límite de corriente del fusible

Al limitar la cantidad máxima de solicitudes HTTP permitidas por segundo, la limitación de velocidad protege su aplicación de los ataques de denegación de servicio (DOS). Necesitamos configurar componentlos recursos como middleware, luego Configuration 资源vincularlos y configurar los montajes en los componentes comerciales.

En 应用视图->k8s资源->编写 Component 资源el middleware, establezca el número máximo de solicitudes por segundo en 10.

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: ratelimit
spec:
  type: middleware.http.ratelimit
  version: v1
  metadata:
  - name: maxRequestsPerSecond
    value: 10

Enlace 应用视图->k8s资源->编写 Configuration 配置资源de middleware.

apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
  name: appconfig
spec:
  httpPipeline:
    handlers:
    - name: ratelimit
      type: middleware.http.ratelimit

En 组件视图->其他设置->Kubernetes属性->新增属性->选择annotations->添加 dapr.io/config 属性字段Configuración vinculante.

Supongo que te gusta

Origin blog.csdn.net/Mrex326428/article/details/130112283
Recomendado
Clasificación