La aplicación de 12 factores

En esta entrada se hablará sobre todos los puntos considerados actualmente como «mejores practicas» a la hora de desarrollar una aplicación web. Cumplir dichos puntos ayudará tanto al equipo de desarrollo como al equipo de administradores de sistemas a realizar sus respectivos trabajos. Como bonus adicional, tras cumplir con dichos puntos, obtendremos una aplicación que podrá ser escalada de manera horizontal.

El mundo del desarrollo de software es complejo y que una determinada pieza de software funcione correctamente requiere algo más que buen código. Requiere de la integración y colaboración de dos equipos: programadores y administradores de sistemas.

Los programadores quieren tener comodidad a la hora de desarrollar y muchas veces tienden a desarrollar sin tener en cuenta los requisitos que se van a tener que cumplir para desplegar lo que están produciendo. Por otro lado, los administradores de sistemas quieren ser capaces de realizar sus tareas de la manera más efectiva posible, lo cual, en ocasiones, puede entrar en conflicto con el resultado que los programadores han generado.

Sigue leyendo

Integración continua y despliegue continuo

En esta entrada se definirán varios conceptos básicos relacionados con la automatización de las tareas que ejecutamos antes de desplegar nuestro código, así como la automatización de los despliegues en sí. También se describirán las metodologías más comunes que permiten unir estos conceptos y usarlos como un conjunto.

Integración continua

Durante el proceso de desarrollo de nuestro proyecto, sobre todo cuando en el mismo participa un número elevado de personas, pueden existir una serie de tareas que queramos ejecutar para facilitar el trabajo en equipo y mantener el buen estado del proyecto. Estas tareas pueden ser de cualquier tipo, desde una simple comprobación del código en busca de errores de sintaxis o de formateo incorrecto, hasta la ejecución de pruebas unitarias, pasando por el análisis estático y/o dinámico del código en busca de posibles vulnerabilidades, etc…

Sigue leyendo

Git Flow como metodología de desarrollo

En esta entrada se describirá una metodología de trabajo que ayuda a organizar los cambios que se aplican sobre el código de un proyecto y facilita el trabajo en equipo. Se parte del supuesto de que se usa Git como sistema de control de versiones y que todo el trabajo se realiza sobre una única rama.

Cuando uno trabaja en un proyecto personal y es el único que hace cambios en el código, todo se hace en serie (un cambio, luego otro, luego otro, etc…). Esto significa que la revisión de los cambios, la estabilidad del repositorio y los conflictos entre los cambios que hagamos dependerá únicamente de nosotros mismos. Esto nos da una serie de ventajas.

Sigue leyendo