Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Puede solicitar gratuitamente las soluciones a todas las actividades en el email [email protected] Capacidades que se adquieren con este Manual: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 97
Veröffentlichungsjahr: 2025
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Despliegue y puesta en funcionamiento de componentes software. UF1291.
Autora: Beatriz Coronado García.
© EDITORIAL TUTOR FORMACIÓN
C/ San Millán, 7, bajo 10
26004 Logroño (La Rioja)
Tlf. 610687276
Email: [email protected]
Web: https://tutorformacion.es o https://editorial.tutorformacion.es
Edición: 2025
ISBN: 979-13-87566-29-6
Depósito legal: LR 243-2025
Reservados todos los derechos de publicación en cualquier idioma.
Según el código penal vigente ninguna parte de este o cualquier otro libro puede ser reproducida, grabada en alguno de los sistemas de almacenamiento existentes o transmitida por cualquier procedimiento, ya sea electrónico, mecánico, reprográfico, magnético o cualquier otro, sin autorización previa y por escrito de D. Miguel Ángel Ladrón Jiménez; su contenido está protegido por la ley vigente que establece penas de prisión y/o multas a quienes intencionadamente reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o científica.
Portada diseñada por FreePik
Contenido
Introducción
Despliegue de componentes
1.Modelos de despliegue.
1.1.Diseño sin repositorio.
1.2.Diseño con repositorio sólo para el depósito de componentes.
1.3.Despliegue con repositorio.
1.4.Diseño con repositorio.
2.Prueba de autoevaluación.
Selección de componentes
1.Tipos de componentes.
1.1.Componentes comerciales (COTS y SaaS).
1.2.Componentes de código abierto y frameworks modernos (Spring Boot, Quarkus, Express.js, NestJS).
1.3.Ventajas e inconvenientes en entornos cloud y on-premise.
2.Métodos de personalización de componentes.
2.1.Parametrización.
2.2.Uso de extensiones (plugins).
2.3.Configuraciones declarativas con Infrastructure as Code (IaC), Ansible, Terraform.
3.Criterios de selección de componentes reutilizables.
3.1.Adaptabilidad.
3.2.Auditabilidad.
3.3.Estandarización.
3.4.Escalabilidad y elasticidad.
3.5.Rendimiento.
3.6.Consumo de recursos.
3.7.Seguridad.
3.8.Características de mantenimiento y actualización.
3.9.Compatibilidad con entornos cloud y contenedores.
4.Proceso de selección de componentes.
4.1.Evaluación de componentes según requisitos.
4.2.Diseño y codificación (código de enlace).
4.3.Automatización de pruebas con CI/CD (Jenkins, GitHub Actions, GitLab CI/CD).
4.4.Detección de fallos.
4.5.Mantenimiento y gestión de configuraciones.
4.6.Actualización de componentes en entornos DevOps (Rolling Updates, Canary Releases, Blue-Green Deployments).
4.7.Métodos de selección de uso común.
5.Prueba de autoevaluación.
Control de calidad de componentes
1.Métodos de evaluación de calidad de componentes y estándares modernos (ISO/IEC 25010, OWASP SAMM, CIS Benchmarks).
2.Categorías y métricas de evaluación.
3.Proceso de validación y medición de calidad.
3.1.Pruebas de conformidad a requisitos funcionales.
3.2.Pruebas de integración con otros sistemas.
3.3.Pruebas de aspectos no funcionales.
4.Documentación de componentes.
5.Descripción funcional.
6.Descripción de aspectos no funcionales.
7.Descripción del proceso de instalación y despliegue.
7.1.Descripción del empaquetamiento con Docker, Helm, Operator Framework.
7.2.Requisitos de implantación.
7.3.Automatización de despliegues con Terraform, Kubernetes, GitOps (ArgoCD, Flux).
8.Prueba de autoevaluación.
Resumen
Prueba de evaluación final
Este manual está diseñado para proporcionar una comprensión detallada y práctica sobre el despliegue, selección y control de calidad de componentes en entornos de desarrollo modernos. A través de un enfoque estructurado, se abordarán los conceptos fundamentales, las metodologías y las mejores prácticas que permiten optimizar la implementación y gestión de componentes de software. Este contenido está orientado a quienes desean adquirir competencias esenciales para trabajar con arquitecturas modulares, asegurando la eficiencia, escalabilidad y seguridad de las aplicaciones en diversos entornos tecnológicos.
Iniciaremos con los diferentes modelos de despliegue de componentes, explorando las opciones disponibles según la presencia o ausencia de repositorios y la forma en que los componentes interactúan con su entorno. Se analizarán los diseños sin repositorio, aquellos con repositorio exclusivamente para almacenamiento y los modelos con integración completa de componentes en repositorios centralizados. Asimismo, se examinarán las tecnologías más utilizadas para estos despliegues, como Docker, Kubernetes y Service Mesh, y se compararán sus características en términos de flexibilidad y escalabilidad.
A continuación, profundizaremos en los criterios de selección de componentes, abordando las diferencias entre componentes comerciales (COTS y SaaS) y de código abierto. Se analizarán las ventajas e inconvenientes de cada alternativa y los factores clave que influyen en la reutilización y adaptabilidad de los componentes dentro de un sistema. También se describirán los métodos de personalización más comunes, incluyendo la parametrización, el uso de plugins y las configuraciones declarativas con herramientas de Infrastructure as Code (IaC) como Terraform o Ansible.
En la siguiente sección, se describirán los criterios para evaluar componentes reutilizables, considerando aspectos como auditabilidad, estandarización, escalabilidad, rendimiento y seguridad. Se explicarán las métricas clave utilizadas en la selección de componentes y su impacto en la arquitectura global del sistema. Además, se revisarán las metodologías más efectivas para la evaluación y selección de componentes en entornos de desarrollo ágil y DevOps.
Seguidamente, se detallarán los procesos de integración y mantenimiento de componentes, incluyendo la evaluación inicial, la integración con otros sistemas y la gestión de configuraciones. Se explicarán estrategias para la automatización de pruebas mediante pipelines de CI/CD, garantizando la calidad y compatibilidad de los componentes en entornos de producción. También se abordará el mantenimiento de los componentes a lo largo de su ciclo de vida, con énfasis en las actualizaciones y la mitigación de riesgos de seguridad mediante herramientas de análisis estático y dinámico de código (SAST y DAST).
En la sección dedicada al control de calidad de los componentes, se explorarán los estándares y metodologías actuales para la validación de software, como ISO/IEC 25010 y OWASP SAMM. Se describirán las pruebas de conformidad funcional, integración y rendimiento, así como la documentación necesaria para asegurar la trazabilidad y la gestión eficiente de los componentes dentro del ecosistema del software.
Por último, se abordarán los procedimientos para la implementación y despliegue de componentes en entornos modernos, incluyendo la gestión de empaquetamiento con Docker y Helm, la configuración de repositorios de artefactos y la automatización de despliegues con GitOps. Se analizarán las mejores prácticas para la administración de infraestructura y la optimización del rendimiento de los sistemas que dependen de estos componentes.
A continuación, se presenta un glosario de términos clave relacionados:
API (Application Programming Interface): Conjunto de reglas y herramientas que permiten la comunicación entre aplicaciones de software.Artifact Repository: Almacén centralizado donde se gestionan y distribuyen paquetes de software, como JFrog Artifactory, Nexus y AWS ECR.Auditoría de componentes: Evaluación de la calidad, seguridad y cumplimiento normativo de un componente de software.Automatización de despliegue: Uso de herramientas y scripts para gestionar la instalación y configuración de software sin intervención manual.Balanceo de carga: Distribución del tráfico entre múltiples servidores para mejorar la disponibilidad y el rendimiento.Blue-Green Deployment: Estrategia de despliegue en la que dos entornos idénticos permiten la actualización sin tiempo de inactividad.Broker de mensajes: Software intermediario que facilita la comunicación entre aplicaciones, como RabbitMQ o Apache Kafka.CAP Theorem: Principio que establece que en un sistema distribuido no es posible garantizar simultáneamente consistencia, disponibilidad y tolerancia a particiones.CD (Continuous Deployment): Práctica de desarrollo donde los cambios de código pasan automáticamente a producción tras superar las pruebas.CI/CD (Continuous Integration/Continuous Deployment): Métodos de desarrollo de software que integran, prueban y despliegan cambios de manera automática.Ciclo de vida del software (SDLC): Serie de fases por las que pasa un software desde su desarrollo hasta su retiro.CIFS (Common Internet File System): Protocolo de red para compartir archivos en redes Windows.Cloud Computing: Modelo de prestación de servicios informáticos basado en la virtualización y acceso remoto a recursos.Cluster: Conjunto de servidores interconectados que funcionan como una única unidad para mejorar rendimiento y disponibilidad.Componente de software: Módulo reutilizable que encapsula una funcionalidad específica dentro de un sistema.Configuración declarativa: Definición de la infraestructura y el software en archivos de configuración en lugar de comandos secuenciales.Contenedores: Entornos ligeros y portátiles que incluyen el software y sus dependencias, como Docker.Control de versiones: Gestión de cambios en archivos de código, normalmente a través de sistemas como Git.COTS (Commercial Off-The-Shelf): Software comercial listo para ser usado sin modificaciones.CSA (Cloud Security Alliance): Organización que desarrolla estándares de seguridad en la nube.Daemon: Proceso que se ejecuta en segundo plano en un sistema operativo.Data Lake: Almacenamiento masivo de datos en bruto para análisis posteriores.DevOps: Conjunto de prácticas que combinan desarrollo y operaciones para mejorar la entrega de software.Docker: Plataforma para desarrollar, distribuir y ejecutar aplicaciones en contenedores.Domain-Driven Design (DDD): Enfoque de diseño de software basado en modelos del dominio del negocio.Escalabilidad: Capacidad de un sistema para manejar un aumento en la carga de trabajo.Estado inmutable: Técnica que evita la modificación de recursos ya creados y promueve la regeneración de instancias.Feature Flag: Método para habilitar o deshabilitar funcionalidades en producción sin necesidad de redeploys.Firewall: Sistema de seguridad que filtra el tráfico de red entrante y saliente.Framework: Conjunto de herramientas y librerías que facilitan el desarrollo de software.Función Lambda: Servicio de AWS que permite ejecutar código en respuesta a eventos sin gestionar servidores.GIT: Sistema de control de versiones distribuido ampliamente utilizado en desarrollo de software.GitOps: Metodología que usa Git como única fuente de verdad para gestionar despliegues.Helm: Gestor de paquetes para Kubernetes que facilita la implementación y administración de aplicaciones.High Availability (HA): Diseño de sistemas que minimiza el tiempo de inactividad mediante redundancia y replicación.HTTP/2 y HTTP/3: Versiones avanzadas del protocolo HTTP con mejoras en velocidad y seguridad.IaC (Infrastructure as Code): Práctica de gestionar infraestructura mediante código en lugar de configuraciones manuales.Imagen de contenedor: Archivo que contiene todo lo necesario para ejecutar una aplicación en un contenedor.Inmutabilidad: Principio que evita modificar configuraciones en producción, promoviendo la regeneración de recursos.Integración continua (CI): Estrategia para fusionar y probar cambios de código de forma frecuente.IPSec: Protocolo de seguridad para redes privadas virtuales (VPNs).ISO/IEC 25010: Estándar internacional para evaluar la calidad de software.Istio: Service Mesh que facilita la gestión del tráfico y la seguridad en arquitecturas de microservicios.JWT (JSON Web Token): Formato de token utilizado en autenticación y autorización de API.Kubernetes: Plataforma para la gestión y orquestación de contenedores.LDAP (Lightweight Directory Access Protocol): Protocolo para gestionar información de directorios centralizados.Load Balancer: Servicio que distribuye el tráfico entre múltiples servidores.MOTS (Modified Off-The-Shelf): Software comercial con capacidad de personalización.Nginx: Servidor web y proxy inverso optimizado para alto rendimiento.OAuth 2.0: Protocolo de autorización utilizado en autenticación de API.Observabilidad: Conjunto de métricas y logs que permiten analizar el estado de un sistema.Orquestación: Automatización de la gestión y el despliegue de contenedores.Pipeline de CI/CD: Flujo de trabajo automatizado para integrar, probar y desplegar código.PKI (Public Key Infrastructure): Sistema de cifrado basado en claves públicas y privadas.Prometheus: Herramienta de monitoreo y alerta para infraestructuras modernas.Provisioning: Proceso de configuración automática de infraestructura.RBAC (Role-Based Access Control): Control de acceso basado en roles de usuario.Redundancia: Duplicación de componentes críticos para mejorar disponibilidad.Regresión: Problema que surge cuando una actualización rompe funcionalidades previas.ReplicaSet: Controlador de Kubernetes que mantiene un número deseado de pods en ejecución.Resiliencia: Capacidad de un sistema para recuperarse ante fallos.Rolling Update: Método de actualización progresiva de aplicaciones sin interrupciones.RTO (Recovery Time Objective): Tiempo máximo aceptable para la recuperación tras un fallo.SAML (Security Assertion Markup Language): Protocolo de autenticación federada.Sandboxing: Técnica para aislar aplicaciones en entornos controlados.SAST y DAST: Métodos de análisis de seguridad de software (estático y dinámico).Serverless: Arquitectura donde la gestión del servidor es automatizada por el proveedor cloud.Service Discovery: Mecanismo para detectar servicios en entornos distribuidos.Service Mesh: Infraestructura para gestionar el tráfico y la seguridad en microservicios.