Ortega Candel, José Manuel

,

Fundamentos en DevOps y arquitecturas de microservicios

33,50€

& Free Shipping

Introducción

CAPÍTULO 1 – Introducción a DevOps

1.1. Ciclo de vida DevOps
1.2. Arquitecturas DevOps
1.2.1. Principios de arquitectura de la infraestructura
1.3. SRE (Site Reliability Engineering)
1.3.1. SRE vs DevOps
1.4. Metodologías de desarrollo
1.4.1. Code First
1.4.2. API First
1.5. Otras metodologías DevOps
1.5.1. DevSecOps
1.5.2. DataOps
1.5.3. MLOps
1.5.4. AIOps
1.5.5. GitOps

CAPÍTULO 2 – Arquitecturas basadas en microservicios

2.1. Introducción
2.2. Monolítica vs microservicios
2.3. Características de microservicios
2.3.1. Despliegue
2.3.2. Contenedores y orquestadores
2.3.3. Monitorización
2.3.4. Alta disponibilidad
2.3.5. Autoescalado
2.4. Componentes de una arquitectura de microservicios
2.5. Arquitecturas de microservicios
2.5.1. Metodología DDD (Domain-Driven Design)
2.5.2. Comunicación entre microservicios
2.5.3. Servicios HTTP y REST
2.5.4. Comunicación asíncrona basada en mensajes
2.5.5. Registro de servicios
2.5.6. Uso de API Gateway
2.5.7. Uso de GraphQL
2.5.8. Uso de gRPC
2.5.9. API REST vs GraphQL vs gRPC
2.6. Implementación de microservicios
2.7. Casos de uso

CAPÍTULO 3 – Patrones de diseño en microservicios

3.1. Introducción
3.2. Patrón Service Discovery
3.2.1. Client-side
3.2.2. Server-side
3.2.3. Soluciones para Service Discovery
3.2.4. Service Discovery con Spring Cloud Eureka
3.3. Patrón DDD
3.4. CQRS (Command Query Responsibility Segregation)
3.4.1. Eventos en CQRS
3.4.2. Casos de uso de CQRS
3.5. Event Sourcing para aplicaciones escalables
3.5.1. Casos de uso de Event Sourcing
3.6. Patrón Change Data Capture (CDC)
3.6.1. Kafka Streams
3.6.2. Debezium
3.7. Patrón Publish/Subscribe
3.7.1. Tópico compartido por n suscriptores
3.7.2. 1 tópico por suscriptor
3.7.3. n tópicos por suscriptor
3.7.4. n tópicos compartidos por cada suscriptor

CAPÍTULO 4 – Estrategias de despliegue en microservicios

4.1. Introducción
4.2. Despliegue de microservicios en producción
4.2.1. Despliegue blue-green
4.2.2. Despliegue canary
4.2.3. Despliegue en fases (rolling deployment)
4.3. Integración continua (CI)
4.4. Despliegue continuo (CD)
4.5. Entrega continua
4.5.1. Ventajas de la entrega continua
4.5.2. Fases del pipeline de entrega continua
4.5.3. Integración continua vs entrega continua
4.6. Herramientas CI/CD
4.7. Estrategias para organizar repositorios
4.7.1. Monorepo
4.7.2. Multirepo
4.7.3. Estrategia híbrida
4.8. Versionado de código
4.8.1. GitFlow
4.8.2. Trunk Based Development
4.8.3. Git Flow vs Trunk Based Development
4.9. Infraestructura como código (IaC)
4.9.1. Ventajas de la IaC
4.9.2. Buenas prácticas para securizar IaC
4.9.3. Tipos de infraestructura como código
4.9.4. Herramientas para IaC
4.9.5. Ansible
4.9.6. Puppet
4.9.7. Chef
4.9.8. Terraform

CAPÍTULO 5 – Generadores de microservicios

5.1. Introducción
5.2. Yeoman
5.3. Jhipster
5.3.1. Componentes principales de Jhipster
5.3.2. Jhipster online
5.4. Atomist
5.5. Spring Initializer

CAPÍTULO 6 – Microservicios en Java

6.1. Introducción
6.2. Spring Boot
6.2.1. Creación de proyectos con Spring Boot Suite
6.2.2. Spring Boot Actuators
6.2.3. Spring Security
6.3. Micronaut
6.3.1. Creación de microservicios con Micronaut
6.3.2. Inyección de dependencias e inversión de control
6.3.3. Descubrimiento de servicios
6.3.4. Ejemplo de aplicación con Micronaut
6.4. Quarkus
6.4.1. Creación de recursos y endpoints en Quarkus
6.4.2. Inyección de dependencias en Quarkus
6.4.3. Creando nuestro proyecto base en Quarkus
6.4.4. Desplegando una aplicación Quarkus en Kubernetes
6.5. GraalVM
6.5.1. Imágenes nativas
6.5.2. GraalVM vs Micronaut
6.6. Helidon

