Introducción al curso

1

Introducción al curso de Profesional de Arquitectura de Software

Atributos de calidad

2

Definición

3

Atributos: Idoneidad funcional

4

Atributos: Eficiencia de ejecución

5

Atributos: Compatibilidad

6

Atributos: Usabilidad

7

Atributos: Confiabilidad

8

Atributos: Seguridad

9

Atributos: Mantenibilidad

10

Atributos: Portabilidad

11

Tensiones entre atributos

12

Analizando PlatziServicios

Patrones de arquitectura

13

Patrones monolíticos vs distribuidos

14

Patrones: Modelo Vista Controlador

15

Patrones: Capas

16

Patrones: Orientado a eventos / Provisión de eventos.

17

Patrones: Microkernel - Plug-ins

18

Patrones: Comparte-nada

19

Patrones: Microservicios

20

Patrones: CQRS

21

Patrones: Hexagonal - Puertos y adaptadores

22

Patrones: Diseño orientado al dominio

23

Combinando patrones de arquitectura

24

Analizando nuevamente PlatziServicios

Diseño de una arquitectura

25

Pararse en hombros de gigantes

26

Herramientas y partes de un diseño: Tipos de conectores

27

Conectores: Llamado asincrónico / sincrónico. Modelo Cliente servidor.

28

Conectores: Enrutador, difusión

29

Conectores: Pizarra, repositorio, colas, modelo PUBSUB

30

Escenarios y tácticas

31

Escenarios: Disponibilidad, detección, reparación

32

Escenarios: Reintroducción y prevención

33

Escenarios: Mantenibilidad

34

Escenarios: Prevenir efectos dominó y diferir enlace

35

Escenarios: Eficiencia de ejecución

36

Escenarios: Seguridad

37

Escenarios: Capacidad de prueba

38

Escenarios: Usabilidad

39

Validar las decisiones de diseño: Arquitectura en evolución

40

Último análisis a PlatziServicios

Modelado y documentación de arquitectura

41

Cómo comunicar la arquitectura: Vistas y Puntos de vista

42

Documentación vs implementación

43

Conclusiones del curso

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Escenarios: Disponibilidad, detección, reparación

31/43
Recursos
  • Escenario de disponibilidad. En este caso el estimulo es la falla, algo pasó que compromete la disponibilidad. vamos a ver las diferentes tácticas que podemos usar para trabajar con este posible escenario.

  • Detección, en este caso contamos con varias tácticas, la primera es la de ping / eco. que se trata de como un componente envía un mensaje genérico a otro componente para saber si el otro componente esta disponible o no. Latido, esta táctica es similar pero en vez de que haya interacción entre dos componentes, cada uno de estos envían una señal propia que indica que continua activo. Excepciones.

  • Recuperación, como podemos estar listos para que si algo falla podamos recuperar rápidamente el sistema.

  • Reintroducción

  • Prevención, qué podemos hacer para prevenir el estado de falta de disponibilidad.

Aportes 9

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Escenarios.

Disponibilidad:
Estimulo -> Falla
Tácticas -> Ocultar la falla o reparar el sistema
Tipos de tácticas en disponibilidad:

  • Detección
    • Ping / Eco
    • Latido
    • Excepciones
  • Recuperación: Preparar / Reparar
    • Votación
    • Redundancia activa
    • Redundancia pasiva
    • Repuesto
  • Recuperacion: Reintroducción
  • Prevención

Apuntes:

Disponibilidad, detección, reparación

Disponibilidad. Nuestro estímulo es la falla.

