Mendix combinado con Tencent TSF para lograr la gobernanza de microservicios

Coautor:

Peng Shan (ex director de producto de Mendix)    

Xiao Yunong (director general de Tencent Cloud Middleware)

Jiang Biao (Director técnico de Mendix)

Han Xin (director técnico de la plataforma de microservicios de Tencent)

Liu Yan (Gerente de producto de Middleware en la nube de Tencent)

 

01. Resumen

Este documento presenta la mejor solución para la aplicación Mendix de la plataforma de desarrollo de aplicaciones empresariales de Siemens para implementar la gobernanza del servicio utilizando Tencent Cloud Microservice Platform (TSF). Esta solución solo se utiliza para la gestión de los servicios de aplicaciones de Mendix en un entorno de no producción.Si necesita la mejor solución para el entorno de producción, puede ponerse en contacto con el equipo de Siemens Mendix y el equipo de TSF de Tencent Cloud para realizar consultas.

  • Conocimiento de los negocios

Cuando las empresas tienen grandes aplicaciones que necesitan dividirse en múltiples microservicios, Mendix no puede cumplir con todas las funciones de gobernanza del servicio sin depender de ninguna plataforma en la nube, como Mendix Cloud, Openshift, K8S, etc., para el funcionamiento del entorno de la nube privada. Más aún. Incluso las plataformas de código abierto como K8S, Openshift, Mesos, Rancher, la plataforma de contenedores Docker-swarm, etc., no tienen capacidades sólidas de gobernanza de servicios. Para los marcos de gobierno de servicios con altas intrusiones de código, SpringCloud, Dubbo, etc.son más difíciles de desarrollar para las aplicaciones de Mendix (para las aplicaciones de Mendix, actualmente puede personalizar el código a través de javaAction, y para Springcloud, la autoridad del código personalizado está lejos de ser suficiente ), sólido No aplicable; Para marcos de gobernanza de servicio Service Mesh profesionales no intrusivos en el código, como Istio, Linkerd, Nginmesh, Maistra, etc., se requiere un equipo profesional para mantenerlo. El costo de tiempo y el costo de operación y mantenimiento aumentan considerablemente el presupuesto del proyecto, por lo que en privado Se necesita un conjunto de soluciones para realizar rápidamente la gobernanza del servicio en el entorno de la nube.

Poseer una forma de código bajo para crear una aplicación de nivel empresarial a gran escala basada en clústeres de microservicios, ayudar a las empresas a aplicar rápidamente la última tecnología de Internet, acelerar la innovación empresarial, respaldar mejor el desarrollo iterativo ágil y rápido y mejorar las capacidades generales de administración de TI.

  • Ámbito de aplicación

Utilice la plataforma de microservicios TSF de Tencent Cloud para implementar la gobernanza del servicio entre las aplicaciones de Mendix.

Como enrutamiento de servicio, límite de corriente de servicio, reglas de autenticación de servicio. Los usuarios pueden realizar un control de flujo detallado en forma de etiquetas de configuración y peso para lograr funciones como liberación de escala de grises, enrutamiento más cercano, restricción de flujo y control de autoridad de acceso.

Enlace del producto TSF: https://cloud.tencent.com/document/product/649

  • Capacidades de gobernanza del servicio TSF

La plataforma de microservicios Mesh (Tencent Service Mesh Framework, TSF Mesh para abreviar), basada en el concepto de Service Mesh, proporciona aplicaciones con capacidades de gestión de servicios como el registro y descubrimiento automático de servicios, enrutamiento de servicios, autenticación, limitación de corriente y fusión, y no es necesario obtener la aplicación. La transformación intrusiva del código se puede integrar con el marco de servicio. Para obtener más información sobre TSF Mesh, haga clic aquí para ver: "Práctica y exploración del equipo de Middleware en la nube de Tencent en Service Mesh" .

A través de la plataforma de microservicios TSF de Tencent Cloud, proporciona soluciones para la gobernanza entre microservicios desarrolladas por Mendix.

