¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros y videos
  2. Alta disponibilidad en Linux - De la infraestructura a la orquestación de servicios (Heartbeat, Docker, Ansible, Kubernetes…)

Alta disponibilidad en Linux De la infraestructura a la orquestación de servicios (Heartbeat, Docker, Ansible, Kubernetes…)

Información adicional

  • 5% de descuento en todos los libros
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis por un año

Características

  • Encuadernación rústica - 17 x 21 cm
  • ISBN: 978-2-409-05019-0
  • EAN: 9782409050190
  • Ref. ENI: EPT2HADIS

Información adicional

  • 5% de descuento en todos los libros
  • Versión online digital, no descargable
  • Consultable en línea durante 10 años inmediatamente después de la validación del pago.

Características

  • HTML
  • ISBN: 978-2-409-05020-6
  • EAN: 9782409050206
  • Ref. ENI: LNEPT2HADIS

Los puntos fuertes del libro:

  • Un enfoque completo: de la infraestructura física a la orquestación de servicios,
  • Aplicación práctica y aprendizaje contextualizado gracias a un ejemplo guía,
  • Adopción de herramientas DevOps modernas para la alta disponibilidad
Consultar extractos del libro Extracto del libro
  • Nivel Medio a Experto
  • Publicación abril 2025
  • Nivel Medio a Experto
  • Publicación abril 2025

Más que nunca, en un mundo ultraconectado donde muchas cosas dependen de la informática y de Inter­net, es esencial contar con entornos altamente disponibles, redundantes y confiables. El objetivo de este libro es proporcionar a los ingenieros de sistemas todos los conceptos básicos para construir entornos de Alta Disponibilidad, tanto desde una perspectiva de infraestructura como de servicios, basados en el sistema operativo Linux.

Basándose en los principios y herramientas DevOps, los autores presentan un ejemplo de aplicación como hilo conductor para estudiar cómo evolucionan de la mano una aplicación y su infraestructura subyacente, para hacerlas lo más confiables y accesibles posible, apoyándose en las últimas tecnologías.

De esta forma se abordan todos los elementos de diseño de una plataforma y aplicación redundantes.

El lector puede así comprender concretamente la definición de una aplicación escrita en Java y funcionan­do en Tomcat, la implementación de una arquitectura de hardware funcional para soportarla, la redun­dancia de los servicios de sistema y de red básicos (RAID, agregados de red, DNS…), la automatización de la construcción y el despliegue de imágenes de aplicaciones con Docker y Ansible o alta disponibilidad de la red, repartidores de carga y direcciones IP con NGINX, HAProxy, el protocolo VRRP y Quagga.

En el resto del libro, los autores describen la transición a la orquestación con un clúster de Kubernetes, la implementación de un clúster con una solución de almacenamiento de red redundante basada en un clúster NFS y XFS, así como la creación de clústeres de bases de datos MariaDB y afinidades de sesión.

Prólogo
  1. Introducción
  2. Contenido de este libro
Aplicación standalone
  1. La aplicación principal
    1. 1. Arquitectura de aplicaciones web
    2. 2. El código
      1. a. El objeto TodoItem
      2. b. Nombres de clase
      3. c. El modelo MVC
      4. d. Gestión de los archivos cargados
      5. e. Configuración (Spring profile)
  2. Construir el servidor todo en uno
    1. 1. Instalación de la aplicación
      1. a. Apache Tomcat
      2. b. MariaDB
      3. c. Creación de la aplicación
    2. 2. Exposición en Internet
    3. 3. Crítica al diseño de aplicaciones
  3. Algunos problemas de este modelo todo en uno
    1. 1. Compartir recursos
    2. 2. Configuración de hardware no óptima
    3. 3. Todos los huevos en la misma cesta
