1 introducción a la arquitectura de sistema maximiliano déboli director de desarrollo mvp azure...

21
1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash [email protected]

Upload: maria-cristina-prado-cordero

Post on 25-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

1

Introducción a la Arquitecturade Sistema

Maximiliano DéboliDirector De DesarrolloMVP [email protected]

Page 2: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

2

¿Qué es la arquitectura de software?

• Conjunto de decisiones importantes acerca de la organización de un sistema

• Selección de elementos estructurales y las interfaces que componen al sistema

• Funcionalidad, facilidad de uso, capacidad, rendimiento, la reutilización, la comprensión, limitaciones económicas y la tecnología, intercambios y estética

Page 3: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

3

Fowler• El mayor nivel de desglose de un sistema en sus partes.

• Las decisiones que son difíciles de cambiar.

• Existen múltiples arquitecturas en un sistema.

• Que es arquitectónicamente importante que puede cambiar la vida de un sistema.

• La arquitectura se reduce a cualquier cosa que sea importante.

Page 4: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

4

Consideraciones relevantes a la arquitectura

• Como va a ser desplegada la aplicación en producción.

• Como los usuarios utilizar la aplicación.

• Cuales son los atributos de calidad, tales como la seguridad, rendimiento, simultaneidad, etc.

• Cuales son las tendencias arquitectónicas que pudieran afectarnos.

Page 5: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

5

Objetivos de la arquitectura•Exponer la estructura del sistema, pero ocultar los detalles de implementación

• Hacer posibles todos los casos de uso.

• Trate de abordar las preocupaciones de las diversas partes interesadas

• Manejar al mismo tiempo los requerimientos funcionales y de calidad

Page 6: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

6

Esce

nario

s

Atrib

utos

de

calid

ad

Requ

erim

ient

os/R

estr

icci

ones

Tran

sver

sale

s

Mob

ile

Tipos de aplicaciones

RIA

Rich

Clie

nt

Serv

ice

Aplic

ació

n w

eb

N …

Clie

nt S

erve

r

Estilos de arquitectura

Com

pone

nt-B

ased

Laye

red

Arch

itect

ure

Mes

sage

Bus

MVC

Arc

hite

ctur

e

Obj

ect O

rient

ed

N …

Marco de Arquitectura

•Caching•Comunication•Concurrency and transactions•Configuration Management•Coupling and Cohesion•Data Access•Exception Management

•Layering•Logging and instrumentation•State Management•Structure•Validation•Workflow

Page 7: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

7

Tipos de Aplicaciones• Aplicaciones para dispositivos móviles

• Rich Client para aplicaciones que se ejecutarán en una PC cliente.

• RIA para aplicaciones desplegadas en internet con apoyo de interfaces ricas de usuario y soporte de media

• Servicios para apoyar comunicaciones entre componentes débilmente acoplados.

• Aplicaciones web para escenarios completamente conectados

Page 8: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

8

Estrategia de despliegue

•Restricciones de Red y protocolos.

• En entornos poco flexibles tener en cuenta restricciones.

• Tener en cuenta atributos de calidad como la seguridad, rendimiento y mantenibilidad.

• Políticas y procedimientos.

• Especificar los requisitos y limitaciones en la arquitectura y la infraestructura.

Page 9: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

9

Estilos de arquitectura

• Conjunto de principios.

• Normas que especifican los tipos de componentes que puede utilizar para montar un sistema.

• Limitaciones en la forma en que se ensamblan y las hipótesis sobre el significado de cómo ponerlos juntos.

Page 10: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

10

Tecnología apropiada

• Tipo de aplicación que queremos desarrollar.

• Preferencia ante diferentes opciones.

• Políticas de la organización.

• Limitaciones de la infraestructura.

• Habilidades de los recursos.

Page 11: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

11

Atributos de calidad

• Los atributos de calidad deben estar separados de los requerimientos funcionales.

• Desde una perspectiva técnica, implementar atributos de calidad, es la diferencia entre un sistema bueno ó malo.