• Gestión de servicios en línea para realizar la visualización del servicio y la gestión del ciclo de vida completo

• Etiquetas comerciales personalizadas, aplicadas a la autenticación de servicios definida por el usuario y las reglas de enrutamiento de servicios

• Lista de API y depuración, conveniente para que los usuarios vean la información de la interfaz de API y la depuración remota

• Estadísticas de servicio, que proporcionan datos de supervisión de la operación del servicio, que se utilizan para localizar rápidamente excepciones de servicio y descubrir cuellos de botella del sistema

• Autenticación de servicios para evitar la invocación ilegal de servicios.

• Límite de corriente de servicio, protege el propio servicio, evita averías en el tráfico y provoca anomalías en el sistema

• Enrutamiento de servicio, versión gris, versión canary, versión azul-verde

• Fusible de servicio: cuando un servicio descendente no está disponible o responde demasiado lento por alguna razón, el servicio ascendente no continuará llamando al servicio de destino y regresará directamente para garantizar la disponibilidad de su servicio general. Cuando se restablece el servicio en sentido descendente, el servicio en sentido ascendente reanudará la invocación.

• Registre alarmas para descubrir rápidamente anomalías en el sistema.

• Registro en tiempo real, registro de inicio del servicio de detección.

• Recuperación de registros para encontrar rápidamente anomalías en el sistema.

• El servicio se basa en la topología y muestra la vista panorámica del servicio de la aplicación, que se puede utilizar para localizar rápidamente las excepciones del servicio y descubrir los cuellos de botella del sistema.

• Consulta y detalles de la cadena de llamadas, localiza rápidamente las excepciones del servicio en la dimensión de la interfaz y descubre los cuellos de botella del sistema.

• Escalado flexible, que garantiza una alta disponibilidad del servicio, reduce las operaciones manuales y ahorra recursos del sistema.

• Lanzamiento de escala de grises de enlace completo

• Programación distribuida de tareas, tiempo, ejecución periódica de tareas, orquestación del flujo de trabajo

• Transacciones distribuidas, garantía de consistencia de datos en múltiples bases de datos.

• Pasarela de microservicios, autenticación de servicios globales, enrutamiento de servicios, gestión de servicios.

 

02. Preparación

Preparaciones relacionadas con TSF

