Skip to content

Latest commit

 

History

History
221 lines (149 loc) · 12.3 KB

File metadata and controls

221 lines (149 loc) · 12.3 KB

shieldsIO shieldsIO shieldsIO

WideImg

Máster en Programación FullStack con JavaScript y Node.js

JS, Node.js, Frontend, Backend, Firebase, Express, Patrones, HTML5_APIs, Asincronía, Websockets, Testing

Clase 94

DevOps

Devops logo

DevOps (acrónimo inglés de development -desarrollo- y operations -operaciones-) es una práctica de ingeniería de software que tiene como objetivo unificar el desarrollo de software (Dev) y la operación del software (Ops). La principal característica del movimiento DevOps es defender enérgicamente la automatización y el monitoreo en todos los pasos de la construcción del software, desde la integración, las pruebas, la liberación hasta la implementación y la administración de la infraestructura. DevOps apunta a ciclos de desarrollo más cortos, mayor frecuencia de implementación, lanzamientos más confiables, en estrecha alineación con los objetivos comerciales. Wikipedia

Recursos

DevOps: La unión

Devops logo

DevOps: Fundamentos y herramientas

  • Código: desarrollo y revisión de código, herramientas de administración de código fuente, fusión de código
  • Construcción: herramientas de integración continua, estado de compilación
  • Prueba: herramientas de prueba continuas que brindan retroalimentación sobre los riesgos comerciales
  • Paquete: repositorio de artefactos, distribución previa a la implementación de la aplicación
  • Lanzamiento: gestión de cambios, aprobaciones de versiones, automatización de versiones
  • Configurar: configuración y gestión de la infraestructura, Infraestructura como código
  • Monitor: monitoreo del rendimiento de las aplicaciones, experiencia del usuario final

continuous integration CI (integración continua)

CI logo

La integración continua (continuous integration en inglés) es un modelo informático propuesto inicialmente por Martin Fowler que consiste en hacer integraciones automáticas de un proyecto lo más a menudo posible para así poder detectar fallos cuanto antes. Entendemos por integración la compilación y ejecución de pruebas de todo un proyecto.

El proceso suele ser: cada cierto tiempo (horas), descargarse las fuentes desde el control de versiones (por ejemplo CVS, Git, Subversion, Mercurial o Microsoft Visual SourceSafe) compilarlo, ejecutar pruebas y generar informes. Wikipedia

¿Cómo funciona?

Esquema

Ventajas

  • Todo se hace de forma continua.
  • Se acaba el drama del deploy
  • Disponemos de un entorno de pruebas
  • Todo se testea constantemente
  • La calidad del proyecto siempre es una prioridad

Recursos

CD - Continuous delivery (Entrega continua (EC))

Entrega continua (EC) es un enfoque de la ingeniería del software en que los equipos de desarrollo producen software en ciclos cortos, asegurando que el software puede ser liberado en cualquier momento, de forma confiable. Apunta a la construcción, prueba, y liberación del software de forma más rápida y más frecuente. Este enfoque ayuda en la reducción del costo, tiempo, y riesgo de la liberación de versiones a través de la liberación de versiones más incrementales a aplicaciones en producción. Un proceso directo y repetible de liberación es importante para una entrega continua. Wikipedia

Etapas

  • Automatización de la compilación e integración continua
  • Automatización de pruebas
  • Automatización de implementación

Ventajas

  • Automatización de publicación de software
  • Mayor independencia y productividad
  • EReducción de bugs y mejoras para la detección de fallas
  • Actualizaciones más frecuentes

Ciclo

Devops logo

Continuous Delivery vs Continuous Deployment

Devops logo

Recursos

En resumen

Esquema

Herramientas: Jenkins

Jenkins logo

Jenkins es un servidor de automatización open source escrito en Java. Está basado en el proyecto Hudson y es, dependiendo de la visión, un fork del proyecto o simplemente un cambio de nombre.

Jenkins ayuda en la automatización de parte del proceso de desarrollo de software mediante integración continua y facilita ciertos aspectos de la entrega continua. Soporta herramientas de control de versiones como CVS, Subversion, Git, Mercurial, Perforce y Clearcase y puede ejecutar proyectos basados en Apache Ant y Apache Maven, así como scripts de shell y programas batch de Windows. El desarrollador principal es Kohsuke Kawaguchi. Publicado bajo licencia MIT, Jenkins es software libre. Wikipedia

Captura Jenkins logo

Recursos

Herramientas: Travis

Travis logo

Captura

Travis captura

Recursos

Herramientas: Gitlab CI

Gitlab CI logo

Captura GitlabCI captura

Pipeline Gitlab CI schema

Recursos

Herramientas: Netlify

Netlify logo

Recursos

Herramientas: Github Actions!

Github Actions! logo

Concepto Github Actions! logo

Recursos

Otras Herramientas