¿La voz también puede hacer una integración y un despliegue continuos? Vea cómo se implementa Jenkins + Alexa

作者:Kesha Williams

翻译:Peter

校对:卢迪

La configuración de la integración de Alexa en la tubería de Jenkins y el seguimiento del proceso a través de la voz es mucho más simple de lo imaginado.

Eche un vistazo a este tutorial de demostración sobre la implementación de código en servicios en la nube utilizando Alexa completado por Kesha Williams, miembro de Amazon Alexa Champion.

¿La voz también puede hacer una integración y un despliegue continuos?  Vea cómo se implementa Jenkins + Alexa

Por qué implementar a través de la operación por voz


La operación por voz ha revolucionado la forma en que nos comunicamos porque es simple, directa y eficiente. Para mí, es muy conveniente operar Jenkins por voz sin tocar el teclado en absoluto y obtener resultados. En este caso, la voz es otro punto de entrada para las operaciones de datos y será una garantía para mejorar la eficiencia de nuestra construcción, prueba y lanzamiento de operaciones automatizadas en profundidad de proyectos Java.

Integración continua y despliegue continuo


Si está familiarizado con DevOps, comprenderá la importancia de la integración y la implementación continuas para el lanzamiento de todo el producto de software. CI / CD es la mejor práctica de ingeniería para la construcción, prueba e implementación continuas. DevOps y CI / CD pueden mejorar la eficiencia del lanzamiento del producto y la confianza en el trabajo del equipo de ingenieros de software. Y mejorar directamente la satisfacción de los usuarios del producto final.

Descripción general de
DevOps Pal DevOps Pal es una solución privada de Alexa cuyo propósito es crear un flujo de trabajo de Jenkins. Alexa para negocios es la solución más adecuada en mi opinión, completando el diseño en base a la estructura organizativa y dominando el control de acceso completo. Desde el comienzo de la ejecución de DevOps Pal, los detalles del flujo de trabajo durante el proceso de ejecución se mostrarán en tiempo real.

Arquitectura DevOps Pal


Usé algunos componentes y herramientas para implementar DevOps Pal. Primero echemos un vistazo a su implementación específica:

¿La voz también puede hacer una integración y un despliegue continuos?  Vea cómo se implementa Jenkins + Alexa

El punto de partida de todo el proceso es decir "Alexa, abre DevOps Pal y comienza a implementar mi código" en el dispositivo Echo.

El dispositivo Echo monitorea las palabras clave de activación (como Alexa, Echo, Computer o Amazon). El principio de implementación detrás de él es reconocer las palabras clave de activación seleccionadas por el usuario a través de un mecanismo de aprendizaje profundo.

Una vez que se capture el comando de activación mío, la voz se grabará y se enviará al Servicio de voz de Alexa (AVS), que utiliza un algoritmo de reconocimiento de lenguaje natural (NLU) para convertir la voz en texto y reconocer la intención detrás de ella.

Entonces, mis instrucciones se publicaron en DevOps Pal; las habilidades adquiridas comenzaron a desencadenar la ejecución de las tareas de Jenkins y los resultados correspondientes se me informaron a través del mecanismo de síntesis de texto a voz (TTS). Este proceso se transmitió a través del lenguaje natural .

Veamos el principio de implementación en detalle por subcomponentes:

  • Servicio de voz de Alexa (AVS): normalmente digo que es el cerebro de Alexa en la nube. AVS es una combinación de una serie de servicios relacionados con los asistentes de inteligencia artificial controlados por voz. AVS puede conectarse de forma inteligente a cualquier dispositivo de terceros que incluya audífonos y micrófonos controlados por voz, y no se limita al uso de dispositivos Echo.

  • Alexa Skill Tree (ASK): este es un SDK (kit de desarrollo de software) para que los desarrolladores amplíen las habilidades de Alexa con el fin de desarrollar nuevas funciones personalizadas.

  • Portal de desarrollo de Alexa: el desarrollo de los puntos de habilidad de Alexa requiere la interfaz de usuario de voz (VUI), que reconocerá la entrada de voz y analizará la intención detrás de la voz a través del servicio de back-end en la nube y le dirá a Alexa cómo responder. Las configuraciones relacionadas de estos VUI y servicios de back-end en la nube se implementan a través del portal de desarrollo de Alexa.

  • AWS Lambda: algo de código que se ejecuta en la nube. Los desarrolladores no necesitan prestar atención a la configuración y administración del servidor. La aplicación creada por Lambda es independiente del servicio y puede configurar automáticamente el servidor requerido. Lambda admite implementaciones de múltiples lenguajes, como Python, Java, NodeJS, Go, C #, etc.

  • Herramienta de gestión de configuración de código GitHub-Java

  • Ejecute Jenkins en EC2: uso Jenkins para implementar, probar e implementar la interfaz de la aplicación Java. EC2 es un servidor virtual donde está instalado Jenkins. Jenkins también debe usarse con algunas otras herramientas:

  • Maven: una herramienta para la creación automática de proyectos Java

  • Marco Junit-A para pruebas unitarias de Java

  • Interfaz de línea de comandos (CLI) de AWS: los desarrolladores pueden utilizar la línea de comandos para acceder a los servicios de su cuenta de AWS.

  • Blue Ocean: este es un complemento de Jenkins para crear y monitorear los flujos de trabajo de Jenkins.

  • AWS Elastic Beanstalk: este es un servicio de orquestación que ayuda a los desarrolladores a implementar y administrar aplicaciones web relacionadas en la nube de Amazon.

  • Postman: este es un cliente HTTP para probar API y servicio web

