Una de las tendencias más actuales en el desarrollo de aplicaciones informáticas son los microservicios. Este paradigma de programación se encuentra prácticamente por todas partes y compañías como Google, Netflix o Amazon, por citar algunas, se han subido al carro de los microservicios desde hace ya algunos años. En este libro encontrarás una visión básica y aplicada sobre el desarrollo de aplicaciones web basadas en microservicios. Se incluye un ejemplo práctico completo, disponible en la nube, que el lector podrá ir construyendo desde cero a medida que va avanzando en su dominio de este tipo de aplicaciones. Es, sin duda, una obra eminentemente práctica con explicaciones teóricas allá donde se ha estimado necesario.
- Cover
- Title page
- Copyright page
- Índice
- Autores
- Agradecimientos
- Capítulo 1. Introducción
- 1.1 A quién va destinado este libro
- 1.2 Estructura de este libro
- 1.3 Información adicional y garantía
- Capítulo 2. Microservicios. conceptos básicos
- 2.1 Arquitecturas monolíticas
- 2.2 Escalado de aplicaciones
- 2.3 Microservicios
- 2.4 Comunicación entre microservicios
- 2.4.1 Comunicación cliente-microservicios
- 2.4.2 Descubrimiento de microservicios
- 2.4.3 Comunicación entre microservicios
- 2.5 Arquitectura de microservicios
- 2.5.1 Modelo de referencia
- 2.5.2 Modelo de implementación
- 2.5.3 Modelo de despliegue
- 2.6 ReFactorización de una aplicación monolítica a microservicios
- Capítulo 3. Herramientas de desarrollo
- 3.1 EcLipse
- 3.2 Gradle
- 3.2.1 Nociones básicas de gradle
- 3.2.2 Usando Gradle desde Eclipse
- 3.3 spring boot
- 3.3.1 Incorporando en plugin de spring boot a nuestro proyecto gradle
- 3.4 Resumen de instalación y uso del entorno
- Capítulo 4. Desarrollo de mi primer microservicio
- 4.1 API restful con spring boot
- 4.2 Registro de microservicios con eureka
- 4.2.1 Creación del servidor Eureka
- 4.2.2 Registro de un microservicio
- 4.2.3 Resumen del registro de microservicios
- 4.3 CoNsumo de un microservicio
- 4.4 Configuración avanzada de eureka
- 4.5 Configuración en la nube
- 4.5.1 Configuración de los clientes del servidor de configuración
- 4.5.2 Interacción con el servidor de configuraciones
- 4.5.3 Seguridad
- Capítulo 5. Balanceo de carga, tolerancia a fallos, y redireccionamintos
- 5.1 RiBbon
- 5.1.1 El balanceador yla lógica de zonas
- 5.1.2 Reglas de balanceo
- 5.2 Hytrix
- 5.2.1 Netflix Hystrix Dashboard y Turbine
- 5.3 ZUUL
- Capítulo 6. Oauth2
- 6.1 Conceptos básicos de oauth2
- 6.2 Oauth2 en una arquitectura de microservicios
- 6.2.1 Creación del servidor UAA con spring
- 6.2.2 Configurando microservicios como recursos
- 6.2.3 Conexión entre microservicios
- 6.2.4 Preparando zuul para propagar solicitudes OAuth
- Capítulo 7. Acceso a datos en microservicios. aspectos de diseño
- 7.1 ArQuitecturas basadas en eventos
- 7.2 Patrón saga
- 7.2.1 Transacción saga con coreografía
- 7.2.2 Transacción saga con orquestación
- 7.3 Consultas sobre datos relacionados
- 7.3.1 API facade composition
- 7.3.2 Command Query Responsibility Segregation (CQRS)
- Capítulo 8. Testing de microservicios
- 8.1 La pirámide de cohn
- 8.2 Niveles de pruebas
- 8.2.1 Pruebas unitarias
- 8.2.2 Pruebas de integración
- 8.2.3 Pruebas de la API
- 8.2.4 Pruebas de componentes
- 8.2.5 Pruebas E2E (End-to-End)
- 8.3 ImPlementación de las pruebas
- 8.3.1 Pruebas unitarias
- 8.3.2 Pruebas de integración
- 8.3.3 Pruebas E2E
- Capítulo 9. despliegue de microservicios
- 9.1 CoNceptos básicos de docker
- 9.1.1 Repositorios Docker
- 9.1.2 Imágenes
- 9.1.3 Contenedores
- 9.1.4 Volúmenes
- 9.1.5 Docker Compose
- 9.2 Preparación del entorno
- 9.3 Dockerización de microservicios
- 9.3.1 Preparación de la estructura de directorios yficheros
- 9.3.2 Dependencias entre contenedores
- 9.3.3 Creación de la imagen base
- 9.3.4 Creación de la imagen y contenedor para el servidor de configuración
- 9.3.5 Generación de ficheros jar de microservicios y Eureka
- 9.3.6 Creación de la imagen y contenedor para el servidor Eureka
- 9.3.7 Ficheros de configuración del github
- 9.3.8 Creación de la imagen ycontenedores para los microservicios
- 9.3.9 Definición del Docker Compose
- Material adicional
- Índice alfabético