Exploración práctica del desarrollo de proyectos CICD | Equipo técnico de logística de Jingdong

Este artículo presenta la comprensión del autor sobre CICD y varios escenarios para implementar CICD en proyectos, y resume los nodos clave de cada práctica de escenario, los beneficios que aporta y la aplicación práctica de proyectos específicos. Los lectores pueden aprender de los escenarios descritos en este artículo, o aprender de los métodos prácticos mencionados en el artículo, para llevar a cabo CICD en el proyecto y brindar soporte específico para la implementación de integración continua del proyecto.

 

1. Introducción

Basado en las plataformas Bamboo, EOS y SonarQube de la empresa, en el proyecto se lleva a cabo la integración e implementación continua de CICD. Presentar el escenario del desarrollo de CICD, la aplicación práctica en el proyecto y la planificación de seguimiento.

2 Conceptos básicos de CICD

CICD es la abreviatura de Integración Continua y Despliegue Continuo. Se refiere a la ejecución automática de una serie de scripts en el proceso de desarrollo para reducir la probabilidad de introducir errores en el desarrollo y minimizar la intervención manual en el proceso de código nuevo desde el desarrollo hasta la implementación.

Núcleo CICD: integración continua, implementación continua, entrega continua.

CI: Integración Continua, que significa integración continua.

Después de enviar el código al almacén remoto, se llevan a cabo una serie de pruebas, compilación y otros procesos antes de que este envío se fusione en la rama principal.
Supongamos que hay un código de aplicación almacenado en el almacén y que el desarrollo se enviará muchas veces al día. Para cada envío, se pueden crear una serie de scripts para pruebas automáticas para reducir la probabilidad de introducir errores en la aplicación. Se puede aplicar en varias ramas, incluida la rama de desarrollo.
En el proceso de integración continua, damos gran importancia a los resultados de la verificación de prueba automatizada para garantizar la calidad de todos los envíos después de fusionar la línea principal y advertir sobre posibles problemas.

CD: Entrega Continua, que significa entrega continua.

Significa que el código verificado se puede enviar automáticamente al almacén una vez que se completa el CI.
El objetivo de la entrega continua es tener una base de código lista para implementarse en producción.

CD: Despliegue Continuo, que significa despliegue continuo.

Se refiere a un paso adicional sobre la base de la integración continua y se refiere a implementar el código de la rama predeterminada del almacén de repositorio push en un entorno específico.
Ofrezca productos de alta calidad rápidamente con bucles automatizados de creación, prueba e implementación. Hasta cierto punto, representa el grado de ingeniería de un equipo de desarrollo. Cualquier modificación que pase todos los flujos de trabajo existentes se reunirá directamente con los clientes. Sólo cuando una modificación no logra incorporarse al flujo de trabajo puede evitar que se implemente en la línea de productos.

3 escenarios de desarrollo de la CICD

3.1 Compilar e implementar

Realice el proceso de compilación-implementación automática después del envío del código, reemplazando la operación manual de compilación-implementación en j-one

contenido:

  • Compilación automática, implementación automática, notificación de resultados de implementación de compilación después del envío del código;

ingreso:

  • Elimine el tiempo de espera en la operación de implementación manual después de que se complete la compilación del código en Jone;

3.2 Pruebas unitarias

Realizar pruebas unitarias basadas en Junit

contenido:

  • Para el código de fondo, escriba scripts de prueba unitaria basados ​​​​en Junit, realice pruebas unitarias y obtenga informes de pruebas unitarias y informes de cobertura del código jacoco;

ingreso:

  • Mejorar la cobertura de las pruebas y mejorar la calidad del código;
  • Reduzca los errores y localícelos rápidamente;
  • Refactorización con soporte limitado;

3.3 Escaneo de código

Implementar la detección de calidad del código basada en SonarQube

Implementar la detección de calidad del código basada en EOS

contenido:

  • Realice la detección de escaneo de código basada en SonarQube o la plataforma empresarial EOS;
  • El envío de código activa automáticamente el escaneo de código y finalmente genera informes y notificaciones de resultados;
  • Los resultados del escaneo se incluyen en la calidad del proyecto y los problemas se registran y rastrean hasta que se resuelven en ciclo cerrado.

ingreso:

  • Medios ricos para la detección de la calidad del código;
  • Pruebas automatizadas multinivel para mejorar la calidad del código;
  • Activa automáticamente la ejecución de pruebas, reduce el tiempo de espera de las pruebas, mejora la eficiencia y realiza tareas desatendidas;

3.4 Pruebas automatizadas

Realice pruebas automatizadas basadas en Python, EasyOne, DeepTest, Jmeter.