CAPÍTULO 7 – Programación reactiva

7.1. Introducción
7.2. Manifiesto reactivo
7.3. Patrón Observer
7.4. Reactive eXtensions (RX)
7.5. Frameworks de programación reactiva
7.5.1. Ecosistema Java / JVM
7.5.2. RxJava
7.5.3. Eclipse Vert.x

CAPÍTULO 8 – Tecnologías basadas en contenedores y orquestadores

8.1. Introducción
8.2. Introducción a los contenedores
8.2.1. Casos de uso y ventajas de los contenedores
8.2.2. Contenedores vs máquinas virtuales
8.3. Docker
8.3.1. Gestión de secretos en Docker
8.3.2. Podman
8.4. Orquestadores
8.5. Kubernetes
8.5.1. Arquitectura de Kubernetes
8.5.2. Componentes de Kubernetes
8.5.3. Trabajar con Kubernetes
8.5.4. Micro8ks
8.5.5. Otras soluciones para trabajar con Kubernetes en local
8.5.6. Patrones de diseño en Kubernetes
8.6. Plataformas de contenedores
8.6.1. Portainer
8.6.2. OpenShift
8.6.3. Rancher
8.7. Comunicaciones y enrutado con Traefik
8.7.1. Despliegue de Traefik
8.7.2. Traefik middlewares

CAPÍTULO 9 – Service mesh

9.1. Introducción
9.2. Definición de service mesh
9.3. Arquitectura de un service mesh
9.3.1. Data plane
9.3.2. Control plane
9.3.3. Casos de uso de service mesh
9.3.4. Implementaciones de un service mesh
9.4. Istio
9.4.1. Ventajas de Istio
9.4.2. Arquitectura de Istio
9.4.3. Gestión del tráfico en Istio
9.4.4. Seguridad en Istio
9.5. Linkerd
9.5.1. Funcionamiento de Linkerd
9.5.2. Casos de uso de Linkerd
9.5.3. Linkerd vs Istio

CAPÍTULO 10 – Arquitecturas serverless

10.1. Introducción
10.2. Ventajas de las arquitecturas serverless
10.3. Manifiesto Twelve-Factor App
10.4. Estrategias de despliegue en aplicaciones serverless
10.5. AWS Lambda
10.5.1. AWS API Gateway
10.5.2. Funciones lambda
10.5.3. Casos de uso en AWS Lambda
10.6. Serverless DevOps
10.6.1. Herramientas y plataformas serverless DevOps

CAPÍTULO 11 – Arquitecturas orientadas a eventos

11.1. Introducción
11.2. Introducción a los brokers de mensajería
11.2.1. Sistema de mensajería punto a punto
11.2.2. Sistema de mensajería de publicación y suscripción
11.3. Protocolos de mensajería
11.3.1. Advanced Message Queuing Protocol (AMQP)
11.3.2. Message Queue Telemetry Transport (MQTT)
11.4. Apache Kafka
11.4.1. Componentes de Apache Kafka
11.4.2. Plataforma de Apache Kafka
11.4.3. Requisitos para utilizar Apache Kafka
11.4.4. Iniciando Apache Kafka con Docker
11.4.5. Implementar productor y consumidor en Python
11.4.6. Herramientas para monitorizar Apache Kafka
11.5. Apache Pulsar
11.5.1. Apache Pulsar con Python
11.5.2. Apache Pulsar vs Apache Kafka
11.6. RabbitMQ
11.6.1. Componentes de RabbitMQ
11.6.2. Arquitectura de RabbitMQ
11.6.3. Ventajas de RabbitMQ

CAPÍTULO 12 – Arquitecturas big data

12.1. Introducción
12.2. Apache Spark
12.2.1. Ecosistema de Apache Spark
12.2.2. Ventajas de Apache Spark
12.2.3. Arquitectura de Apache Spark
12.3. Procesamiento de datos en tiempo real
12.4. Apache Flink
12.4.1. Arquitectura de Apache Flink
12.4.2. Control de eventos en Apache Flink
12.4.3. Tipos de ventanas de procesamiento en Apache Flink

CAPÍTULO 13 – Observabilidad y monitorización de microservicios

13.1. Introducción
13.2. Observabilidad vs monitorización
13.3. Ventajas de la observabilidad
13.4. Métricas de rendimiento en aplicaciones
13.5. Herramientas DevOps para observabilidad
13.5.1. OpenTelemetry
13.6. Herramientas de monitorización

Sin existencias

Introducción

CAPÍTULO 1 – Introducción a DevOps