• Dos tipos de atributos de calidad. Los que se pueden medir en run-time. Los que solo se pueden medir inspeccionando.

Page 12: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

12

Atributos de calidad

• Cual es el atributo de calidad clave para nuestro sistema? Identificarlo en la etapa de diseño.

• ¿Cuáles son los requisitos fundamentales para hacer frente a estos atributos? ¿Son realmente cuantificable?

• ¿Cuáles son los criterios de aceptación para estos atributos?

Page 13: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

13

Funciones transversalesAutenticación

Autorización

Cache

Comunicación

Manejo de excepciones

Instrumentación y logueo

Page 14: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

14

Diseñando la Arquitectura• Diseño ágil e incremental.

• ¿Cuáles son las partes fundamentales de la arquitectura que representan el mayor riesgo?

• ¿Cuáles son las partes de la arquitectura que tienen más probabilidades de cambiar, o cuyo diseño se puede retrasar hasta más tarde con poco impacto?

• ¿Cuáles son sus supuestos básicos, y cómo va a probarlos?

Page 15: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

15

Principios claves de la Arquitectura

• Diseñar la arquitectura para adaptarse a los cambios.

• Modelado para el análisis y la reducción de riesgos.

• Modelos y puntos de vista son una buena herramienta de comunicación y colaboración.

• Identificar las principales decisiones de ingeniería. Invertir en conseguir estas decisiones clave desde el primer momento para que el diseño es más flexible y adaptable al cambio.

Page 16: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

16

Enfoque incremental e iterativoConsidere la posibilidad de utilizar un enfoque incremental iterativo y refinado de la arquitectura.

• No tratar de hacerlo bien y completo de una vez.

• Iterativamente agregar detalles al diseño a través de múltiples pasos.

• Probar constantemente el diseño: ¿Qué necesidades explícitas o implícitas reúne esta arquitectura? ¿Cuáles son los principales riesgos con este enfoque arquitectónico? ¿De qué manera esta arquitectura es una mejora con respecto a la línea de base o el último candidato de arquitectura?

Page 17: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

17

Arquitecturas de referencia y candidatos

La base de la arquitectura describe el sistema actual que es la forma actual de su sistema. Si se trata de uno nuevo, su base inicial es la primera de alto nivel.

• Tipo de Aplicación.

• Despliegue de la arquitectura.

• La arquitectura en si misma

• Opciones de tecnologías.

• Atributos de calidad

Page 18: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

18

Architectural SpikesUna Spike de arquitectura es una prueba de extremo a extremo de un pequeño segmento de la aplicación.

Reducir riesgos y testear diferentes caminos y alternativas.

A medida que evoluciona su arquitectura, puede utilizar spikes para explorar diferentes escenarios sin afectar el actual diseño.

Un spike de arquitectura se traducirá a un candidato de arquitectura que puede ser cotejado con la línea base.

Page 19: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

19

Architectural Spikes

• ¿Esta arquitectura introduce nuevos riesgos?

• ¿Esta arquitectura ayuda a mitigar riesgos adicionales ya conocidos?

• ¿Esta arquitectura posee requisitos adicionales?

• ¿Esta arquitectura permitirá casos de uso importantes?

• ¿Esta arquitectura esta enfocada a nuestros atributos de calidad?

Page 20: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

20

Casos de uso arquitectonicamente importantes

• Son importantes para el éxito y la aceptación de la aplicación desplegada.

• Son suficientes para testear la utilidad de la arquitectura.

Después de haber determinado los casos de uso importantes se pueden utilizar para evaluar el éxito o el fracaso de arquitecturas candidatas .

Page 21: 1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash mdeboli@lagash.com

21

Análisis y evaluación de arquitecturas

• Pruebe su diseño contra casos de uso que son importantes para el éxito de su aplicación, y que hagan uso de una parte importante del diseño.

• Usar escenarios para analizar su diseño con un enfoque en la calidad atributos.