Patrones de Arquitectura en Proyectos de Crecimiento Empresarial
Clase 24 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
- 2

Atributos de Calidad en Sistemas: Definición y Medición
01:49 - 3

Idoneidad Funcional: Completitud, Exactitud y Pertinencia
02:52 - 4

Eficiencia de Ejecución en Sistemas Informáticos
04:14 - 5

Compatibilidad en Sistemas: Interoperabilidad y Coexistencia
03:49 - 6

Subcaracterísticas de Usabilidad en Desarrollo de Software
08:14 - 7

Confiabilidad de Sistemas: Madurez, Disponibilidad, Resiliencia y Recuperación
05:38 - 8

Seguridad de Usuarios en Desarrollo de Software
04:01 - 9

Subcaracterísticas de Mantenibilidad en Sistemas de Software
06:28 - 10

Medición de Adaptabilidad en Sistemas de Software
02:48 - 11

Relación y Tensión entre Atributos de Calidad en Sistemas de Software
04:04 - 12

Atributos de Calidad en Arquitectura de Software
07:00
- 13

Patrones de Arquitectura Monolítica y Distribuida
02:50 - 14

Modelo Vista Controlador: Separación de Responsabilidades en Aplicaciones
05:38 - 15

Arquitectura de Capas: Diseño y Comunicación entre Niveles
03:14 - 16

Patrones de Arquitectura Orientada a Eventos y Event Sourcing
06:17 - 17

Patrón de Arquitectura MicroKernel y su Implementación en IDEs
01:52 - 18

Arquitectura "Comparte Nada": Optimización y Procesamiento de Datos
02:29 - 19

Patrón de Microservicios en Arquitectura de Software
03:57 - 20

Patrón CQRS para Separación de Consultas y Comandos
03:24 - 21

Arquitectura Hexagonal: Diseño y Aplicación Práctica
04:10 - 22

Diseño Orientado al Dominio: Conceptos y Aplicaciones Prácticas
05:34 - 23

Patrones de Arquitectura para Aplicaciones Escalables y Modulares
09:22 - 24

Patrones de Arquitectura en Proyectos de Crecimiento Empresarial
07:59
- 25

Diseño de Arquitecturas a Medida: Herramientas y Estrategias
02:18 - 26

Tipos de Conectores en Arquitectura de Software
06:18 - 27

Conectores Asíncronos y Sincrónicos: Implementación y Uso Práctico
03:05 - 28

Diferencias entre Enrutadores y Difusores en Comunicación de Mensajes
01:55 - 29

Conexión de Productores y Consumidores con Colas de Mensajes
03:52 - 30

Framework de Diseño Orientado a Atributos: Escenarios y Tácticas
01:55 - 31

Tácticas para Mejorar la Disponibilidad de Sistemas
05:59 - 32

Tácticas para Mejorar la Disponibilidad del Sistema
04:10 - 33

Tácticas para Mejorar la Mantenibilidad del Software
06:16 - 34

Prevención de Efectos Dominó en Mantenibilidad de Software
12:17 - 35

Estrategias para Mejorar la Eficiencia de Ejecución en Sistemas
09:15 - 36

Tácticas de Seguridad Informática para Detectar, Resistir y Recuperarse de Ataques
09:03 - 37

Estrategias para Mejorar la Capacidad de Prueba de Software
05:14 - 38

Tácticas de Usabilidad en Diseño de Interfaces de Usuario
08:20 - 39

Validación de Arquitectura con ATAM y Métricas de Calidad
06:34 - 40

Diseño de Arquitectura para Startups y Empresas Escalables
10:30
¿Qué patrones de arquitectura son ideales para la etapa de startup de Platzi?
Cuando pensamos en el inicio de un proyecto, es crucial establecer una base sólida que permita el crecimiento y la adaptación futura. En el contexto de Platzi Servicios, se comienza tradicionalmente con un estilo de arquitectura cliente-servidor. Aquí, se mencionan dos patrones clave que podrían ser utilizados:
-
Modelo vista-controlador (MVC): Esta es una arquitectura monolítica simple que es popular en muchos frameworks y librerías open source. La ventaja de este enfoque es que facilita el trabajo con un equipo pequeño e integrado, además de que la curva de aprendizaje es más accesible.
-
Arquitectura en capas: Ofrece una separación más clara entre la presentación y la lógica de negocio, lo que permite un enfoque más mantenible y dirigido al dominio del problema. Este patrón también respeta el estilo arquitectónico cliente-servidor.
¿Cómo se adapta la arquitectura cuando Platzi comienza a crecer?
A medida que una empresa crece, también lo hace la complejidad de sus necesidades. En esta etapa, es necesario implementar patrones de arquitectura que permitan manejar mejor el aumento de la demanda y la sofisticación de las operaciones. Algunas de las soluciones propuestas incluyen:
-
Arquitectura compartenada: Ideal para procesar grandes volúmenes de datos. Se basa en dividir la base de datos transaccional en partes independientes que luego pueden ser procesadas por diferentes aplicaciones sin compartir un recurso común.
-
Arquitectura basada en eventos: Permite registrar eventos continuamente en lugar de procesar todo en un lote. Esto no solo simplifica la separación entre servicios, sino que también mejora la eficiencia al manejar transacciones y reportes.
-
Arquitectura de microservicios: Aunque ambiciosa al principio, se convierte en una opción valiosa cuando el número de desarrolladores crece. Este enfoque permite crear servicios específicos y conectarlos mediante un bus de eventos, facilitando el desarrollo en paralelo y con menos acoplamiento.
¿Cómo se manejan los desafíos arquitectónicos cuando Platzi se convierte en una empresa de gran escala?
Cuando Platzi Servicios alcanza un status de gran escala, enfrentan desafíos globales como la traducción y problemas de uso horario. Para abordar estos retos, los patrones arquitectónicos deben permitir una alta modularización y adaptabilidad. Las siguientes arquitecturas son recomendables:
-
Microservicios: Este patrón es ideal para mantener un esquema distribuido y gestionar adecuadamente la carga de distintos servicios. Por ejemplo, permitiría redundancia y despliegue específico según las demandas de cada servicio particular dentro del sistema.
-
Provisión de eventos para reportes: Transformar el cálculo y almacenamiento de reportes hacia una base de datos de eventos. Esto permitiría generar reportes más específicos por cliente, basándose en eventos históricos.
-
Separación entre consultas y comandos: Fundamental para sistemas que requieren distribución y diferentes cargas para lectura y escritura. Este enfoque permite diferenciar momentos de escritura (transacciones) de aquellos de lectura (consultas frecuentes), optimizando la eficiencia y el rendimiento del sistema.
El proceso de diseño de la arquitectura debe considerar una combinación de patrones para satisfacer las necesidades específicas de cada etapa del crecimiento empresarial. Estos ajustes aseguran que la empresa no solo se adapte a las demandas actuales, sino que también esté preparada para evolucionar con el tiempo.