1.1. Ciclo de vida DevOps
1.2. Arquitecturas DevOps
1.2.1. Principios de arquitectura de la infraestructura
1.3. SRE (Site Reliability Engineering)
1.3.1. SRE vs DevOps
1.4. Metodologías de desarrollo
1.4.1. Code First
1.4.2. API First
1.5. Otras metodologías DevOps
1.5.1. DevSecOps
1.5.2. DataOps
1.5.3. MLOps
1.5.4. AIOps
1.5.5. GitOps

CAPÍTULO 2 – Arquitecturas basadas en microservicios

2.1. Introducción
2.2. Monolítica vs microservicios
2.3. Características de microservicios
2.3.1. Despliegue
2.3.2. Contenedores y orquestadores
2.3.3. Monitorización
2.3.4. Alta disponibilidad
2.3.5. Autoescalado
2.4. Componentes de una arquitectura de microservicios
2.5. Arquitecturas de microservicios
2.5.1. Metodología DDD (Domain-Driven Design)
2.5.2. Comunicación entre microservicios
2.5.3. Servicios HTTP y REST
2.5.4. Comunicación asíncrona basada en mensajes
2.5.5. Registro de servicios
2.5.6. Uso de API Gateway
2.5.7. Uso de GraphQL
2.5.8. Uso de gRPC
2.5.9. API REST vs GraphQL vs gRPC
2.6. Implementación de microservicios
2.7. Casos de uso

CAPÍTULO 3 – Patrones de diseño en microservicios

3.1. Introducción
3.2. Patrón Service Discovery
3.2.1. Client-side
3.2.2. Server-side
3.2.3. Soluciones para Service Discovery
3.2.4. Service Discovery con Spring Cloud Eureka
3.3. Patrón DDD
3.4. CQRS (Command Query Responsibility Segregation)
3.4.1. Eventos en CQRS
3.4.2. Casos de uso de CQRS
3.5. Event Sourcing para aplicaciones escalables
3.5.1. Casos de uso de Event Sourcing
3.6. Patrón Change Data Capture (CDC)
3.6.1. Kafka Streams
3.6.2. Debezium
3.7. Patrón Publish/Subscribe
3.7.1. Tópico compartido por n suscriptores
3.7.2. 1 tópico por suscriptor
3.7.3. n tópicos por suscriptor
3.7.4. n tópicos compartidos por cada suscriptor

CAPÍTULO 4 – Estrategias de despliegue en microservicios

4.1. Introducción
4.2. Despliegue de microservicios en producción
4.2.1. Despliegue blue-green
4.2.2. Despliegue canary
4.2.3. Despliegue en fases (rolling deployment)
4.3. Integración continua (CI)
4.4. Despliegue continuo (CD)
4.5. Entrega continua
4.5.1. Ventajas de la entrega continua
4.5.2. Fases del pipeline de entrega continua
4.5.3. Integración continua vs entrega continua
4.6. Herramientas CI/CD
4.7. Estrategias para organizar repositorios
4.7.1. Monorepo
4.7.2. Multirepo
4.7.3. Estrategia híbrida
4.8. Versionado de código
4.8.1. GitFlow
4.8.2. Trunk Based Development
4.8.3. Git Flow vs Trunk Based Development
4.9. Infraestructura como código (IaC)
4.9.1. Ventajas de la IaC
4.9.2. Buenas prácticas para securizar IaC
4.9.3. Tipos de infraestructura como código
4.9.4. Herramientas para IaC
4.9.5. Ansible
4.9.6. Puppet
4.9.7. Chef
4.9.8. Terraform

CAPÍTULO 5 – Generadores de microservicios

5.1. Introducción
5.2. Yeoman
5.3. Jhipster
5.3.1. Componentes principales de Jhipster
5.3.2. Jhipster online
5.4. Atomist
5.5. Spring Initializer

CAPÍTULO 6 – Microservicios en Java

6.1. Introducción
6.2. Spring Boot
6.2.1. Creación de proyectos con Spring Boot Suite
6.2.2. Spring Boot Actuators
6.2.3. Spring Security
6.3. Micronaut
6.3.1. Creación de microservicios con Micronaut
6.3.2. Inyección de dependencias e inversión de control
6.3.3. Descubrimiento de servicios
6.3.4. Ejemplo de aplicación con Micronaut
6.4. Quarkus
6.4.1. Creación de recursos y endpoints en Quarkus
6.4.2. Inyección de dependencias en Quarkus
6.4.3. Creando nuestro proyecto base en Quarkus
6.4.4. Desplegando una aplicación Quarkus en Kubernetes
6.5. GraalVM
6.5.1. Imágenes nativas
6.5.2. GraalVM vs Micronaut
6.6. Helidon

CAPÍTULO 7 – Programación reactiva

