Published on

February 19, 2017

Entrega continua y desarrollo basado en tronco en SQL Server

La entrega continua es un patrón de desarrollo de software que ha ganado popularidad en los últimos años. Implica lanzar código de una manera más segura, más fácil, con mayor calidad y más frecuencia. Este patrón aporta complejidad a todas las capas de la aplicación, incluida la base de datos. En este artículo, discutiremos los conceptos de entrega continua y desarrollo basado en tronco en el contexto de SQL Server.

Entrega continua

La entrega continua se puede resumir como la capacidad de realizar cambios en producción rápidamente, manteniendo el código lanzable con cada confirmación y fusionando frecuentemente su código con el código de todos. Los beneficios de la entrega continua son numerosos, incluida una reducción drástica en el tiempo que lleva desde el diseño de una función hasta su entrega al consumidor. Esta reducción en el tiempo de ciclo y el aumento de la frecuencia requieren un alto nivel de automatización y repetibilidad para la compilación, prueba e implementación.

Desarrollo basado en tronco

El desarrollo basado en tronco es la estrategia de ramificación recomendada para la entrega continua. Implica confirmar el código solo en el tronco, sin ramificar su código. Cada confirmación mantiene el código lanzable y las confirmaciones son frecuentes. Cuanto más tiempo se tarde en confirmar, más posibilidades hay de tener problemas de integración de código. Cuando se crean ramas, se necesitan más fusiones para lanzar con frecuencia. Con el tiempo, la base de código en las ramas comenzará a diferir del tronco, lo que hace que la fusión de defectos del tronco a las ramas sea una tarea manual.

Patrones de desarrollo para el desarrollo basado en tronco

Cuando se implementa el desarrollo basado en tronco en SQL Server, hay tres áreas principales de desarrollo a considerar: estructura de datos (tablas), objetos de programabilidad (procedimientos almacenados, funciones, vistas) y scripts de migración. Veamos algunos patrones que se pueden utilizar en cada área para mantener la base de datos lanzable.

Patrón de ramificación por abstracción

El patrón de ramificación por abstracción implica crear una capa de abstracción que representa un objeto existente de manera que todas las referencias o objetos dependientes existentes sigan funcionando. Cualquier código nuevo se realizará utilizando el nuevo objeto (s) y todo el código antiguo existente se migrará gradualmente para utilizar el nuevo objeto, manteniendo el software lanzable. Este patrón es más adecuado para el rediseño de tablas, refactorización o particionamiento.

Patrón de expansión y contracción

El patrón de expansión y contracción se utiliza para implementar cambios incompatibles con versiones anteriores en una interfaz de manera segura. Implica dividir el cambio en tres fases distintas: expansión, migración y contracción. Este patrón se puede aplicar a objetos de programabilidad o diseño de tablas. Al expandir gradualmente el código, refactorizar el código antiguo y luego contraerlo, el código sigue siendo lanzable con cada confirmación.

Patrón de interruptores de funciones

El patrón de interruptores de funciones permite a los equipos modificar el comportamiento del sistema sin cambiar el código. Implica implementar interruptores que se pueden activar o desactivar en tiempo de ejecución. Los interruptores de funciones se pueden utilizar para interruptores de lanzamiento, interruptores de experimentos, interruptores de operaciones y interruptores de permisos. Son más adecuados para scripts de migración y objetos de programabilidad. Es importante mantener bajo control el número de interruptores y retirarlos cuando ya no sean necesarios.

Conclusión

La entrega continua y el desarrollo basado en tronco son conceptos poderosos que pueden mejorar en gran medida el proceso de desarrollo de software, incluida la base de datos. Al implementar patrones de desarrollo como la ramificación por abstracción, la expansión y contracción y los interruptores de funciones, puede mantener su base de datos de SQL Server lanzable con cada confirmación. Recuerde que si bien las herramientas son importantes, la cultura de su equipo es el factor determinante en la implementación exitosa de la entrega continua.

Referencias:

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.