Dr. Alfredo de Jesús Gutiérrez Gómez.
Dr. Alfredo de Jesús Gutiérrez Gómez.
Presentación
Instrucciones para la presentación
1. Piense en el nombre de un animal que inicie con la primera letra de su nombre.
2. Este no deberá repetirse.
3. Al presentarse deberá completar la siguiente frase: Mi nombre es: _______ y he venido sobre un/a: _______ a la escuela desde _____
4. Dar respuesta a las preguntas:
4.1 ¿Porqué estudio está carrera?
4.2 ¿Qué me ha gustado de la carrera hasta ahora?
Temas del curso
Unidad 1. Seguridad e implementación de aplicaciones
Temas del curso
Unidad 1. Seguridad e implementación de aplicaciones
Temas del curso
Unidad 2. Infraestructura y automatización
Temas del curso
Unidad 2. Infraestructura y automatización
Temas del curso
Unidad 3. Soluciones de redes administradas
Temas del curso
Unidad 3. Soluciones de redes administradas
Políticas de clase
Lineamientos de clase
El incumplimiento de las tareas en tiempo y forma llevarán a una no aprobación del curso.
Lineamientos de clase
Realizar el seguimiento personal desde el Aula Virtual.
Estar pendiente de los resultados de las evaluacion/es parcial/es y final/es.
Notificar al tutor por escrito, con copia a la coordinación académica, si, por alguna razón excepcional, se encontrara en una circunstancia especial que le impidiera continuar con el curso y recibir así indicaciones de cómo proceder a partir de ese momento.
Descripción de las actividades
Unidad 1 Seguridad e implementación de aplicaciones
Descripción de las actividades
Unidad 2. Infraestructura y automatización
Descripción de las actividades
Unidad 3 Solución de redes administradas
Actividades de encuadre
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Una vez contestadas las preguntas anteriores escribir en el foro respectivo la respuesta a cada pregunta.
Tiempo de la actividad: 6 minutos.
Recomendaciones para las actividades
Trabajos:
Párrafos:
Ortografía - Gramática
Recomendaciones para las actividades
Referencias bibliográfica
Lista referencia bibliográfica
Recomendaciones para las actividades
Introducción y conclusión
Formato del trabajo
Recomendaciones para las actividades
Tablas /imágenes / diagramas / gráficas:
¿Dudas / Preguntas / comentarios?
¿Automatización de la infraestructura digital?
Uso de tecnologías y herramientas para gestionar y operar los recursos de TI (Tecnologías de la Información) de manera automática y con mínima intervención humana.
optimizar el despliegue, la gestión, el monitoreo y la escalabilidad de su infraestructura de TI, que puede incluir servidores, redes, almacenamiento, bases de datos entre otras cosas.
Infraestructura como Código (IaC)
gestionar y aprovisionar la infraestructura de TI mediante archivos de configuración en lugar de configuraciones manuales. Los scripts de IaC permiten definir el estado deseado de la infraestructura y luego aplicar esos estados de manera automatizada.
Orquestación
Coordina y gestiona las tareas automatizadas en diferentes sistemas, asegurando que se ejecuten en el orden correcto y con las dependencias adecuadas.
Gestión y Configuración Automatizada
Automatizar la configuración de servidores y otros dispositivos para asegurar que sigan las políticas establecidas.
Chef y Puppet: Herramientas que permiten definir y aplicar configuraciones en servidores de forma repetible y escalable.
Monitoreo y Automatización de Respuesta
Monitoreo automatizado permiten la supervisión continua de la infraestructura y pueden ejecutar acciones automáticas en respuesta a eventos o condiciones predefinidas.
Escalabilidad
Permite escalar la infraestructura rápidamente para adaptarse a las demandas crecientes, sin la necesidad de intervención manual.
Al automatizar procesos repetitivos, se minimizan los errores humanos, lo que resulta en una infraestructura más confiable y segura.
Reducción de Errores
Velocidad y Agilidad
La automatización acelera el despliegue y la configuración de recursos, permitiendo a las organizaciones responder rápidamente a las necesidades del negocio.
Asegura que las configuraciones y políticas se apliquen de manera uniforme en toda la infraestructura, lo que es crucial en entornos de TI complejos.
Consistencia
Costos Reducidos
Al optimizar el uso de recursos y reducir la necesidad de intervención manual, la automatización puede conducir a una disminución en los costos operativos.
Despliegue Automatizado
Desplegar aplicaciones y servicios en entornos de producción sin intervención manual, asegurando consistencia y rapidez.
Infraestructura Dinámica
Gestionar infraestructuras que escalen automáticamente en respuesta a la demanda, utilizando recursos de nube pública o privada.
Gestión de Configuraciones
Asegurar que las configuraciones del sistema se mantengan alineadas con las políticas corporativas y se adapten automáticamente a los cambios.
Recuperación ante Desastres
Automatizar la recuperación de sistemas críticos después de una falla, reduciendo significativamente el tiempo de inactividad.
Complejidad Inicial
La configuración inicial de un sistema de automatización puede ser compleja y requiere una planificación cuidadosa.
Capacitación del Personal
El personal de TI necesita capacitación para gestionar y mantener infraestructuras automatizadas, lo que puede requerir inversión en tiempo y recursos.
Dependencia de Herramientas
Las organizaciones pueden volverse dependientes de herramientas específicas, lo que podría ser un riesgo si esas herramientas dejan de ser soportadas o actualizadas.
Identificar los entornos de trabajo en el proceso de desarrollo de software
# seg. App
Principales Entornos de Trabajo en el Desarrollo de Software
# seg. App
Entorno de Desarrollo (Development Environment)
Este es el entorno donde los desarrolladores escriben, prueban y depuran el código. Suele ser un entorno aislado que permite experimentar sin afectar otros sistemas.
Automatización y Herramientas Clave
Principales Entornos de Trabajo en el Desarrollo de Software
# seg. App
Beneficios
Actividad de Aprendizaje
# seg. App
Integración e implementación continua (CI/CD)
# Auto-Infraestructura
La Integración Continua (CI) y la Implementación Continua (CD), comúnmente denominadas CI/CD, son prácticas esenciales en el desarrollo de software moderno que buscan automatizar y mejorar la eficiencia del ciclo de vida del software, desde su creación hasta su despliegue.
Integración e implementación continua (CI/CD)
# Auto-Infraestructura
Aspectos claves
Automatización de pruebas: Cada vez que se realiza una nueva integración de código, un sistema automatizado ejecuta pruebas para asegurar que los nuevos cambios no introduzcan errores o rompan funcionalidades existentes.
Compilaciones automáticas: El sistema CI realiza compilaciones automáticas del proyecto para verificar que todo el código se puede integrar correctamente.
Integración e implementación continua (CI/CD)
# Auto-Infraestructura
Aspectos claves
Retroalimentación rápida: Los desarrolladores reciben comentarios inmediatos sobre la calidad de su código y la compatibilidad con el sistema completo.
El proceso de CI permite a los equipos detectar problemas rápidamente y resolverlos antes de que se conviertan en grandes obstáculos.
# Auto-Infraestructura
Implementación Continua (CD)
La Implementación Continua es una extensión de la CI que automatiza el proceso de entrega de software a entornos de producción (o casi producción, como un entorno de prueba o staging). Esta práctica garantiza que el software siempre esté en un estado desplegable.
# Auto-Infraestructura
Implementación Continua (CD)
Aspectos claves
# Auto-Infraestructura
Ventaja CI/CD
# Auto-Infraestructura
# Auto-Infraestructura
# Auto-Infraestructura
# Auto-Infraestructura
Instalar Docker - Windows
# Auto-Infraestructura
Instalar Docker - MacOsX
# Auto-Infraestructura
Instalar Docker - linux
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
# Auto-Infraestructura
Instalar Docker - Verificar la ejecución de docker en la terminal
docker --version
Si se esta ejecutando correctamente debe de salir algo como lo siguiente
# Auto-Infraestructura
Crear un fichero docker-compose.yml
Ayudara a gestionar los servicios de Apache, PHP y MySQL es la forma más sencilla.
Crea un directorio y dentro de él se creará el archivo docker-compose.yml con la siguiente estructura. Usa el comando mkdir para la creación de la carpeta
# Auto-Infraestructura
Crear un fichero docker-compose.yml
version: '3.8'
services:
web:
image: php:7.4-apache
container_name: webserver
volumes:
- ./html:/var/www/html
ports:
- "8080:80"
depends_on:
- db
db:
image: mysql:5.7
container_name: mysqlserver
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: mydb
MYSQL_USER: user
MYSQL_PASSWORD: userpass
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
volumes:
db_data:
Este fichero configura el contenedor apache/php y mysql
# Auto-Infraestructura
Crea un directorio llamado html
dentro de tu directorio de proyecto, que contendrá los archivos web. También, añade un archivo PHP de prueba.
<?php
phpinfo();
?>
Escribe el siguiente contenido básico en el archivo index.php
:
Se recomienda usar el comando mkdir para la creación de directorios
# Auto-Infraestructura
Abre una terminal y navega hasta el directorio donde se encuentra tu archivo docker-compose.yml
. Luego, ejecuta el siguiente comando:
docker-compose up -d
Esto descargará las imágenes necesarias (Apache, PHP y MySQL) y levantará los contenedores
# Auto-Infraestructura
Abre un navegador web y accede a http://localhost:8080
. Se Debe ver la página de información de PHP que configuraste en el archivo index.php
.
# Auto-Infraestructura
Crea otro archivo PHP para probar la conexión con la base de datos. Añade el siguiente código en un archivo llamado dbtest.php
dentro del directorio html
:
# Auto-Infraestructura
<?php
$servername = "db";
$username = "user";
$password = "userpass";
$dbname = "mydb";
// Crear conexión
$conn = new mysqli($servername, $username, $password, $dbname);
// Verificar conexión
if ($conn->connect_error) {
die("Conexión fallida: " . $conn->connect_error);
}
echo "Conexión exitosa";
?>
Accede a http://localhost:8080/dbtest.php
para ver si la conexión con la base de datos es exitosa.
# Auto-Infraestructura
FROM PHP:7.4-apache
RUN docker-php-ext-install mysqli
Si causa un error de que no tiene instalada la librería mysqli crea un fichero docker-file.yml y guardalo alado del docker-compose.yml
# Auto-Infraestructura
docker ps
Ver los contenedores en ejecución
docker-compose logs
Ver los logs de los contenedores
docker-compose down
Detener los contenedores
docker-compose restart web
Reiniciar un contenedor específico (ej. Apache)
# Auto-Infraestructura