Detección. Detectar si perdimos disponibilidad o si hay alguna actividad que está sucediendo en nuestro sistema que está comprometiendo la disponibilidad.
• Ping / Eco. Se trata de cómo un componente va a mandar un mensaje genérico a otro componente para que el componente le responda. Esa respuesta simplemente es una forma de saber si el componente al que nos comunicamos está disponible o no.
• Latido. Un componente emite un mensaje periódicamente para notificar disponibilidad, de esta forma podemos tener alertas de que cuándo un componente no notifica en x tiempo sabemos que perdió disponibilidad.
• Excepciones. Nos ayuda a darnos cuenta cuándo se pudo haber comprometido la disponibilidad y exactamente por qué.
Reparación. Cómo estar listo para que si algo falla lo podamos reparar de la forma más rápida posible, ya sea a través de interacción con un operador o incluso que el sistema pueda repararse solo.
• Votación. Significa que tenemos múltiples componentes que tienen la misma funcionalidad pero sin embargo no podemos confiar que todos respondan lo mismo, a través de un componente central que pueda evaluar esa respuesta podemos decidir si un componente está en falta o no.
• Redundancia activa. Trata de garantizar que todos los mensajes de entrada le lleguen a todos los componentes redundantes al cluster.
• Redundancia pasiva. En vez que la comunicación se haga a todos los componentes, la comunicación se hace a un componente y ese es responsable de sincronizar con otros componentes que están escuchando de manera pasiva estos cambios.
• Repuesto. Nos dice que cuándo algo falle podemos remplazar todo el sistema o una gran parte del sistema por un sistema de tipo Backup que tengamos preparado para seguir respondiendo.
Reintroducción. Cómo podemos hacer dado una falla de disponibilidad para reintroducir el sistema y que vuelva a estar disponible.
Prevención. Qué podemos hacer para prevenir el estado de falta de disponibilidad.

Algo sucedió que compromete la disponibilidad, entonces se crean tácticas para controlar esta disponibilidad. Las tácticas son:

  • Detección: Perdimos disponibilidad o existe algo que la podía comprometer. Tácticas:
  1. Ping / Eco
  2. Latido
  3. Excepciones
  • Recuperación: Se concentra en que si algo falla, se pueda reparar de la manera mas rápida posible.
    Tácticas:
  1. Votación
  2. Redundancia Activa
  3. Redundancia pasiva
  • Re-introducción: Dado una falla el sistema se concentra en como volver a restablecer el sistema.
  • Prevención: Que se puede hacer para previnir la falta de disponibilidad.

Escenario de disponibilidad. En este caso el estimulo es la falla, algo pasó que compromete la disponibilidad. Existen diferentes tácticas que podemos usar para trabajar con este posible escenario, las cuales son:

1.- Detección. Detectar si perdimos disponibilidad o si hay alguna actividad que está sucediendo en nuestro sistema que está comprometiendo la disponibilidad. En este caso contamos con varias tácticas que son:
a) Ping / Eco. Se trata de cómo un componente va a mandar un mensaje genérico a otro componente para que el componente le responda. Esa respuesta simplemente es una forma de saber si el componente al que nos comunicamos está disponible o no.
b) Latido. Un componente emite un mensaje periódicamente para notificar disponibilidad, de esta forma podemos tener alertas de que cuándo un componente no notifica en x tiempo sabemos que perdió disponibilidad.
c) Excepciones. Nos ayuda a darnos cuenta cuándo se pudo haber comprometido la disponibilidad y exactamente por qué.

2.- Recuperación. (Preparar/Reparar). La forma en la cual podemos estar listos para que si algo falla podamos recuperar rápidamente el sistema. (Votación, Redundancia activa, Redundancia pasiva, Repuesto).
a) Votación. Significa que tenemos múltiples componentes que tienen la misma funcionalidad pero sin embargo no podemos confiar que todos respondan lo mismo, a través de un componente central que pueda evaluar esa respuesta podemos decidir si un componente está en falta o no.
b) Redundancia activa. Trata de garantizar que todos los mensajes de entrada le lleguen a todos los componentes redundantes al cluster.
c) Redundancia pasiva. En vez que la comunicación se haga a todos los componentes, la comunicación se hace a un componente y ese es responsable de sincronizar con otros componentes que están escuchando de manera pasiva estos cambios.
d) Repuesto. Nos dice que cuándo algo falle podemos remplazar todo el sistema o una gran parte del sistema por un sistema de tipo Backup que tengamos preparado para seguir respondiendo.

