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

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Escenarios: Eficiencia de ejecuci贸n

35/43
Recursos

Aportes 8

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Apuntes:

Eficiencia de ejecuci贸n

En el caso de eficiencia de ejecuci贸n vamos a tener eventos ingresando a nuestro sistema como est铆mulo y luego vamos a trabajar sobre las t谩cticas para controlar esta eficiencia para que la respuesta sea dentro del tiempo esperado.

Demanda de recursos. Trata sobre cu谩ndo entra un evento, c贸mo hacemos para que ese evento tenga los recursos disponibles y cu谩nto de esos recursos necesita.
鈥 Mejorar la eficiencia computacional. Podemos analizar nuestros algoritmos y podemos analizar nuestro procedimiento para encontrar cu谩les son los puntos en d贸nde no estamos siendo eficientes.
鈥 Reducir sobrecarga. Habla sobre cu谩ntos pasos o qu茅 acciones estamos tomando para una misma tarea o responder a un mismo evento.
鈥 Manejar tasa de eventos. Cu谩ntos eventos vamos a emitir a un componente espec铆fico y si es necesario ser tan fino en estos eventos. Si podemos reducir esa tasa de eventos podemos optimizar esa comunicaci贸n.
鈥 Frecuencia de muestreo. Si yo s铆 estoy recibiendo todo este stream, c贸mo puedo hacer para decidir procesar esos eventos en una forma grupal, entonces en lugar de hacer una tarea por evento puedo hacer una tarea cada cierta cantidad de tiempo y agrupar todos los eventos en una tarea 煤nica puedo hacer mejor uso de los recursos procesando una sola vez un grupo de eventos.

Gesti贸n de recursos. C贸mo ponemos disponibles m谩s o menos recursos y c贸mo hacemos para que est茅n cu谩ndo se le necesitan.
鈥 Concurrencia. Trabajamos sobre c贸mo paralelizar nuestro proceso para que se pueda responder en menor tiempo usando recursos de forma paralela o en menor tiempo.
鈥 R茅plicas. C贸mo podemos duplicar el procesamiento o los datos para hacer m谩s accesibles estos recursos a nuestro proceso.
鈥 Aumentar recursos. El poder medir y decidir cu谩ndo crecer la cantidad de recursos que tenemos disponibles.

Arbitraje de recursos. En caso de conflicto, en caso de haber m煤ltiples eventos necesitando los mismos recursos c贸mo decidimos cu谩les tienen prioridad.
鈥 Pol铆ticas de planificaci贸n de tareas. Yo puedo decidir que cada recurso tiene que responder en el momento entonces tiene que tener un acceso sincr贸nico, un acceso prioritario a cada uno de esos recursos o puede postergar tareas y agendarlas para que se hagan en un momento futuro. Incluso puedo priorizar esos pedidos paralelos y decidir si un pedido es m谩s importante que otro o el orden en que se van a resolver.

Escenario: Eficiencia de ejecuci贸n.
Est铆mulos: Eventos
T谩cticas para controlar la eficiencia.

  • Demanda de recursos
    • Mejorar la eficiencia computacional
    • Reducir la sobrecarga
    • Manejar la tasa de eventos
    • Frecuencia de muestreo
  • Gesti贸n de recursos
    • Concurrencia
    • Replicas
    • Aumentar recursos
  • Arbitraje de recursos
    • Pol铆ticas de planificaci贸n de tareas

La respuesta se espera dentro del tiempo estimado.

Conforme avanza el curso, mejor se pone.
Est谩s son t谩cticas geniales que no aprendes en la escuela y dificilmente las aprendas en el trabajo.

Ojo, la definici贸n de concurrencia no es correcta. Esa defici贸n que da Guido es Paralelismo. Concurrencia se trata de ver qu茅 estrateg铆a me sirve cuando tengo muchos componentes cuando se quieren comunicar con un mismo recurso o memoria

Escenarios: Eficiencia de ejecuci贸n

El estimulo son eventos que ingresan al sistema, las t谩cticas permiten controlar los eventos dando respuestas dentro del tiempo esperado.


Las siguientes t谩cticas son importantes ser priorizadas ya que es com煤n en la pr谩ctica que creer en la eficiencia de ejecucci贸n es algo muy prioritario siempre, sin embargo esto puede afectar a otros atributos si no se toma cuidado.