contenido:

  • Implementar detección de calidad de código basada en SonarQube;
  • Realizar la prueba automatizada de cada enlace del enlace completo;
  • El envío de código activa automáticamente la ejecución de pruebas, la generación de informes y la notificación de informes;

ingreso:

  • Pruebas automatizadas multinivel para mejorar la calidad del código;
  • Activa automáticamente la ejecución de pruebas, reduce el tiempo de espera de las pruebas, mejora la eficiencia y realiza tareas desatendidas;

3.5 Exploración de prueba de enlace completo

Combine los escenarios individuales anteriores para formar un escenario de prueba de enlace completo;
el envío de código activa la operación automática del enlace, así como la generación de informes y el envío de correo electrónico.

4 Práctica de proyectos

Combinando con la plataforma interna de la empresa para realizar CICD en proyectos reales.

4.1 Plataforma interna de la empresa

Bamboo
Bamboo es un conjunto de soluciones de canalización de CI/CD desarrolladas por JD.com, que cubren el ciclo de vida completo del desarrollo de software.

EOS
EOS es un sistema de escaneo de código desarrollado independientemente por Technology and Data Center. Al escanear y analizar códigos, localiza segmentos de código irregulares en el proyecto y ofrece sugerencias de modificación. Puede supervisar y restringir eficazmente a los desarrolladores para unificar sus hábitos de codificación y reducir los problemas. Causado por una codificación irregular. Los errores de bajo nivel causados ​​por ella pueden mejorar la legibilidad del código y mejorar la eficiencia del trabajo en equipo.

4.2 Aplicación práctica del proyecto

1) compilar-implementar

Cree una canalización en Bamboo para la rama de implementación de compilación de alta frecuencia en Jone para lograr:
envío de código - llamada a la compilación de Jone - llamada a la implementación de Jone - notificación de resultados

Varias formas de activar la compilación y la construcción:

  • Ejecución manual;
  • El envío de código desencadena la ejecución;
  • La tarea de sincronización desencadena la ejecución;
  • Conecte en cascada otras canalizaciones para activar la ejecución;

Situación de aplicación:

  • Todas las pruebas y coberturas del grupo han desplegado tuberías relevantes;
  • Apoye a los probadores para implementar canales de compilación automática en el proyecto bajo prueba, con un total de 364 llamadas.

2) Prueba unitaria

Realice pruebas unitarias para que el proyecto back-end logre:
envío de código-compilación de maven-obtener informe de prueba unitaria-notificación de resultados

Efecto de la aplicación:

  • Simplifica enormemente el proceso de obtención del informe de prueba unitaria, mediante un proceso simple se puede realizar la prueba unitaria del proyecto, ejecutar la prueba unitaria y obtener los resultados de la prueba unitaria;
  • Admite más de 8 proyectos para implementar una canalización de prueba única, tasa de mejora efectiva de prueba única del sistema de autoridad JDL-CRM: 20%

3) Pruebas automatizadas

Una vez implementado el proyecto, realice pruebas de regresión automatizadas para las pruebas de regresión antes de que el proyecto se ponga en línea, para lograr:
pruebas automatizadas - informe de prueba - notificación de resultados de prueba

Actualmente se basa en el lenguaje Python y depende del módulo de terceros Py, realiza secuencias de comandos, se integra en la plataforma Bamboo, ejecuta la canalización y obtiene informes.

Efecto de la aplicación:

  • Responsable de la prueba de regresión automática de la UAT antes de entrar en línea en el proyecto de ventas y servicios;

4) escaneo de código

Basado en las plataformas SonarQube y EOS creadas por la empresa, el escaneo de código se lleva a cabo para realizar:
envío de código-escaneo de código-escaneo informe-línea de registro manual de problemas en la nube

5 Planificación de seguimiento

Los datos del proceso CICD se combinan con datos de rendimiento de calidad.
Realice pruebas automatizadas para más proyectos basados ​​en DeepTest e intégrelo en la plataforma BamBoo.
Aplicación del escaneo de código en proyectos.

Autor: JD Logística Chen Wei

Fuente: Comunidad de desarrolladores de JD Cloud Reimpreso de Yuanqishuo Tech, indique la fuente

El primer IDE del país que respalda el desarrollo de múltiples entornos: CEC-IDE Microsoft ha integrado Python en Excel y el tío Gui participó en la formulación del marco. Los programadores chinos se negaron a escribir programas de juegos de azar y les sacaron 14 dientes, con un 88% de daño corporal. . Podman Desktop, una fuente de imitación de canción de código abierto, supera las 500.000 descargas. Se salta automáticamente los anuncios de la pantalla inicial. La aplicación deja de actualizarse indefinidamente. "Li Tiao Tiao" Xiaomi presentó el nombre de dominio del sitio web mios.cn
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4090830/blog/10102774
Recomendado
Clasificación