Me gustaria saber que libros recomiendan para aprender mas en profundidad este tema.
Grs

Disponibilidad

En este caso el estimulo es la falla, algo pasó que compromete la disponibilidad. vamos a ver las diferentes tácticas que podemos usar para trabajar con este posible escenario.

  • Deteccion

    Detectar si perdimos disponibilidad o si hay alguna actividad que está sucediendo en nuestro sistema que está comprometiendo la disponibilidad.

    1. Ping / eco: que se trata de como un componente envía un mensaje genérico a otro componente para saber si el otro componente esta disponible o no; Esta tactica nos permite entender cuando un componente es cliente de otro.
    2. Latido: esta táctica es similar pero en vez de que haya interacción entre dos componentes, cada uno de estos envían una señal propia que indica que continua activo; cuando un componente no notifica en un limite de tiempo sabemos que perdio disponibilidad.
    3. Excepciones: el manejo y registo de excepciones nos ayuda a resolver preguntas relacionadas con cuando y por que se vio afectada la disponibilidad.
  • Recuperacion: Preparar / Reparar

    Como podemos estar listos para que si algo falla podamos recuperar rápidamente el sistema.

    1. Votación: sucede cuando tenemos multiples componentes con la misma funcionalidad sin embargo no podemos confiar en que todos responda lo mismo; evaluamos por medio de un componente central si todos tienen la misma respuesta de esta manera si uno falla podemos sacarlo del cluster de componentes y reemplazarlo por uno nuevo.
    2. Redundancia activa: No evalua el estado del componente sino que trata de garantizar que todos los mensajes de entrada lleguen a cada componente del cluster. Cuando un componente falla lo podemos cambiar y nuevamente estar disponible en milisegundos.
    3. Redundacia pasiva: La comunicacion solo se hace con un componente del cluster y es el responsable de sincronizar a los otros componentes que escuchan pasivamente. Ej: en las bases de datos donde tenemos una base de datos lider y una seguidora. escribe y lee mientras que la base de datos seguidora recibe los cambios de estado.
    4. Repuesto: cuando algo falle podemos reemplazar una parte o todo el sistema por un backup que tenemos preparado, no esta activo debe estar puesto en linea, mientras va estar como receptor de las actualizaciones y necesita una inicializacion. Es la mas radical de todas.

Escenario de disponibilidad. En este caso el estimulo es la falla, algo pasó que compromete la disponibilidad. vamos a ver las diferentes tácticas que podemos usar para trabajar con este posible escenario.

Detección, en este caso contamos con varias tácticas, la primera es la de ping / eco. que se trata de como un componente envía un mensaje genérico a otro componente para saber si el otro componente esta disponible o no. Latido, esta táctica es similar pero en vez de que haya interacción entre dos componentes, cada uno de estos envían una señal propia que indica que continua activo. Excepciones.

Escenarios.
🤖
Disponibilidad:
Estimulo -> Falla
Tácticas -> Ocultar la falla o reparar el sistema.
🤖
Tipos de tácticas en disponibilidad:
• Detección
o Ping / Eco
o Latido
o Excepciones
• Recuperación: Preparar / Reparar
o Votación
o Redundancia activa
o Redundancia pasiva
o Repuesto
• Recuperacion: Reintroducción
• Prevención

a la vida real
la disponibilidad es cuando mediimos el famoso endpoint
/ o /ping usando un balanceador de carga para conocer si el recurso esta disponible o no,
Si no responde o la latencia es alta se entra en por ejemplo bajar la version o crear una nueva entidad a la que se le pueda apuntar y mejorar su tiempo de respuesta