Infraestructuras y servicios básicos
  1. ¿Qué es la alta disponibilidad?
    1. 1. Tolerancia a fallos
    2. 2. Tasa de disponibilidad
    3. 3. Factores que se deben tener en cuenta
    4. 4. Funciones y responsabilidades
  2. Infraestructura de alta disponibilidad
    1. 1. Ejemplo de arquitectura
    2. 2. Características del hardware del servidor
    3. 3. Distribución de servidores
    4. 4. Servidores físicos o virtuales
    5. 5. Pruebas sin servidores
    6. 6. Requisitos y plan de direccionamiento
      1. a. Servidores
      2. b. Red
      3. c. Detalles
  3. Instalación básica
    1. 1. Red VirtualBox
    2. 2. Red Hyper-V
    3. 3. UTM
    4. 4. Instalación estándar
      1. a. Imagen de Ubuntu
      2. b. Discos
      3. c. Red Netplan
      4. d. Usuarios
      5. e. Instalación de Ansible
    5. 5. Clonación
  4. Agregados de red
    1. 1. Velocidad y tolerancia a fallos
    2. 2. Consideraciones materiales
    3. 3. Modos de funcionamiento
    4. 4. Configuración
      1. a. Configuración manual
      2. b. Utilizar Netplan
      3. c. Estado del agregado
  5. Servidor DNS
    1. 1. ¿Cómo resuelve Linux las direcciones?
    2. 2. DNS primarios y secundarios
    3. 3. Configuración
      1. a. DNS primario
      2. b. DNS secundario
      3. c. Prueba
      4. d. Resolver Systemd
      5. e. Automatización
Los contenedores
  1. Especificaciones
  2. Aislamiento y contenedores
    1. 1. Principio
    2. 2. Contenedor y máquina virtual
    3. 3. Namespace
    4. 4. cgroup
    5. 5. Montaje en unión
    6. 6. Imagen de la aplicación
    7. 7. Capas de imágenes
    8. 8. Docker
    9. 9. El proyecto OCI
  3. Preparar el entorno
    1. 1. Instalar Docker
    2. 2. Instalar un registry Docker
      1. a. Crear almacenamiento
      2. b. Obtener una clave y un certificado
      3. c. Iniciar el registro
      4. d. Probar
      5. e. Automatizar
  4. Construir la imagen
    1. 1. Adaptar el código
    2. 2. Dockerfiles
      1. a. Builder
      2. b. Tomcat
      3. c. Imagen de la aplicación
    3. 3. Build
    4. 4. Primera prueba
    5. 5. Utilizar el registry
    6. 6. Automatización
      1. a. Imagen para MariaDB
      2. b. Imagen h2
  5. Despliegue de contenedores
    1. 1. MariaDB
      1. a. Almacenamiento
      2. b. Inicio
    2. 2. eni-todo
      1. a. Ubicación de los archivos descargados
      2. b. Arranque manual
    3. 3. Automatización
      1. a. Configuración YAML
      2. b. Despliegue
  6. Conclusión
Exposición y reparto
  1. Exponer sus servicios
    1. 1. Problemática
    2. 2. Arquitectura básica
  2. Reverse proxy
    1. 1. ¿Por qué utilizar un reverse proxyreverseproxy?
    2. 2. Elección del reverse proxy
    3. 3. Instalación
    4. 4. Configuración
      1. a. nginx.conf
      2. b. Certificados
    5. 5. Automatización
      1. a. Configuración YAML
      2. b. Certificados
      3. c. Despliegue
      4. d. Prueba
      5. e. Reboot
  3. Reparto de la carga
    1. 1. Presentación
    2. 2. Objetivos
    3. 3. Arquitectura de alta disponibilidad
  4. Solución de reparto de carga
    1. 1. Elección de productos
    2. 2. HAProxy
      1. a. Presentación
      2. b. Arquitectura
      3. c. Ejemplo
    3. 3. VRRP con Keepalived
      1. a. Presentación de Keepalived
      2. b. Presentación de VRRP
      3. c. Ejemplo
    4. 4. Instalación manual
      1. a. Instalación de los paquetes
      2. b. Fijar el núcleo y los límites
      3. c. Configuración del firewall
    5. 5. Automatización
      1. a. Instalación y configuración de componentes
      2. b. Comprobación de estructuras arborescentes
      3. c. Control de los servicios
      4. d. Configuración de las VIP
      5. e. Prueba final
    6. 6. Conclusión
  5. Exposición en Internet
  6. Solución de exposición en Internet con FRRouting
    1. 1. Implementación
    2. 2. Instalación y configuración
    3. 3. Prueba
    4. 4. Automatización