Modelo de interacción de voz


La interfaz de usuario de voz (VUI) describe la situación general del flujo de trabajo de comunicación y se implementa a través de la consola de desarrollo de Alexa.

¿La voz también puede hacer una integración y un despliegue continuos?  Vea cómo se implementa Jenkins + Alexa

Los componentes de VUI que vale la pena enfatizar son el nombre de activación (cómo el usuario carga los puntos de habilidad relevantes) y la intención detrás (cómo el usuario organiza y distribuye la declaración de puntos de habilidad)

¿La voz también puede hacer una integración y un despliegue continuos?  Vea cómo se implementa Jenkins + Alexa

Por ejemplo, la "intención de implementar código" se logra cuando el usuario dice algunas declaraciones específicas (por ejemplo, ejecutar el flujo de trabajo de Jenkins, ejecutar tareas de Jenkins, implementar código especificado, implementar código o implementar) o algo similar. La declaración es como " Implementar mi código "

¿La voz también puede hacer una integración y un despliegue continuos?  Vea cómo se implementa Jenkins + Alexa

El punto final del proceso es el límite de ejecución de los puntos de habilidad insertados. En este caso, es un servicio Lambda escrito en Python. Su proceso comercial consiste en programar tareas de forma remota llamando a la interfaz de servicio remoto de Jenkins.

La URL para llamar a la tarea es jenkins_url / job / job_name / build. Cuando se realizan llamadas a la API, se usa el modo de autenticación básico y se agrega información relacionada con Jenkins al encabezado de solicitud HTTP para evitar la falsificación de solicitudes entre sitios CSRF (Cross- falsificación de solicitud de sitio) ***.

Por supuesto, después de la versión Jenkins 2.96, el token de API se puede usar para verificar la seguridad correspondiente de la API, sin la necesidad de pasar información de Jenkins y contraseñas relacionadas.

Tareas de Jenkins


¿La voz también puede hacer una integración y un despliegue continuos?  Vea cómo se implementa Jenkins + Alexa

DevOps Pal activó esta tarea 'alexa-cicd'. A través de esta interfaz de operación de Jenkins, podemos completar las operaciones relacionadas, pero todavía prefiero usar la interfaz de operación de Blue Ocean, que tiene una mejor experiencia de usuario y puede mejorar la intuición de la operación. Iniciar Blue Ocean también es muy simple, es decir, instalar un complemento, ya que la interfaz de usuario que use depende de usted.

¿La voz también puede hacer una integración y un despliegue continuos?  Vea cómo se implementa Jenkins + Alexa

Después de que Alexa inició la tarea 'alexa-cicd', fui a la interfaz de flujo de trabajo. Aquí puedo ver información en tiempo real sobre la ejecución de tareas. Cada tarea tiene cuatro fases de trabajo, inicio, construcción, prueba e implementación.

En esta etapa final de implementación, copio los artefactos generados al servidor S3 a través de la línea de comando (CLI) y luego creo una aplicación Elastic Beanstalk basada en esta versión.

Nuevas funciones que se introducirán


Automatizar la implementación a través de la voz es solo el comienzo. Las siguientes funciones se realizarán próximamente:

  • DevOps Pal podrá mostrar el nombre de la tarea de ejecución del flujo de trabajo relacionado. Esto mejorará enormemente la eficiencia del equipo de DevOps.

  • El servicio de notificación de Alexa se puede integrar con DevOps Pal, de modo que después de que la tarea se complete o falle, la información relevante se envíe directamente al dispositivo Echo. Si la tarea falla, habrá información más detallada sobre dónde ocurrió la falla y el motivo de la falla. Esto es de gran beneficio para las tareas a largo plazo y para obtener una ejecución oportuna de las mismas.

  • DevOps Pal se puede actualizar aún más para que pueda consultar la ejecución de tareas en tiempo real.

    Enlace original: https://jenkins.io/blog/2019/02/26/jenkins-alexa-voice-controlled-cicd/

Supongo que te gusta

Origin blog.51cto.com/15127503/2657524
Recomendado
Clasificación