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