Automatizadores

¿Que son los Automatizadores?

La automatización consiste en usar la tecnología para realizar tareas casi sin necesidad de las personas. Se puede implementar en cualquier sector en el que se lleven a cabo tareas repetitivas. Sin embargo, es más común en aquellos relacionados con la fabricación, la robótica y los automóviles, así como en el mundo de la tecnología, como el software de decisiones empresariales y los sistemas de TI.
Actualmente, en el ecosistema Javascript (o en el mundo del desarrollo web en general), es muy común utilizar estos automatizadores para, entre otras cosas, agilizar el proceso de creación de una aplicación 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.

Función de los automatizadores en DevOps

La automatización de DevOps consiste en incorporar las tecnologías que ejecutan tareas con poca intervención humana en los procesos que facilitan los ciclos de retroalimentación entre los equipos de operaciones y los de desarrollo, para implementar las actualizaciones constantes de las aplicaciones en la producción con mayor rapidez.

¿Cuales son los procesos de DevOps que se pueden automatizar?

Implementación:Los entornos de DevOps abarcan varias tecnologías. Para poder programar e implementar los cambios en estos entornos complejos, se requiere mucho tiempo y conocimiento especializado sobre cada elemento.
Desarrollo:Los desarrolladores de software necesitan recursos de TI para poder crear las aplicaciones y los servicios nuevos, y probarlos constantemente e implementarlos.

Función de los automatizadores en CI/CD

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").

¿Cual es la diferencia entre CI y CD?

La "CI" en CI/CD siempre se refiere a la integración continua, que es un proceso de automatización para los desarrolladores. Si la CI tiene éxito, los cambios del código nuevo en una aplicación se diseñan, se prueban y se combinan periódicamente en un repositorio compartido. Esto soluciona el problema de que se desarrollen demasiadas divisiones de una aplicación al mismo tiempo, porque podrían entrar en conflicto entre sí.
La "CD" en CI/CD se refiere a la distribución o la implementación continuas, los cuales son conceptos relacionados que suelen usarse indistintamente. Ambos conceptos se refieren a la automatización de las etapas posteriores del canal, pero a veces se usan por separado para explicar la cantidad de automatización que se está incorporando.

Tipos

Integración continua(CI): El objetivo del desarrollo de las aplicaciones modernas es contar con múltiples desarrolladores que trabajen de forma simultánea en distintas funciones de la misma aplicación.
Distribución continua(CD): Después de la automatización de los diseños y las pruebas de unidad e integración de la CI, la distribución continua automatiza la liberación de ese código validado hacia un repositorio. Por eso, para que el proceso de distribución continua sea eficaz, es importante que la CI ya esté incorporada a su canal de desarrollo. El objetivo de la distribución continua es tener una base de código que pueda implementarse en un entorno de producción en cualquier momento.
Implementación continua: La última etapa de la canalización consolidada de integración y distribución continuas es la implementación continua, que automatiza el lanzamiento de una aplicación a la producción, ya que es una extensión de la distribución continua, la cual automatiza el lanzamiento de una compilación lista para la producción a un repositorio del código. Debido a que no hay una entrada manual en la etapa del canal anterior a la producción, la implementación continua depende, en gran medida, del correcto diseño de la automatización de pruebas.

FullStack

¿Que son los desarrolladores FullStack?

Es el encargado de manejar cada uno de los aspectos relacionados con la creación y el mantenimiento de una aplicación web.
El desarrollador Full Stack es capaz de establecer estrategias para cada parte del proceso de desarrollo web. Esto lo convierte en una figura imprescindible en las empresas con una fuerte base tecnológica.

Habilidades básicas

Como mínimo debe tener conocimiento en desarrollo de Front-End y Back-End. Además de manejar diferentes sistemas operativos y lenguajes de programación.
En el desarrollo de páginas web, por ejemplo, el front-end es la información estática presentada al cliente. Por otro lado, si el cliente desea buscar algo en específico dentro de la página, se necesitará una base de datos como SQL Server - el back-end.
Un fullstack debe dominar como mínimo estas tecnologías:

-Javascript
-Almacenamiento de web y bases de datos
-Arquitectura de la aplicación web
-GIT, GitHub & Source Tree
-HTML/CSS
-HTTP & REST
-Full Stack Web Bootcamp

Herramientas mínimas

Las herramientas generales son:

-Lenguaje de programaciónb: JavaScript y Typescript
-Control de versiones:GitHub
-Issue Tracking & Planning:Jira
-Estilo:SASS/Styled Component
-Frameworks orientados a componentes:React
-Servidores Web:Express & Nodejs
-Bases de datos no relacionales:MongoDB