[ad_1]
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 amplio del lenguaje de programación utilizado o no hayan estado involucrados en el desarrollo de software durante un período prolongado. Esto crea una brecha de conocimiento que puede dificultarles evaluar con precisión el impacto y la solidez de los cambios de código propuestos.
- Restricciones de tiempo – La revisión y aprobación del código puede ser un proceso que requiere mucho tiempo, especialmente para proyectos más grandes o complejos. Los gerentes deben lograr un equilibrio entre la minuciosidad de la revisión y la presión de cumplir con los cronogramas del proyecto.
- Alcance de las solicitudes de cambio – Lidiar con un gran volumen de solicitudes de cambio es un desafío común para los gerentes, especialmente cuando supervisan múltiples equipos y proyectos. Al igual que las limitaciones de tiempo, los gerentes deben poder manejar estas solicitudes de manera eficiente para no obstaculizar 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 auge de la inteligencia artificial (IA) generativa, 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 maneras que antes no eran posibles. En esta publicación, exploramos una solución que proporciona un flujo de trabajo de implementación integrado de extremo a extremo que incluye análisis de cambios automatizados y capacidades de flujo de trabajo de agregación y aprobación. Usamos Amazon Bedrock, un servicio totalmente administrado que hace que Foundation Models (FM) de las principales empresas emergentes de IA y Amazon estén disponibles a través de una API, lo que le permite elegir entre una amplia gama de FM para encontrar el modelo que sea más relevante para su caso de uso. adecuado. 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.
Descripción general 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 (por ejemplo, AWS CodeCommit), lo que activa automáticamente el inicio de una implementación de AWS CodePipeline.
- El código de la aplicación pasa por un proceso de creación de código, realiza un escaneo de vulnerabilidades y realiza pruebas unitarias utilizando sus herramientas favoritas.
- AWS CodeBuild recupera el repositorio y ejecuta un comando show de Git 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 almacena el resultado en una tabla de Amazon DynamoDB 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
- Amazon DynamoDB Streams captura los cambios de datos realizados en la tabla.
- La secuencia de DynamoDB activa una función de AWS Lambda para procesar el conjunto de datos ingeridos.
- La función invoca el modelo Anthropic Claude v2 en Amazon Bedrock a través de la llamada API de Amazon Bedrock InvokeModel. Las diferencias de código junto con un mensaje se proporcionan como entrada para analizar el modelo y se devuelve un resumen de los cambios de código como salida.
- El resultado del modelo se vuelve a guardar en la misma tabla de DynamoDB.
- El administrador recibe una notificación a través de Amazon Simple Email Service (Amazon SES) sobre el resumen de los cambios de código y que se requiere su aprobación para la implementación.
- El administrador revisa el correo electrónico y anuncia su decisión (aprobar o rechazar) junto con cualquier comentario de revisión a través de la consola CodePipeline.
- Amazon EventBridge captura la decisión de aprobación y los comentarios de revisión, lo 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 revisará el flujo de trabajo de un extremo a otro.
requisitos
Para seguir las instrucciones de esta solución, debe tener los siguientes requisitos previos:
Proporcionar la solución
Para implementar la solución, complete los siguientes pasos:
- Elegir Iniciar pila para iniciar una pila de CloudFormation
us-east-1
: - Para Dirección de correo electrónicoIngrese 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.
- Para ID del modelodeje el anthropic.claude-v2 predeterminado, el modelo Anthropic Claude v2.
La plantilla tarda aproximadamente 4 minutos en implementarse.
- Si recibe un correo electrónico de Amazon SES confirmando su dirección de correo electrónico, seleccione el enlace proporcionado para autorizar su dirección de correo electrónico.
- Recibirá un correo electrónico titulado «Resumen de cambios» para la primera confirmación del repositorio de muestra en CodeCommit.
- En la consola de AWS CloudFormation, navegue hasta Salidas Pestaña de pila implementada.
- Copie el valor de RepoCloneURL. Lo necesitará 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 una serie de códigos de muestra en CodeCommit. Para acceder al repositorio de CodeCommit, ingrese los siguientes comandos en su IDE:
Encontrará la siguiente estructura de directorios para una aplicación AWS Cloud Development Kit (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 de acceso público.
Realiza tres cambios en los códigos de la aplicación.
- Para ampliar la función para que admita los algoritmos de clasificación rápida y de burbuja, incluya un parámetro que permita seleccionar el algoritmo a utilizar, devuelva tanto el algoritmo utilizado como la matriz ordenada en la salida y 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 (ya que no esperamos que la función se ejecute durante 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 llamada a 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 iniciará el flujo de trabajo de implementación de CodePipeline con los pasos 1 a 9 como se describe en el resumen de la solución. Al invocar el modelo de Amazon Bedrock, proporcionamos el siguiente mensaje:
[ad_2]