Programa del Curso
Introducción
- Arquitectura de sistemas y servicios, PaaS y diseño nativo de la nube
Descripción general de la arquitectura de sistemas monolíticos
- Ejecución de toda una funcionalidad de aplicaciones monolíticas en un solo proceso
- ScalaCapacidad a través de la replicación en varios servidores
- Protocolos utilizados en sistemas monolíticos: EAI, CORBA, etc.
Información general sobre los servicios web
- Arquitectura Orientada a Servicios (SOA) y Arquitectura Microservices
Service-Oriented Architecture (SOA)
- Beneficios y costos de SOA
- Éxitos y fracasos en la implementación de SOA
- Mensajería y ESB
- Infraestructura y herramientas de soporte SOA
Cómo Microservices Implementar conceptos de servicio web
- Haz una cosa y hazla bien
- DevOps
- Implementación y entrega continuas (integración continua, proceso de compilación continua, etc.)
- Protocolos ligeros
Protocolos y estándares de microservicios
- HTTP, JMS, AMQP, Websockets, JSON, etc.
Marcos de desarrollo para la construcción Microservices
- Frameworks basados en Java (Spring Cloud)
- Frameworks basados en Javascript (Seneca)
Descomposición de una aplicación monolítica
- Desarrollo de aplicaciones implementables de forma independiente
- Organización de aplicaciones de microservicios en torno a las capacidades empresariales
- Caso práctico: Migración de una aplicación monolítica a tres microservicios principales
Configuración de un Spring Cloud entorno de desarrollo
- Configuración de Docker y Docker Compose
- Configuración de variables de entorno
Descripción general de Spring Cloud y Spring Boot
- Spring Cloud subproyectos: Config Server & Bus, Eureka, Ribbon, Feign e Hystrix
- Bota de primavera
Creación de una aplicación Spring Boot
Gestión centralizada y versionada de la configuración con Spring Cloud Config
Actualizaciones de configuración dinámica con el bus Spring Cloud
Descubrimiento de servicios con Eureka
Equilibrio de carga con Ribbon
Aplicación de disyuntores con Hystrix
Clientes REST declarativos con Feign
Trabajar con API Gateway
Protección de una aplicación de microservicios
Seguimiento de microservicios para descubrir latencias
Implementación Microservices
- Contenedores (Docker, K8N, LXC, etc...)
- Gestión de la configuración (Ansible, etc...)
- Detección de servicios
- Supervisión y gestión Microservices
- Infraestructura para Microservices
Nube y Auto Scalabilidad de los microservicios
- Redundancia de microservicios y conmutación por error
- Escalabilidad del rendimiento de los microservicios
- Escalabilidad automática
- Implementación de microservicios en OpenStack, AWS y otras plataformas en la nube
Solución de problemas comunes de aplicaciones distribuidas
- Complejidad del ecosistema
- Rendimiento de la red
- Seguridad
- Despliegue
- Ensayo
- Nanoservicios
Consideraciones finales para la construcción de sistemas listos para la producción
- Hacer que el sistema sea fácil para los principiantes
- Completar el sistema para que pueda servir como base para las aplicaciones empresariales
Resumen y conclusión
Requerimientos
- Comprensión de la ingeniería de software y sistemas
- Experiencia en desarrollo Java
- Experiencia con Spring Framework
Audiencia
- Java Desarrolladores que deseen crear e implementar microservicios rápidamente
- Arquitectos de sistemas que deseen implementar una arquitectura de microservicios