Familias:

  • Demanda de Recursos: Cuando entra un evento como hacemos para que el evento tenga los recursos disponibles.
    T谩cticas:
  1. Mejorar la eficiencia
  2. Reducir Sobrecarga
  3. Manejar tasa de eventos
  4. Frecuencia de Muestreo
  • Gesti贸n de Recursos: Como hacemos disponibles los recursos y como hacemos para que est茅n presentes cuando se necesiten.
    T谩cticas:
  1. Concurrencia
  2. R茅plicas
  3. Aumentar recursos
  • Arbitraje de Recursos: En caso de existir multiples eventos pidiendo el mismo recurso, como decidimos cuales tienen prioridad.
    T谩cticas:
  1. Pol铆ticas de planificaci贸n de tareas.

Eficiencia de ejecuci贸n est谩 relacionada con el tiempo de reacci贸n del sistema entre un est铆mulo y una respuesta. Adem谩s de la forma en que usa sus recursos, por ejemplo espacio de memoria, servidores, entre otros. Y su capacidad, es decir, cu谩les son sus l铆mites de tolerancia ante una exigencia en un momento cr铆tico.

Eficiencia de ejecuci贸n
猸愶笍猸愶笍猸愶笍
En el caso de eficiencia de ejecuci贸n vamos a tener eventos ingresando a nuestro sistema como est铆mulo y luego vamos a trabajar sobre las t谩cticas para controlar esta eficiencia para que la respuesta sea dentro del tiempo esperado.
Demanda de recursos. Trata sobre cu谩ndo entra un evento, c贸mo hacemos para que ese evento tenga los recursos disponibles y cu谩nto de esos recursos necesita.
馃

  • 鈥 Mejorar la eficiencia computacional. Podemos analizar nuestros algoritmos y podemos analizar nuestro procedimiento para encontrar cu谩les son los puntos en d贸nde no estamos siendo eficientes.
    馃

  • 鈥 Reducir sobrecarga. Habla sobre cu谩ntos pasos o qu茅 acciones estamos tomando para una misma tarea o responder a un mismo evento.
    馃

  • 鈥 Manejar tasa de eventos. Cu谩ntos eventos vamos a emitir a un componente espec铆fico y si es necesario ser tan fino en estos eventos. Si podemos reducir esa tasa de eventos podemos optimizar esa comunicaci贸n.
    馃

  • 鈥 Frecuencia de muestreo. Si yo s铆 estoy recibiendo todo este stream, c贸mo puedo hacer para decidir procesar esos eventos en una forma grupal, entonces en lugar de hacer una tarea por evento puedo hacer una tarea cada cierta cantidad de tiempo y agrupar todos los eventos en una tarea 煤nica puedo hacer mejor uso de los recursos procesando una sola vez un grupo de eventos.
    馃
    Gesti贸n de recursos. C贸mo ponemos disponibles m谩s o menos recursos y c贸mo hacemos para que est茅n cu谩ndo se le necesitan.
    馃

  • 鈥 Concurrencia. Trabajamos sobre c贸mo paralelizar nuestro proceso para que se pueda responder en menor tiempo usando recursos de forma paralela o en menor tiempo.
    馃

  • 鈥 R茅plicas. C贸mo podemos duplicar el procesamiento o los datos para hacer m谩s accesibles estos recursos a nuestro proceso.
    馃

  • 鈥 Aumentar recursos. El poder medir y decidir cu谩ndo crecer la cantidad de recursos que tenemos disponibles.
    Arbitraje de recursos. En caso de conflicto, en caso de haber m煤ltiples eventos necesitando los mismos recursos c贸mo decidimos cu谩les tienen prioridad.
    馃

  • 鈥 Pol铆ticas de planificaci贸n de tareas. Yo puedo decidir que cada recurso tiene que responder en el momento entonces tiene que tener un acceso sincr贸nico, un acceso prioritario a cada uno de esos recursos o puede postergar tareas y agendarlas para que se hagan en un momento futuro. Incluso puedo priorizar esos pedidos paralelos y decidir si un pedido es m谩s importante que otro o el orden en que se van a resolver.

鈥 Aumentar recursos. El poder medir y decidir cu谩ndo crecer la cantidad de recursos que tenemos disponibles.
Arbitraje de recursos. En caso de conflicto, en caso de haber m煤ltiples eventos necesitando los mismos recursos c贸mo decidimos cu谩les tienen prioridad.
鈥 Pol铆ticas de planificaci贸n de tareas. Yo puedo decidir que cada recurso tiene que responder en el momento entonces tiene que tener un acceso sincr贸nico, un acceso prioritario a cada uno de esos recursos o puede postergar tareas y agendarlas para que se hagan en un momento futuro. Incluso puedo priorizar esos pedidos paralelos y decidir si un pedido es m谩s importante que otro o el orden en que se van a resolver.