introducción a la arquitectura software
DESCRIPTION
This is my keynote for the Tenerife Lan Party 2014, talking about software architecture.TRANSCRIPT
![Page 1: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/1.jpg)
Arquitectura SoftwareManual de supervivencia
Yeray Darias Camacho @ydarias
![Page 2: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/2.jpg)
¿Quién soy?
![Page 4: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/4.jpg)
Backend development Mobile
development
Training
![Page 5: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/5.jpg)
![Page 6: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/6.jpg)
![Page 7: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/7.jpg)
![Page 8: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/8.jpg)
No todo es arquitectura
![Page 9: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/9.jpg)
Equipo
![Page 10: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/10.jpg)
![Page 11: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/11.jpg)
Metodología
![Page 14: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/14.jpg)
Antes de proseguir ... yo uso el lenguaje que
más me conviene y punto.
![Page 15: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/15.jpg)
¿Qué es la arquitectura del software?
![Page 16: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/16.jpg)
1. “A formal description of a system, or a detailed plan of the system at component level to guide its
implementation.”
The Open Group Architecture Framework
![Page 17: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/17.jpg)
2. “The structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time.”
The Open Group Architecture Framework
![Page 18: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/18.jpg)
“In most successful software projects, the expert developers working on that project have a shared
understanding of the system design. This shared understanding is called “architecture.” This understanding
includes how the system is divided into components and how the components interact through interfaces. These components
are usually composed of smaller components, but the architecture only includes the components and
interfaces that are understood by all the developers ... Architecture is about the important stuff. Whatever that
is.”
Martin Fowler
![Page 19: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/19.jpg)
Las tres leyes de la optimización
![Page 20: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/20.jpg)
#1 No optimizar
![Page 21: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/21.jpg)
#2 No optimizar aún
![Page 22: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/22.jpg)
#3 Si optimizas hazlo en función de una medida
![Page 23: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/23.jpg)
Arquitectura web predominante hace 5 años
Petición HTTP
Respuesta HTML
![Page 24: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/24.jpg)
![Page 25: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/25.jpg)
Arquitectura web actual???
Petición AJAX
Respuesta JSON
Petición AJAX
Respuesta JSON
![Page 26: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/26.jpg)
![Page 27: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/27.jpg)
Petición HTTP (Ajax)
Respuesta JSON
![Page 28: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/28.jpg)
Front-end
Back-end
Persistencia
![Page 29: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/29.jpg)
Características ACID
Atomicity Consitency Isolation Durability
![Page 30: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/30.jpg)
Teorema CAP
Consistency
Partition tolerance
Availability
![Page 31: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/31.jpg)
Teorema CAP
Consistency
Partition tolerance*
Availability
*Se da por hecho en sistemas distribuidos modernos
![Page 32: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/32.jpg)
![Page 33: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/33.jpg)
![Page 34: Introducción a la arquitectura software](https://reader037.vdocuments.net/reader037/viewer/2022102815/554f896bb4c905d25b8b4e36/html5/thumbnails/34.jpg)
Veamos que hay bajo el capó