Para completar con éxito esta práctica, debe realizar los siguientes preparativos con anticipación:

  • Inicie sesión en la consola de Tencent Cloud, después de registrarse y autenticarse con el nombre real, inicie sesión en su cuenta de Tencent Cloud (vaya al enlace: https://cloud.tencent.com).

  • Confirme que el saldo de la cuenta de Tencent Cloud sea superior a 100 yuanes.

  • Si inicia sesión con la cuenta principal, ya tiene permisos de acceso para todos los recursos de forma predeterminada; si inicia sesión con una subcuenta, debe otorgar los permisos pertinentes por adelantado, puede ir a (https: // cloud. tencent.com/document/product/598/ 10600) Vea cómo utilizar la estrategia CAM para la autorización.

  •  Una máquina que puede acceder a la red pública (se puede comprar en la página CVM de Tencent Cloud), que se utiliza para cargar la imagen de la aplicación Mendix.

  •  Servicio de contenedores TKE.

 

03. Construcción de la imagen de Mendix

  • Múltiples microservicios desarrollados a través de Mendix Studio Pro

Por ejemplo, los paquetes de proyecto ilink.mpk y native.mpk, los dos llaman a los servicios del otro.

Llamada tradicional a la API Rest: http: // ip: port.

La llamada a la API Rest restaurada, http: // service-name /, usa el nombre del servicio para implementar llamadas mutuas entre servicios.

  • Crear imagen

Descargar archivos de script relacionados

clon de git https://github.com/mendix/docker-mendix-buildpack.git

Estructura del directorio de archivos

├── Dockerfile

├── Dockerfile.rootfs.bionic

├── Dockerfile.rootfs.trusty

├── LICENCIA

├── Makefile

├── README.md

├── guiones

│ ├── cleanupjdk

│ ├── compilación

│ ├── git

│ ├── inicio

│ └── vcap_application.json

└── pruebas

    ├── docker-compose-azuresql.yml

    ├── docker-compose-k8s.yml

    ├── docker-compose-mysql.yml

    ├── docker-compose-postgres.yml

    ├── docker-compose-sqlserver.yml

    ├── stop.sh

└── test-generic.sh

Coloque el paquete MPK desarrollado en el mismo directorio que docker-mendix-buildpack

ilink.mpk y native.mpk son dos microservicios desarrollados por Mendix. docker-mendix-buildpack-ilink y docker-mendix-buildpack-native son scripts relacionados con la construcción de dos imágenes de aplicaciones y la implementación de contenedores. Los archivos principales incluyen Dockerfile, Makefile y archivos de inicio.

Modificación de Makefile

antes de arreglar:

Después de la modificación:

Cree un archivo nativeService.tar.gz con el siguiente contenido:

.

├── apis

└── └── native.yaml

├── registros

└── spec.yaml

##Spec.yaml文件主要是定义服务及健康检查相关的内容:apiVersion: v1kind: Applicationspec:  services:    - name: native      ports:        - targetPort: 8080          protocol: http      healthCheck:        path: /##native.yaml主要定义相关的api,不做强求,内容如下:openapi: 3.0.0info:  version: "1.0.0"  title: native servicepaths:  /api/v6/user/create:    get:      responses:        '200':           description: OK        '401':           description: Unauthorized        '402':           description: Forbidden        '403':           description: Not Found  /api/v6/user/account/query:    get:      responses:        '200':           description: OK        '401':           description: Unauthorized        '402':           description: Forbidden        '403':           description: Not Found  /health:    get:      responses:        '200':           description: OK        '401':           description: Unauthorized        '402':           description: Forbidden        '403':           description: Not Found

La ubicación del archivo nativeService.tar.gz es la siguiente:

De la misma forma, cree el archivo ilinkService.tar.gz con el siguiente contenido:

.

├── apis

└── └── native.yaml

├── registros

└── spec.yaml

##Spec.yaml文件主要是定义服务及健康检查相关的内容:apiVersion: v1kind: Applicationspec:  services:    - name: ilink      ports:        - targetPort: 8080          protocol: http      healthCheck:        path: /

Modificar el archivo Dockerfile

El contenido revisado es el siguiente:

Modificar el archivo de inicio en el directorio del script.

Agrega contenido al final:

os.system('mkdir -p /opt/tsf/app_config/apis')os.system('cp /opt/app/nativeService/spec.yaml /opt/tsf/app_config/')os.system('cp -r /opt/app/nativeService/apis /opt/tsf/app_config/')

Construcción de imagen

##make  get-sample     相当于解压文件到build文件夹##make  build-image    构建镜像并指定相应的镜像的tag

Debe prestar atención al contenido del archivo modificado por dockerfile

Cuando aparece el siguiente contenido, la compilación es exitosa

La función de almacén de imágenes de Tencent Cloud almacena la imagen construida

Instrucciones de uso:

https://cloud.tencent.com/document/product/457/9118

Cargue el paquete espejo construido localmente al almacén espejo

 

04. Plataforma de microservicios de Tencent

Crea 2 servidores en la nube

Para conocer el proceso de creación específico, consulte: https://cloud.tencent.com/document/product/213/2936

Configure un grupo de seguridad:

Agregue las reglas de seguridad correspondientes:

referencia:

https://cloud.tencent.com/document/product/213/12452

Inicie sesión en la plataforma de microservicios

Abra el panel de control y busque TSF:

Ingrese a la plataforma de microservicio de Tencent TSF:

Nuevo clúster

Este clúster de contenedores utiliza la plataforma TKE de servicios de contenedores de Tencent Cloud.

Importe el host en la nube, los siguientes ya están vinculados, solo elija 2 servidores en la nube creados entre ellos.

Información del clúster:

Incluyendo dos hosts en la nube.

Nueva aplicación

Lo mismo va para:

Nuevo elemento de configuración de registro

Configuración:

Agregar regla de publicación:

Nuevo grupo de implementación

Nueva implementación

Necesita verificar si hay suficientes recursos antes de guardar el siguiente paso

Del mismo modo, cree otro mendix-ilink

Creado:

Crear un servicio de base de datos back-end

Abra la plataforma de servicio de contenedores

Puede ver el clúster creado en la plataforma de microservicio en este momento y hacer clic en la identificación del clúster:

Nueva implementación:

MYSQL_USER=mendixMYSQL_PASSWORD=mendixMYSQL_DATABASE=mendixMYSQL_ROOT_PASSWORD=root

Servicio de base de datos mysql creado:

Gestión de pod:

Cree otra instancia de base de datos para mysql:

create  database  mxIlink;GRANT ALL ON *.* TO 'mendix'@'%';flush privileges ;

Agregar variables de entorno para aplicaciones de microservicio

Edite el archivo yaml:

Agrega contenido a uno de ellos:

- name: ADMIN_PASSWORD   value: Password1! - name: DATABASE_URL    value: mysql://mendix:mendix@ilink-mysql:3306/mendix##另外一个添加内容:- name: ADMIN_PASSWORD   value: Password1! - name: DATABASE_URL    value: mysql://mendix:mendix@ilink-mysql:3306/mxIlink##两者数据库实例不同即可

Cuando el número de pods coincide con las expectativas, la implementación de la aplicación se completa:

 

05 Servicio de verificación

Como configuramos el puerto host para acceder a la aplicación antes, los puertos de las dos aplicaciones son 30080 y 30089 respectivamente, a los que se puede acceder a través de cualquier servidor en la nube.

Nuevo -> POST

PUBLICAR la tarea recién creada en otro microservicio en forma de descanso, y GET obtendrá los datos enviados desde el otro microservicio, como se muestra a continuación:

Datos de tareas recibidos por otra plataforma de microservicios:

Al construir la imagen, se mencionó la API Rest. La forma tradicional es ip + port, y ahora se puede llamar directamente usando service-name.

Manera tradicional:

El camino ahora:

Llamarse de la misma manera

Las funciones relacionadas con la gestión de servicios, como el registro de servicios y el descubrimiento de servicios, son proporcionadas por TSF.

 

06. Gobernanza de microservicios

Consulta de gobierno del servicio

Actualmente, los servicios que implementamos son todas instancias, que se pueden escalar elásticamente a través de la plataforma de servicios de contenedores.

Topología dependiente del servicio

La relación de dependencia entre los dos servicios se muestra en la figura anterior.

Resumen de llamadas:

Consulta de cadena de llamadas:

Seguimiento de TraceId:

Monitoreo de servicio

Estado de salud del servicio:

 Estadísticas del código de estado de retraso:

Servicio de registro

Dado que el elemento de configuración del registro se creó anteriormente, el registro se puede recuperar a través del servicio de registro TSF.

A través de una variedad de métodos de consulta, como consulta básica, sintaxis de Lucene, expresiones regulares. Como sigue:


Para obtener más información, visite el siguiente enlace:

Sitio web oficial de Mendix: https://www.mendix.com/zh/

Soluciones industriales de Mendix: https://solutions.mendix.com/

Guía de la plataforma Mendix: https://www.mendix.com/evaluation-guide/

Pantalla de animación de Mendix: https://www.mendix.com/demos/

Cuenta pública Mendix

 

 

¡gracias por leer!

Supongo que te gusta

Origin blog.csdn.net/Mendix/article/details/114521142
Recomendado
Clasificación