Qué es la arquitectura microkernel
Clase 17 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
04:01 min - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
04:04 min - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
03:14 min - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
Viendo ahora - 18

Arquitectura Comparte Nada con Map Reduce
02:29 min - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
04:10 min - 22

Qué son los contextos delimitados en DDD
05:34 min - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
01:55 min - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
05:59 min - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
La arquitectura microkernel ofrece una forma clara de extender y cambiar funcionalidades en tiempo de ejecución mediante un core estable y plugins que se conectan a través de puntos de conexión. Ideal cuando se requiere incorporar o quitar capacidades sin reinstalar, y muy común en IDEs como Eclipse.
¿Qué es el patrón microkernel y cómo funciona?
El patrón, también llamado arquitectura de plugins, organiza la aplicación en un core central y puntos de introducción donde se conectan componentes externos. Estos plugins permiten expandir o modificar la funcionalidad de forma dinámica, incluso cuando la aplicación ya está desplegada.
- Core estable: núcleo con la lógica esencial.
- Puntos de conexión: interfaces para incorporar plugins.
- Plugins: módulos que se agregan o quitan sin alterar el core.
- Cambio en tiempo de ejecución: posibilidad de activar o desactivar funcionalidades sobre la marcha.
Esta separación asegura que el núcleo permanezca limpio, mientras los plugins aportan capacidades específicas según las necesidades del usuario o del entorno.
¿Monolítico o distribuido según el despliegue?
El mismo patrón puede verse de dos maneras, según cómo se gestionen los plugins:
- Enfoque monolítico: el core y todos los plugins se despliegan juntos. Ideal cuando el set de funcionalidades es estable y conocido desde el inicio.
- Enfoque distribuido: los plugins se pueden cambiar en tiempo de ejecución. Útil si las necesidades varían o si se desea activar módulos bajo demanda.
En ambos casos, la clave es la flexibilidad para adaptar la aplicación sin reescrituras ni reinicios complejos.
¿Qué ejemplos prácticos demuestran su valor?
Los IDEs de programación ilustran muy bien este patrón: aprovechan plugins para integrar múltiples tecnologías en su stack de funcionalidades y ofrecer exactamente lo que el programador necesita.
¿Cómo aplican los IDEs los plugins?
- Abrir un archivo JavaScript y usar un plugin que interpreta el lenguaje y asiste al programador.
- Activar soporte para otros lenguajes, como Scala o SAS, mediante plugins dedicados.
- Conectar herramientas de desarrollo como Git, Docker o Gradle a través de integraciones plugin.
En el caso de Eclipse, el sistema de plugins es el corazón del IDE: permite expandirse y ofrecer al desarrollador las herramientas específicas que requiere en cada proyecto.
¿Qué habilidades y conceptos se refuerzan con este patrón?
- Diseñar un core mínimo y estable.
- Definir puntos de conexión claros para extensiones.
- Gestionar plugins de forma dinámica tras el despliegue.
- Integrar lenguajes y herramientas en un único stack.
- Equilibrar entre despliegue monolítico y operación distribuida.
¿Tienes ejemplos de plugins o integraciones que te hayan facilitado el trabajo? Comparte tu experiencia y dudas en los comentarios.