Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A lo largo de la historia la automatización ha sido un gran aliciente para el ser humano. Desde el
principio de los tiempos el hombre ha creado una gran cantidad de artilugios para facilitar todo
tipo de trabajos; además, ha ideado muchos métodos para incrementar la producción reduciendo
costes y esfuerzo.
Automatización: CI/CD
La división del trabajo de un proceso de fabricación en fases independientes, desarrollada con más
ahínco durante la segunda mitad del siglo XVIII, fue el primer paso hacia la automatización.
La mecanización fue la siguiente etapa ya que, aprovechando la ventaja que aportaba la división
del trabajo, permitió fabricar máquinas que reproducían las tareas de un trabajador. La
mecanización apoyada en la motorización y la tecnología energética dio paso al sistema industrial
de producción.
Los robots industriales son extremadamente hábiles para trasladar y manipular piezas ligeras y
pesadas. Se trata de varias máquinas separadas que están integradas en cadena y que a simple
vista parecen una. En 1920 la industria automovilística convirtió estos conceptos en un sistema de
producción integrado con el objetivo de reducir los costes en la línea de montaje. Éste es el
concepto que la mayoría de la gente asocia con la automatización.
Muchas industrias están muy automatizadas, casi la mayoría usa tecnología de automatización
para realizar alguna etapa de sus actividades. Ahora bien, por todos es sabido que la industria
informática no es diferente al resto. El auge de las nuevas tecnologías ha provocado que sea una
industria muy importante y en cambio constante. El software es un elemento crucial que ha
permitido un gran ahorro en costes y un gran incremento en productividad al realizar tareas
sencillas y repetitivas como el envío de un e-mail o incluso tareas mucho más complejas como la
facturación de una empresa.
Al igual que todas las fábricas han implementado tecnología para ahorrar costes, ser más
productivos y obtener productos de calidad, el desarrollo de software está inmerso en un entorno
tan exigente que tiene que adaptarse, está obligado a cubrir las exigencias del mercado, a entregar
aplicaciones de calidad y a la mayor brevedad posible si no quiere quedarse obsoleto.
Por todo ello, el objetivo de este post es recalcar el valor que tiene la automatización en el
desarrollo de aplicaciones.
Cada vez menos debido a todas las herramientas de las que disponemos, pero hasta hace poco el
proceso de desarrollo era arcaico, lento y poco eficiente. De hecho, hace no demasiados años, e
incluso hoy en día, muchas empresas no usan ni siquiera un control de versiones. Por tanto, el
1.3 Importancia de automatizar etapas del desarrollo
flujo que seguía el desarrollo de software consistía en: toma de requisitos, análisis, programación
de toda la funcionalidad, pruebas manuales y despliegue manual.
Uno de los principales problemas venía al hacer modificaciones en el código para desarrollar una
nueva funcionalidad de la aplicación: al hacer pruebas dejaban de funcionar cosas que antes lo
hacían, al no disponer de un control de versiones encontrar el error era muy lento. Por otro lado,
tras haber realizado pruebas, se realizaba un despliegue manual pero muchas veces nos
dejábamos de copiar cosas o ejecutar comandos, es decir, era otro punto susceptible de errores
humanos. Ante esta problemática surgen los conceptos de Integración Continua (CI por sus siglas
en inglés Continuous Integration), Entrega Continua (CD – Continuous Delivery) y Despliegue
Continuo (CD – Continuous Deployment). Nos proporcionan un modelo informático para distribuir
aplicaciones de forma más rápida y segura.
En este proceso se prepara un artefacto fácilmente, para ello se compila y se ejecutan test
automáticamente. Centra su empeño en chequear la aplicación para que no se “rompa” al subir
nuevos cambios a la rama principal del repositorio en el control de versiones.
El despliegue continuo es la última fase de este modelo de distribución de aplicación. Esta etapa se
centra en desplegar automáticamente el artefacto o aplicación a producción, sin intervención
humana. Es decir, una vez commiteado el código al control de versiones, se ejecutará la
integración continua, generará el artefacto y lo desplegará automáticamente en producción. Sólo
si ocurre un fallo en algún paso del flujo no se efectuará el despliegue.
01-automatizacion-en-el-desarrollo-de-software-blog-conasa
Conclusiones
1.3 Importancia de automatizar etapas del desarrollo
Hoy en día estamos envueltos en un mundo muy cambiante, en una sociedad que avanza a pasos
agigantados y a una velocidad vertiginosa.
El auge de las nuevas tecnologías ha permitido a las empresas crecer muy rápido, lo cual a priori
puede ser algo muy positivo. No obstante, de la misma manera que han crecido, podrían quedarse
obsoletas si no cubren las necesidades de sus clientes. Cabe destacar que los requerimientos de
los clientes cambian constantemente, por lo que hay que ser muy flexibles y ágiles para adaptarse
a dichas necesidades. Es por ello por lo que la automatización tiene tanta importancia.
El mundo del desarrollo de software no es la excepción. De hecho, es posible que sea al revés, la
automatización de procesos de compilación, empaquetado y despliegue, englobados en los
conceptos de Integración, Despliegue y Entrega Continua, permiten desarrollar software mucho
más rápido y con mayor calidad.
Por todo ello, os animamos a empezar a implementar estos procesos en vuestros desarrollos. La
optimización de tiempo y la calidad de vuestras aplicaciones se verá incrementada, con lo que
obtendréis clientes mucho más contentos y un negocio más productivo con los mismos recursos.