ACTIVIDAD

QUE SON LOS AUTOMATIZADORES Y QUE PAPEL CUMPLEN EN EL PARADIGMA DEVOPS Y CI/CD.

Los automatizadores en el mundo del desarrollo web en general ayudan a agilizar el proceso de creacion de una aplicacion web con unos pocos comandos realizando de forma automática todas esas tareas tediosas y repetitivas, alcanzando nuestro objetivo de forma más rápida y con una mejor experiencia de desarrollador.

Algunas de esas tareas podrían ser las siguientes: Creación del proyecto y su gestión, Actualización y mantenimiento de dependencias, Servidor web local de desarrollo, Minificación de código, Optimización de imágenes, Preprocesar o transpilar código fuente, Despliegue o subida del código final al servidor.

Existen multitud de automatizadores hoy en día, algunos con una filosofía más de automatización de tareas (como Gulp o Grunt) y otros con una filosofía más guiada (pero personalizable) como Webpack o Rollup.

Probablemente, estos sean los más relevantes:

- Browserify: Automatizador centrado en traducir require() (Node) al navegador.
- Gulp: Automatizador Javascript de tareas basado en pipes y flujos.
- Webpack: Bundler enfocado en controlar todo y empaquetar aplicaciones JS.
- Rollup: Bundler empaquetador de aplicaciones con buen soporte ESM.
- Grunt: Automatizador enfocado en gestión de tareas.
- Parcel: Bundler de aplicaciones web enfocado en sencillez de uso.
- Snowpack: Automatizador enfocado en técnicas modernas con buen soporte ESM.
- Esbuild: Bundler Javascript ultra rápido, centrado en el rendimiento.
- Vite: Automatizador de aplicaciones web basado en Rollup y centrado en ESM.

El concepto de automatización en DevOps está destinado a facilitar la agilidad y la colaboración efectiva entre todos los miembros de la organización. Es importante automatizar las tareas repetitivas que, de lo contrario, requerirían esfuerzos manuales, pero también debemos conocer las consecuencias de acelerar los resultados de esas tareas ya que si un proceso es defectuoso, el resultado a través de la automatización es, en consecuencia, defectuoso, y emergería más rápido que el enfoque manual. El propósito principal de DevOps es lanzar versiones de software de mejor calidad y con mayor frecuencia. La automatización en DevOps debe ser adoptada para lograr este objetivo, sin introducir un efecto neto negativo en la calidad o frecuencia del software lanzado a los usuarios finales.

La CI/CD es un método para distribuir aplicaciones a los clientes con frecuencia mediante el uso de la automatización en las etapas del desarrollo de aplicaciones. Los principales conceptos que se atribuyen a la CI/CD son la integración continua, la distribución continua y la implementación continua. La CI/CD es una solución para los problemas que puede generar la integración del código nuevo a los equipos de desarrollo y de operaciones (también conocida como "Integration Hell"). En concreto, la CI/CD incorpora la automatización continua y el control permanente en todo el ciclo de vida de las aplicaciones, desde las etapas de integración y prueba hasta las de distribución e implementación. Este conjunto de prácticas se conoce como "canales de CI/CD", y cuenta con el soporte de DevOps.

QUE ES EL DESARROLLO FULL-STACK Y CUALES SON LAS HABILIDADES Y HERRAMIENTAS MÍNIMAS COMO DESARROLLADOR.

Un programador Full Stack es un perfil híbrido entre el desarrollador Front End y Back End. Es un experto con conocimientos en diseño web, lenguajes de programación, base de datos, servidores, API’s y Sistemas de Control de Versiones.

Un desarrollador Full-Stack no necesariamente domina todas las tecnologías. Sin embargo, se espera que el profesional trabaje tanto del lado cliente como el del servidor y entienda lo que sucede al desarrollar una aplicación. Él o ella debe tener un interés genuino en todas las tecnologías de software.

ENTRE LAS HABILIDADES Y HERRAMIENTAS MINIMAS COMO DESARROLLADOR SON:

- Desarrollo Front End: Escribe el código para el diseño del sitio web. Los programadores Full Stack usan tecnologías populares como HTML, CSS, JavaScript para lograr esta tarea.

- Desarrollo Back End : Escribe el código que permite al usuario ingresar datos y guardarlo en las bases de datos. Para manipular los datos recopilados de los usuarios, los desarrolladores Full Stack crean los algoritmos y lógica empresarial utilizando lenguajes de programación populares como: Java, Python, Ruby, PHP entre otros.

- Implementación de un ambiente de trabajo: Puede crear e implementar ambientes de producción, en las que se incluiría tener una o más de los siguientes elementos: Servidores, base de datos, almacenamiento de recursos y la comunicación entre todos estos elementos.