Chatops para la arquitectura de microservicios - Chatops4MSA
ChatOps4MSA es una herramienta de asistente de conversación diseñada para el desarrollo y operaciones de microservicios, utilizando grandes modelos de idiomas (LLM). Los usuarios pueden monitorear el estado del servicio en tiempo real, realizar acciones automatizadas como pruebas y escaneo de códigos, y recibir notificaciones de alerta utilizando un lenguaje de consulta diseñado llamado CQL (lenguaje de consulta de Chatops) o lenguaje natural.
Los desarrolladores pueden personalizar las funcionalidades deseadas utilizando archivos de configuración de bajo código, lo que lo distingue del desarrollo tradicional de chatbot que a menudo requiere datos de capacitación extensos. Aprovechando modelos de idiomas grandes de última generación, Chatops4MSA analiza las consultas de los usuarios para determinar la intención y las entidades, permitiendo las acciones correspondientes.
Aquí está el escenario de ChatOps4MSA:

Aquí está el concepto de operación de Chatops4MSA:

Para obtener más detalles, consulte Funcionar.md
En el canal de Chatops, use @ChatOps4Msa-Bot para mencionar Chatops4MSA, luego ingrese su solicitud en lenguaje natural.

En el canal Chatops, ejecute directamente comandos usando comandos de corte que comienzan con / .

Y aquí está la sintaxis de CQL:
/[ACTION] [TOOL] [COMMAND] [SERVICE] [FLAGS]

| PARÁMETRO | DESCRIPCIÓN | ¿REQUERIDO? |
|---|---|---|
| [ACCIÓN] | Las acciones que se realizarán, como recuperar información (GET), configuración de configuración (set), servicios de monitoreo (monitor), servicios de prueba (prueba), etc. | requerido |
| [HERRAMIENTA] | Las herramientas que se utilizarán, como GitHub, Prometeo, K6, módulos personalizados, etc. | requerido |
| [DOMINIO] | Las operaciones se ejecutarán, como service_recent_activity . | requerido |
| [SERVICIO] | El servicio objetivo para la ejecución, que se puede seleccionar como all_service para incluir todos los servicios. | opcional |
| [Banderas] | Opciones de parámetros adicionales, que pueden ser múltiples; Todos los comandos CQL incluyen el parámetro subscribe para programar ejecuciones periódicas de la función, siendo el valor del parámetro una expresión cron. | opcional |
Aquí hay varias capacidades de demostración diseñadas para mostrar las características de ChatOps4MSA, puede realizar estas capacidades utilizando lenguaje natural o CQL.
| INTENCIÓN | ENTIDAD | DESCRIPCIÓN |
|---|---|---|
| Get-Ejemplo-ECO_Message | mensaje | Solo hace eco de un mensaje a Discord. |
| Get-Ejemplo-Math_Calcule | expresión | Realizar cálculos utilizando la expresión matemática dada. |
| get-github-service_recent_activity | servicio_name, number_of_activity | Recupere actividades recientes del repositorio de un servicio. |
| get-github-service_past_week_team_activity | Service_Name | Obtenga la actividad del equipo para el servicio especificado en la semana pasada. |
| get-github-service_code_scanning | Service_Name | Obtenga el informe de cheque de la compromiso más reciente en el repositorio del servicio. |
| establecer | Service_Name, emits_title, emess_message | Cree problemas en el repositorio de los servicios con riesgos de dependencia. |
| get-github-iso_progress_timeline | Service_Name, Number_of_Sise | Describa el progreso del problema con una línea de tiempo. |
| Get-GitHub-Contribution_of_team_member | Service_Name | Obtenga el análisis de contribución de los miembros del equipo. |
| monitor-prometheus-promql_overview | (null) | Monitorear todas las métricas de servicio utilizando PROMQL. |
| monitor-prometheus-grafana_overview | (null) | Monitoree el estado general de todos los servicios utilizando una interfaz gráfica de usuario (GUI). |
| Get-Prometheus-Alert_Rule | (null) | Vea las reglas de alerta a través de la interfaz de usuario de Prometheus. |
| monitor-prometheus-service_health | (null) | Monitoree el estado de salud de todos los servicios. |
| monitor-prometheus-all_service_yesterday_status | (null) | Recupere el estado operativo de microservicio de ayer usando PROMQL. |
| monitor-prometheus-service_dependency | (null) | Monitorear las relaciones de dependencia entre microservicios. |
| test-k6-stress_testing | Service_Name | Realice pruebas de estrés en un servicio específico. |
| test-k6-smoke_testing_all_service | número_of_virtual_user | Realice pruebas de humo en todos los servicios. |
| prueba-custom_test-smoke_and_repo_all_service | número_of_virtual_user | Realice pruebas de humo en todos los servicios, monitoree el estado y obtenga una actividad reciente para fallar microservicios. |
Por razones de seguridad, las siguientes capacidades solo se pueden ejecutar a través de comandos de corte y no a través del lenguaje natural.
Complete la expresión cron en el parámetro subscribe de CQL, por ejemplo:

Puede usar el comando slash /check_all_subscription para ver todas las suscripciones, por ejemplo:

Y puede usar el comando slash /unsubscribe_all_capability para cancelar la suscripción de todas las capacidades, por ejemplo:

Enlace de youtube
Verificamos la salud del bot de discordia periódicamente. Sin embargo, no tenemos una garantía de alta disponibilidad en el servicio. Siéntase libre de abrir un problema si no está disponible.
Enlace de discordia
La cuenta predeterminada para las herramientas DevOps es
admin, y la contraseña predeterminada essoselab.
Crear una aplicación de discordia (bot):
Supervisor y Team_Member .Registre los comandos de corte (CQL):
git clone https://github.com/sheng-kai-wang/ChatOps4Msa.gitapplication.properties y secret.yml archivos, puede consultar las plantillas proporcionadas: Application-Template.Properties y Secret_template.yml. Implementar en su servidor utilizando los archivos de script .sh proporcionados:
sh run_all.sh para iniciar todo el sistema."Ctrl" + "b", then "d" . Puede volver a ingresar la sesión con tmux attach .Bifurca los siguientes 4 repositorios de microservicios para utilizar capacidades relacionadas con GitHub:
<<Reverse proxy domain>>adminsoselabscan_run_id de la URL. Consulte el step_for_github_scan_run_id.Inicie sesión en Grafana y configure manualmente la fuente de datos (Prometheus) para habilitar las capacidades relacionadas con Grafana:
sh run_chatops4msa.sh para hacerlo.Solo necesita escribir archivos de configuración en formato de bajo código.
Ver Custom_Capability.md