Orquestración
  1. Introducción
  2. Abstracciones de orquestación
    1. 1. Abstracción del servidor
    2. 2. Abstracción de aplicaciones
    3. 3. Abstracción de la red
    4. 4. Abstracción del almacenamiento
    5. 5. Una mirada a la realidad
  3. ¿Automatización u orquestación?
  4. Batalla de orquestadores
  5. Mecanismos de entornos distribuidos
    1. 1. Consenso
    2. 2. Paxos
    3. 3. Raft
  6. Scheduler
  7. Introducción a Kubernetes
    1. 1. Arquitectura
    2. 2. Versión más ligera: Minikube
      1. a. Instalación
      2. b. Add-ons
      3. c. minikube dashboard
      4. d. minikube docker-env
      5. e. minikube logs
      6. f. minikube IP
      7. g. minikube service
      8. h. minikube update-context
  8. Introducción a Kubernetes
    1. 1. kubectl
    2. 2. Llamadas al API
    3. 3. Configuración del cliente
    4. 4. Gestión de recursos
    5. 5. Trazas del pod
Despliegue con Kubernetes
  1. Introducción
  2. Del pod al despliegue
    1. 1. Pod
      1. a. Sensores y control de estado
      2. b. Clases de calidad de servicio, límites ypeticiones
    2. 2. ReplicaSet
    3. 3. Despliegue
  3. Servicios y Endpoints
    1. 1. Servicio de tipo ClusterIP
    2. 2. Servicio NodePort
    3. 3. Endpoints
  4. Secret y ConfigMap
    1. 1. Montaje de los ConfigMaps y secretos
    2. 2. Uso de ConfigMap y Secret en las variables de entorno
  5. StatefulSet
  6. PersistentVolume
  7. PersistentVolumeClaim
  8. StorageClass
  9. Rutas ingress
    1. 1. El controlador del flujo entrante
    2. 2. Objeto ingress
  10. Job y CronJob
  11. DaemonSet
Almacenamiento y alta disponibilidad
  1. Disponibilidad del almacenamiento
    1. 1. Problemática
    2. 2. Especificaciones
    3. 3. Solución
    4. 4. Arquitectura
      1. a. DRBD y clúster
      2. b. XFS, cuotas y NFSv4
  2. RAID
    1. 1. Aspectos principales
    2. 2. RAID por hardware frente a RAID por software
    3. 3. RAID-0, RAID-1 y RAID-5
    4. 4. Manejo de un RAID-5
  3. Clúster NFS-HA
    1. 1. Instalación de paquetes
    2. 2. Configuración de la red
    3. 3. Creación de clústeres
    4. 4. Verificación
    5. 5. Configuración de almacenamiento
      1. a. LVM
      2. b. DRBD
      3. c. Ampliar el volumen DRBD
    6. 6. Recursos Pacemaker
      1. a. DRBD
      2. b. LVM
      3. c. Sistema de archivos
      4. d. NFS
      5. e. Dirección IP
    7. 7. Restricciones del Pacemaker
    8. 8. Prueba de conmutación
  4. Proyectos XFS
    1. 1. Adición manual
    2. 2. Prueba NFS
    3. 3. Split-brain
    4. 4. Automatización
Implementar un cluster Kubernetes
  1. Introducción
  2. Topología
    1. 1. Componentes básicos
    2. 2. Elección de un runtime
    3. 3. Reparto
      1. a. Cuórum y rendimiento
      2. b. Control-plane o masters
      3. c. Workers o nodos
      4. d. Posicionamiento
      5. e. Topología para eni-todo
  3. Preparación
    1. 1. Recordatorios
    2. 2. HAProxy
    3. 3. Preparación de los servidores
      1. a. Configuración del sistema
      2. b. Configuración del firewall
      3. c. Automatización
  4. Construcción
    1. 1. Imágenes de Kubernetes
    2. 2. Primer master
      1. a. Bootstrap
      2. b. Franela
      3. c. Listar los contenedores
      4. d. Comprobar ETCD
    3. 3. Segundo y tercer master
    4. 4. Modificación del controlador
    5. 5. Añadir nodos
    6. 6. Estado del clúster
    7. 7. Prueba
      1. a. Primer despliegue
      2. b. Primera exposición
      3. c. Añadir los pods
      4. d. Resolución DNS interna
    8. 8. Enrutador ingress
      1. a. Aspectos principales
      2. b. Instalación
      3. c. Primer ingress
      4. d. Modo host network
  5. Procedimientos adicionales
    1. 1. Crash o apagado sucio de un nodo
    2. 2. Parada del nodo limpio
    3. 3. Destruir un clúster
