En el mundo del desarrollo de software, la revisión y aprobación del código son procesos importantes para garantizar la calidad, seguridad y funcionalidad del software que se está desarrollando. Sin embargo, los gerentes encargados de supervisar estos procesos críticos a menudo enfrentan numerosos desafíos, como los siguientes:
- Falta de experiencia técnica – Es posible que los gerentes no tengan un conocimiento técnico profundo del lenguaje de programación utilizado o que no hayan estado involucrados en la ingeniería de software durante un período prolongado. Esto da como resultado una brecha de conocimiento que puede dificultarles evaluar con precisión el impacto y la solidez de los cambios de código propuestos.
- Limitaciones de tiempo – La revisión y aprobación del código puede ser un proceso que requiere mucho tiempo, especialmente en proyectos más grandes o complejos. Los gerentes deben equilibrar la minuciosidad de la revisión y la presión para cumplir con los cronogramas del proyecto.
- Volumen de solicitudes de cambio – Lidiar con un gran volumen de solicitudes de cambio es un desafío común para los gerentes, especialmente si supervisan múltiples equipos y proyectos. De manera similar al desafío de la limitación de tiempo, los gerentes deben poder manejar esas solicitudes de manera eficiente para no frenar el progreso del proyecto.
- esfuerzo manual – La revisión del código requiere un esfuerzo manual por parte de los gerentes y la falta de automatización puede dificultar la ampliación del proceso.
- Documentación – La documentación adecuada del proceso de revisión y aprobación del código es importante para la transparencia y la rendición de cuentas.
Con el aumento de inteligencia artificial generativa (AI), los gerentes ahora pueden aprovechar esta tecnología transformadora e integrarla con el conjunto de herramientas y servicios de implementación de AWS para agilizar el proceso de revisión y aprobación de una manera que antes no era posible. En esta publicación, exploramos una solución que ofrece un flujo de trabajo de implementación integrado de extremo a extremo que incorpora análisis y resumen de cambios automatizados junto con la funcionalidad del flujo de trabajo de aprobación. Usamos lecho rocoso del amazonas, un servicio totalmente administrado que hace que los modelos básicos (FM) de las principales empresas emergentes de IA y Amazon estén disponibles a través de una API, para que pueda elegir entre una amplia gama de FM y encontrar el modelo que mejor se adapte a su caso de uso. Con la experiencia sin servidor de Amazon Bedrock, puede comenzar rápidamente, personalizar de forma privada los FM con sus propios datos e integrarlos e implementarlos en sus aplicaciones utilizando herramientas de AWS sin tener que administrar ninguna infraestructura.
Resumen de la solución
El siguiente diagrama ilustra la arquitectura de la solución.
El flujo de trabajo consta de los siguientes pasos:
- Un desarrollador envía nuevos cambios de código a su repositorio de código (como Compromiso de código de AWS), que activa automáticamente el inicio de una AWS CodePipeline despliegue.
- El código de la aplicación pasa por un proceso de creación de código, realiza análisis de vulnerabilidades y realiza pruebas unitarias utilizando sus herramientas preferidas.
- Construcción de código AWS recupera el repositorio y realiza un comando git show para extraer las diferencias de código entre la versión de confirmación actual y la versión de confirmación anterior. Esto produce una salida línea por línea que indica los cambios de código realizados en esta versión.
- CodeBuild guarda la salida en un Amazon DynamoDB tabla con información de referencia adicional:
- ID de ejecución de CodePipeline
- Región de AWS
- Nombre de CodePipeline
- Número de compilación de CodeBuild
- Fecha y hora
- Estado
- Secuencias de Amazon DynamoDB captura las modificaciones de los datos hecho a la mesa.
- An AWS Lambda La función es activada por la secuencia de DynamoDB para procesar el registro capturado.
- La función invoca el modelo Anthropic Claude v2 en Amazon Bedrock a través de Amazon Bedrock API de invocación de modelo llamar. Las diferencias de código, junto con un mensaje, se proporcionan como entrada al modelo para su análisis y se devuelve un resumen de los cambios de código como salida.
- El resultado del modelo se guarda nuevamente en la misma tabla de DynamoDB.
- El gerente es notificado vía Servicio de correo electrónico simple de Amazon (Amazon SES) del resumen de cambios de código y que se requiere su aprobación para la implementación.
- El administrador revisa el correo electrónico y proporciona su decisión (aprobar o rechazar) junto con los comentarios de revisión a través de la consola CodePipeline.
- La decisión de aprobación y los comentarios de revisión son capturados por Puente de eventos de Amazon, que activa una función Lambda para guardarlos nuevamente en DynamoDB.
- Si se aprueba, la canalización implementa el código de la aplicación utilizando sus herramientas preferidas. Si se rechaza, el flujo de trabajo finaliza y la implementación no continúa.
En las siguientes secciones, implementará la solución y verificará el flujo de trabajo de un extremo a otro.
Requisitos previos
Para seguir las instrucciones de esta solución, necesita los siguientes requisitos previos:
Implementar la solución
Para implementar la solución, complete los siguientes pasos:
- Elige Pila de lanzamiento para lanzar una pila de CloudFormation en
us-east-1
: - Dirección de correo electrónico, ingrese una dirección de correo electrónico a la que tenga acceso. El resumen de los cambios de código se enviará a esta dirección de correo electrónico.
- ID del modelo, deje como predeterminado anthropic.claude-v2, que es el modelo Anthropic Claude v2.
La implementación de la plantilla tardará unos 4 minutos.
- Cuando reciba un correo electrónico de Amazon SES para verificar su dirección de correo electrónico, elija el enlace proporcionado para autorizar su dirección de correo electrónico.
- Recibirá un correo electrónico titulado "Resumen de cambios" para la confirmación inicial del repositorio de muestra en CodeCommit.
- En la consola de AWS CloudFormation, vaya a la Salidas pestaña de la pila implementada.
- Copie el valor de RepoCloneURL. Lo necesita para acceder al repositorio de código de muestra.
Prueba la solución
Puede probar el flujo de trabajo de un extremo a otro asumiendo el rol de desarrollador e impulsando algunos cambios en el código. Se ha preparado un conjunto de códigos de muestra en CodeCommit. A acceder al repositorio de CodeCommit, ingrese los siguientes comandos en su IDE:
Encontrará la siguiente estructura de directorios para un Kit de desarrollo en la nube de AWS (AWS CDK) que crea una función Lambda para realizar una clasificación de burbujas en una cadena de números enteros. Se puede acceder a la función Lambda a través de una URL disponible públicamente.
Realiza tres cambios en los códigos de la aplicación.
- Para mejorar la función para que admita el algoritmo de clasificación rápida y de burbuja, tome un parámetro para permitir la selección del algoritmo a usar y devuelva tanto el algoritmo utilizado como la matriz ordenada en la salida, reemplace todo el contenido de
lambda/index.py
con el siguiente código:
- Para reducir la configuración del tiempo de espera de la función de 10 minutos a 5 segundos (porque no esperamos que la función se ejecute más de unos pocos segundos), actualice la línea 47 en
my_sample_project/my_sample_project_stack.py
como sigue:
- Para restringir la invocación de la función usando IAM para mayor seguridad, actualice la línea 56 en
my_sample_project/my_sample_project_stack.py
como sigue:
- Empuje los cambios de código ingresando los siguientes comandos:
Esto inicia el flujo de trabajo de implementación de CodePipeline desde los pasos 1 a 9, como se describe en la descripción general de la solución. Al invocar el modelo de Amazon Bedrock, proporcionamos el siguiente mensaje:
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/