7.1. Introducción
7.2. Manifiesto reactivo
7.3. Patrón Observer
7.4. Reactive eXtensions (RX)
7.5. Frameworks de programación reactiva
7.5.1. Ecosistema Java / JVM
7.5.2. RxJava
7.5.3. Eclipse Vert.x

CAPÍTULO 8 – Tecnologías basadas en contenedores y orquestadores

8.1. Introducción
8.2. Introducción a los contenedores
8.2.1. Casos de uso y ventajas de los contenedores
8.2.2. Contenedores vs máquinas virtuales
8.3. Docker
8.3.1. Gestión de secretos en Docker
8.3.2. Podman
8.4. Orquestadores
8.5. Kubernetes
8.5.1. Arquitectura de Kubernetes
8.5.2. Componentes de Kubernetes
8.5.3. Trabajar con Kubernetes
8.5.4. Micro8ks
8.5.5. Otras soluciones para trabajar con Kubernetes en local
8.5.6. Patrones de diseño en Kubernetes
8.6. Plataformas de contenedores
8.6.1. Portainer
8.6.2. OpenShift
8.6.3. Rancher
8.7. Comunicaciones y enrutado con Traefik
8.7.1. Despliegue de Traefik
8.7.2. Traefik middlewares

CAPÍTULO 9 – Service mesh

9.1. Introducción
9.2. Definición de service mesh
9.3. Arquitectura de un service mesh
9.3.1. Data plane
9.3.2. Control plane
9.3.3. Casos de uso de service mesh
9.3.4. Implementaciones de un service mesh
9.4. Istio
9.4.1. Ventajas de Istio
9.4.2. Arquitectura de Istio
9.4.3. Gestión del tráfico en Istio
9.4.4. Seguridad en Istio
9.5. Linkerd
9.5.1. Funcionamiento de Linkerd
9.5.2. Casos de uso de Linkerd
9.5.3. Linkerd vs Istio

CAPÍTULO 10 – Arquitecturas serverless

10.1. Introducción
10.2. Ventajas de las arquitecturas serverless
10.3. Manifiesto Twelve-Factor App
10.4. Estrategias de despliegue en aplicaciones serverless
10.5. AWS Lambda
10.5.1. AWS API Gateway
10.5.2. Funciones lambda
10.5.3. Casos de uso en AWS Lambda
10.6. Serverless DevOps
10.6.1. Herramientas y plataformas serverless DevOps

CAPÍTULO 11 – Arquitecturas orientadas a eventos

11.1. Introducción
11.2. Introducción a los brokers de mensajería
11.2.1. Sistema de mensajería punto a punto
11.2.2. Sistema de mensajería de publicación y suscripción
11.3. Protocolos de mensajería
11.3.1. Advanced Message Queuing Protocol (AMQP)
11.3.2. Message Queue Telemetry Transport (MQTT)
11.4. Apache Kafka
11.4.1. Componentes de Apache Kafka
11.4.2. Plataforma de Apache Kafka
11.4.3. Requisitos para utilizar Apache Kafka
11.4.4. Iniciando Apache Kafka con Docker
11.4.5. Implementar productor y consumidor en Python
11.4.6. Herramientas para monitorizar Apache Kafka
11.5. Apache Pulsar
11.5.1. Apache Pulsar con Python
11.5.2. Apache Pulsar vs Apache Kafka
11.6. RabbitMQ
11.6.1. Componentes de RabbitMQ
11.6.2. Arquitectura de RabbitMQ
11.6.3. Ventajas de RabbitMQ

CAPÍTULO 12 – Arquitecturas big data

12.1. Introducción
12.2. Apache Spark
12.2.1. Ecosistema de Apache Spark
12.2.2. Ventajas de Apache Spark
12.2.3. Arquitectura de Apache Spark
12.3. Procesamiento de datos en tiempo real
12.4. Apache Flink
12.4.1. Arquitectura de Apache Flink
12.4.2. Control de eventos en Apache Flink
12.4.3. Tipos de ventanas de procesamiento en Apache Flink

CAPÍTULO 13 – Observabilidad y monitorización de microservicios

13.1. Introducción
13.2. Observabilidad vs monitorización
13.3. Ventajas de la observabilidad
13.4. Métricas de rendimiento en aplicaciones
13.5. Herramientas DevOps para observabilidad
13.5.1. OpenTelemetry
13.6. Herramientas de monitorización

9788426741158 | 978-84-26741-15-8

ISBN: 9788426741158

Fecha de Publicación: 24/01/2026

Encuadernación: Rústica

Idioma: Castellano

Edad de interés:

Número de páginas: 488

Peso: g

Dimensiones: 240mm x 170mmmm

Materias: Programación informática/desarrollo de software | Programación informática/desarrollo de software

Carrito de compra