A menudo, cuando se publican las actualizaciones del proyecto, surgen situaciones en las que, por diversas razones, un error que no se ha identificado previamente en los servidores de prueba llega al servicio de producción. Y en este sentido, los clientes tienen una serie de inconvenientes, hasta la completa falta de desempeño del proyecto. Una cosa es si estamos hablando de una página de destino de una página y un comprador potencial no puede encontrar contactos de la empresa para comunicarse, y otra muy distinta, si estamos tratando con una tienda en línea que no está disponible, esto es una pérdida directa de dinero. Por no hablar del sector fintech, donde cada segundo de un servicio que no funciona resulta en pérdidas monetarias colosales.
¿Se puede evitar el miedo y el odio tanto del cliente como de los usuarios finales? ¿Además de la pérdida de una parte significativa del tiempo de los especialistas del número total de horas de desarrollo?
La Integración Continua (CI) y la Entrega Continua (CD) son una cultura, un conjunto de principios y prácticas que permiten a los desarrolladores implementar cambios de software de manera más frecuente y confiable.
En un momento, Henry Ford trasladó la creación de automóviles del ensamblaje manual a la producción en línea de ensamblaje, cambiando así la industria de su tiempo. El principio de funcionamiento de CI / CD (Continuous Integration & Continuous Deployment) es algo similar a un pipeline: la técnica realiza una función de integración, que incluye varios tipos de pruebas automáticas en cada etapa, seguidas de la entrega y la implementación del código en un producto terminado para el usuario final.
Recientemente hemos implementado CI / CD en la mayoría de nuestros proyectos, lo que hizo posible construir el proceso de lanzamiento de la actualización literalmente con un clic, reducir el riesgo de errores al introducir pruebas automáticas y análisis de calidad del código antes de cada lanzamiento, y también eliminar las peculiaridades de las diferencias en el entorno de host del desarrollador y servidores empaquetando la aplicación en los llamados "contenedores".
Para muchos clientes, cuyo formato de proyecto implica actualizaciones periódicas, ofrecemos trabajar con nosotros junto con un sistema CI / CD personalizado. Al dedicar un poco de tiempo al inicio a configurar el entorno para la integración continua, reduciremos los riesgos y podremos ofrecer al cliente las horas libres para tareas más complejas.
¿Qué etapas de lanzamiento puedes automatizar?
Ensayos y control de calidad
Por supuesto, esto debería discutirse primero. Los probadores no se pueden reemplazar por completo, pero la mayor parte de las pruebas repetitivas se pueden automatizar mediante pruebas unitarias y de regresión. Ofrecemos automatización cuadrada. El CI / CD simula el tiempo de ejecución del servidor de destino y ejecuta pruebas automáticamente para validar la funcionalidad del software y eliminar por completo la posibilidad de liberar el producto cuando ocurre un error. Y el cliente siempre estará seguro de que la actualización no dañará el rendimiento del proyecto.
Código de construcción y embalaje
A partir de ahora, los desarrolladores no necesitan conectarse manualmente a los servidores de producción del proyecto y reconstruir el proyecto en el servidor de producción con manos temblorosas. Los usuarios ya no verán la página "en progreso" durante las actualizaciones del sitio debido a la técnica de "intercambio en caliente" de contenedores con aplicaciones implementadas en su interior.
Informes abiertos
Cuando se agrega un cliente al repositorio, podrá realizar un seguimiento independiente de todos los procesos de prueba, construcción y entrega de la aplicación a producción.
¿Cómo asegurar una liberación?
¿Dónde pueden surgir problemas?
¿Cómo protegerse de errores lógicos en la funcionalidad y errores?
- Después de desarrollar una nueva función, el desarrollador crea una solicitud para fusionar la rama con la nueva funcionalidad en la rama de la aplicación principal.
- Antes de la fusión, el líder del equipo del proyecto verifica la calidad de su código y, si surgen problemas, envía el código para su revisión.
- Después de aceptar la solicitud de fusión, la aplicación pasa por varias etapas de prueba automática, análisis de calidad del código y se implementa en nuestro servidor de etapa.
- Un especialista en control de calidad dedicado comprueba además toda la funcionalidad de la aplicación en los servidores de escenario antes de mostrársela al cliente.
- Y después de que el cliente haya aprobado todas las ediciones, enviamos la solicitud para su lanzamiento.
¿Qué pasa si un error crítico aún pasa desapercibido y termina en producción?
Total
- Reduciendo las acciones de implementación a un clic.
- Reducir el riesgo de posibles errores.
- Automatización de pruebas unitarias y de regresión.
- Meticuloso control de calidad del código.
- Containerización de aplicaciones y eliminación de diferencias entre el entorno de desarrollo y el tiempo de ejecución.
- La capacidad de revertir instantáneamente la versión de la aplicación en caso de situaciones críticas.
- Reducción general del tiempo de desarrollo en un 10-20%.
Comentarios