IAW-UT01-Instalación de servidores de aplicaciones web
(2022-2023)
Manuel Jesús Rodríguez Arabi
OBJETIVO: Profundizar en los procesos que nos permiten la implantación o despliegue de aplicaciones web en la actualidad.
Primera aproximación: Instalar, configurar y administrar aplicaciones web en servidores.
El objetivo anterior no es suficiente para alcanzar las destrezas que tiene que poseer un administrador de sistemas.
Lenguajes de Programación
Según la Wikipedia: Herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador.
Poner un proyecto de software en marcha comprende más cosas que desarrollar código. El software es algo vivo, normalmente una vez que se pone online o se entrega al cliente se sigue desarrollando y generando nuevas versiones. En la mayor parte de las empresas, la puesta en producción de una nueva versión es un momento crítico por las incertidumbres que genera. Dentro de las empresas de IT hay dos grupos marcados que creen tener objetivos distintos, desarrollo (dev) y sistemas (ops).
Cambiar la mentalidad de estos grupos, automatizar todas las tareas posibles y establecer políticas de calidad y control claras son fundamentales para que el proceso de trasladar valor a los clientes (implementar cambios) sea un proceso frecuente, sencillo y seguro.
En el ciclo de vida del software hay 3 etapas claras
Los ciclos de desarrollo de software actuales son ágiles y rápidos, de forma que continuamente se están arreglando errores, programando nuevas características y desplegándolas en producción.
DevOps es un acrónimo inglés de development (desarrollo) y operations (operaciones o sistemas), que se refiere a una metodología de trabajo que se centra en la comunicación, colaboración e integración entre desarrolladores de software y los profesionales de operaciones en las tecnologías de la información (IT).
Que demonios es eso de Devops (y porque debería interesarme)
ENTORNOS DE PRODUCCIÓN, PRUEBAS Y DESARROLLO COMPARABLES.
Si vamos a usar herramientas de automatización, es importante la elección del entorno de producción.
Elección del entorno de producción
La integración continua requiere que cada vez que alguien haga un commit se construya la aplicación entera y que se ejecuten una serie de tareas automatizados: Las pruebas y el despliegue se automatizan.
Es un cambio de paradigma. Es necesario la aceptación de los miembros del equipo, puesto que la integración continua es una práctica y no una herramienta.
ENTREGA Y DESPLIEGUE CONTINUO
ENTREGA Y DESPLIEGUE CONTINUO
HERRAMIENTAS UTILIZADAS EN LOS DESPLIEGUES MODERNOS
Vagrant es una herramienta que gestiona máquinas virtuales (VM). Con un fichero de configuración (VagranFile), puede levantar y provisionar una infraestructura de MV en poco tiempo.
ENTORNOS VIRTUALES DE DESARROLLO
El uso de entornos virtuales de desarrollo nos permite solucionar los problemas con las versiones de los interpretes y librerías.
INFRAESTRUCTURA COMO CÓDIGO: AUTOMÁTIZACIÓN DE LA CONFIGURACIÓN
Aunque actualmente se automatiza todas las partes posible del ciclo de desarrollo de software, no se hace lo mismo con la administración de sistemas. El concepto de infraestructura como código se refiere a intentar gestionar la infraestructura como si de un desarrollo software se tratase.
Ventajas:
Herramientas: Puppet, chef, ansible, ...
SISTEMA DE CONTROL DE VERSIONES
Tanto para el departamento de desarrollo como para el de sistemas es imprescindible el uso de un sistema de control de versiones. En Sistemas, al gestionar la infraestructura como código es necesario gestionar los distintos ficheros de configuración con un sistema de control de versiones.
HERRAMIENTAS DE INTEGRACIÓN Y DESPLIEGUE CONTINÚO
Herramientas que nos permite automatizar el ciclo de vida de desarrollo de software: compilación, testeo, control de código, documentación, despliegue, ...