Integración final
  1. Introducción
  2. Volúmenes persistentes
    1. 1. Clúster NFS-HA
    2. 2. Suministro de volúmenes persistentes
  3. Registry Docker
    1. 1. Arquitectura
    2. 2. Generar un secreto
    3. 3. Despliegue
      1. a. Demanda de volumen persistente
      2. b. Creación de un despliegue
      3. c. Crear un servicio
    4. 4. Exposición
      1. a. Añadir una ruta ingress
      2. b. Exposición a través de HAProxy
      3. c. Prueba
    5. 5. Configuración de los workers para el registry
  4. Base de datos
    1. 1. Problemática
    2. 2. Galera
    3. 3. Despliegue
    4. 4. Acceso a db-todo
  5. eni-todo
    1. 1. Adaptaciones
    2. 2. Construcción de la imagen
    3. 3. Crear una cuenta de servicio
    4. 4. Despliegue
      1. a. Demanda de volumen persistente
      2. b. Creación del servicio
      3. c. Despliegue
    5. 5. Exposición
      1. a. Afinidad y persistencia
      2. b. Creación de una configuración ingress
      3. c. Configuración de HAProxy
    6. 6. Prueba final
  6. Conclusión
Ir más lejos
  1. Introducción
  2. Plan de recuperación en caso de catástrofe
    1. 1. En caso de catástrofe
    2. 2. Definición
    3. 3. Medidas
    4. 4. Prácticas DevOps
  3. Copias de seguridad
    1. 1. Redundancia frente a copia de seguridad
    2. 2. Qué guardar
    3. 3. GitOps
    4. 4. SaaS
  4. Seguridad
    1. 1. Contenedor y root
      1. a. Ejemplo de explotación
      2. b. Soluciones
      3. c. El contexto de seguridad (securityContext)
    2. 2. Red Kubernetes
    3. 3. Usuarios y permisos
      1. a. RBAC
      2. b. Usuarios
    4. 4. Actualizaciones
    5. 5. Firewalls, proxies, routeres y segmentación
    6. 6. Aplicaciones
  5. Supervisión
    1. 1. Métrica
    2. 2. Trazas
  6. Almacenamiento
  7. PaaS
Autor : Sébastien  ROHAUT

Sébastien ROHAUT

Sébastien ROHAUT es diplomado por la ESGI, ingeniero DPE y ha pasado varios años realizando proyectos de ingeniería de sistemas. Sébastien fue responsable técnico de un equipo de DevOps dentro de un gran grupo francés, aunque actualmente es gerente técnico de migraciones al Cloud (MttC Tech Lead) y se le reconoce como “Security Champion” en el mismo grupo. También enseñó durante casi 11 años en clases preparatorias y de ingeniería y tiene una gran experiencia técnica y educativa de la que se benefician los lectores de sus libros.


Más información
Autor : Charles SABOURDIN

Charles SABOURDIN

Con un BBA de Essec, un Máster en Seguridad (MSSIS) de ESIEA y varias certificaciones, incluida la CKA (Certified Kubernetes Administrator), Charles Sabourdin lleva a cabo proyectos en el área de la estrategia, planificación urbana y arquitectura de sistemas de información, así como proyectos muy operativos en entornos Java, Linux, Ansible y Kubernetes, lo que le permite mantener el pragmatismo en la implementación de sus consejos. En un usuario que hace un uso extensivo del software libre y comparte su experiencia desde hace 20 años organizando o participando en numerosos congresos y eventos (Las Noches ParisJug, JChateau, Devoxx Francia).
Más información

Novedades

Ver más