ICM / devops / Buenas prácticas DevOps o como evitar errores al subir a producción

Buenas prácticas DevOps o como evitar errores al subir a producción

24 mayo 2022 | Jesús Martínez

A lo largo de nuestros más de 25 años de experiencia en el mundo de los sistemas informáticos, consultoría IT y desarrollo de proyectos nos hemos encontrado con situaciones muy “interesantes” en el área de llevar a producción proyectos, actualizar y mantener aplicaciones. Al final ha sido siempre el punto más crítico en lo que se refiere a grandes proyectos, como llevar a producción con una buena calidad y en un tiempo pequeño nuevas releases de aplicaciones, normalmente desarrolladas, en Java, .Net, C++ con sistemas gestores de bases de datos basados en SQL Server, Oracle, Postgres o MySQL por nombrar algunos.

Los sistemas modulares, factor clave en las buenas prácticas DevOps

Hemos pasado de grandes sistemas monolíticos con una alta complejidad y un impacto muy grande a la hora de actualizarse a sistemas mucho más modulares y cada vez más basados en microservicios y api-first (desarrollo inicial de uno o un conjuntos de APIs que se consumen por otros sistemas). Estos sistemas más modulares facilitan el deploy de una parte o subsistema y permite un rollback mucho más sencillo (los deploys en Kubernetes son un buen ejemplo de buenas prácticas en arquitecturas basadas en containers).

Control de versiones

En estos procesos de actualización, si tienen un motor de base de datos SQL con un esquema de datos tradicional, conlleva en muchas ocasiones actualizaciones del esquema. La complejidad de estos updates y mucho más de los rollbacks, se pueden mitigar con software de control de versiones, por ejemplo, Liquibase | Open Source Version Control for Your Database que permite tener histórico de actualizaciones del modelo de datos y hacer rollback en el caso de tener que volver atrás una actualización.

Para todas estas casuísticas de llevar a producción una pieza de software con garantías, la metodología o buenas prácticas DevOps ayuda a conseguirlo con éxito. Implicará un cambio de organización en los departamentos técnicos, incluso en otras áreas de la empresa, pero conseguiremos tener un ciclo de desarrollo iterativo basado en la toma de requisitos, análisis, diseño y puesta en producción muy ágil y en el cual se pueden añadir medidas de calidad de software.