Arquitectura para artesanos

289 visualizaciones

Publicado el

Algunas ideas de arquitectura en grandes organizaciones pueden ser útiles a escala.

Publicado en: Software
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
289
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
4
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Arquitectura para artesanos

  1. 1. Arquitectura para artesanos Software Craftsmanship Barcelona 27.09.2015 Toni Tassani @atassani
  2. 2. Nada de tecnología Experiencia Niveles Relación con craftsmanship Ideas Expectativas
  3. 3. Arquitecto
  4. 4. Arquitecto
  5. 5. “La relación de componentes que forman un sistema y las interrelaciones entre ellos”
  6. 6. ¿De qué hablo cuando hablo de arquitectura?
  7. 7. El tamaño importa Startup Corporación
  8. 8. Velocidad Cambio Riesgo Inestabilidad Eficiencia Seguridad Control Rentabilidad
  9. 9. Rápida Informal Eficaz Rigurosa Formal Precisa
  10. 10. La historia es importante
  11. 11. Todo por decidir Aplicaciones y sistemas existentes
  12. 12. Todo por decidir Aplicaciones y sistemas existentes
  13. 13. el arquitecto hombre orquesta
  14. 14. Arquitecto en departamento de arquitectura
  15. 15. Decisiones de entorno de desarrollo Decisiones de entorno de ejecución Guía para el equipo Estructura del código CTO / Desarrollador senior el arquitecto
  16. 16. Estructuras muy formales Organizaciones con mucha historia Decisiones a muchos niveles TTM “Time to Market” TCO “Total Cost of Ownership” Arquitecto
  17. 17. Normalizar Homogeneizar Controlar a los desarrolladores Facilitar cambios futuros Permitir multi-proveedor Evitar CVDD Industrializar
  18. 18. WTF!
  19. 19. The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary by Eric S. Raymond
  20. 20. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.
  21. 21. Aprendiz Oficial Maestro
  22. 22. Growing the architecture
  23. 23. ¿Qué podemos aprender?
  24. 24. We Software
  25. 25. ¿Qué podemos aprender?
  26. 26. Enterprise Architect Solutions Architect BusinessArchitect DataArchitect NetworkArchitect InfrastructureArchitect TechnicalArchitect SecurityArchitect Subject Areas Projects/LowLevelStrategy/HighLevel
  27. 27. Arquitectura empresarial “La organización fundamental de un sistema, compuesta por sus componentes, las relaciones entre ellos y su entorno, así como los principios que gobiernan su diseño y evolución.” Existe, esté definida o no Business Data Application Technology
  28. 28. TOGAF The Open Group Architecture Framework Alternativas: Zachman IAF
  29. 29. Business Layer Application Layer Infrastructure Layer ArchiMate
  30. 30. Arquitectura de ejecución Componentes software reutilizables alineados con requerimientos Arquitectura de desarrollo Herramientas, estándares y metodologías para el desarrollo de software Arquitectura de operación Mecanismos para garantizar el nivel de servicio y operación del software Arquitectura técnica Infraestructura (HW y SW base) para soportar el desarrollo y operación del sistema. Negocio
  31. 31. Arquitectura de ejecución Componentes software reutilizables alineados con requerimientos Arquitectura de desarrollo Herramientas, estándares y metodologías para el desarrollo de software Arquitectura de operación Mecanismos para garantizar el nivel de servicio y operación del software Arquitectura técnica Infraestructura (HW y SW base) para soportar el desarrollo y operación del sistema. Negocio c Logging Monitorización Caché Procesos batch Alertas Internacionalización Llamadas a servicios Configuración Transaccionalidad Autenticación …
  32. 32. Arquitectura de ejecución Componentes software reutilizables alineados con requerimientos Arquitectura de desarrollo Herramientas, estándares y metodologías para el desarrollo de software Arquitectura de operación Mecanismos para garantizar el nivel de servicio y operación del software Arquitectura técnica Infraestructura (HW y SW base) para soportar el desarrollo y operación del sistema. Negocio IDE Pruebas unitarias Estrategia de pruebas Templates Gestión de configuración Modelado de datos Generadores de código Documentación Integración continua Encodings …
  33. 33. Arquitectura de ejecución Componentes software reutilizables alineados con requerimientos Arquitectura de desarrollo Herramientas, estándares y metodologías para el desarrollo de software Arquitectura de operación Mecanismos para garantizar el nivel de servicio y operación del software Arquitectura técnica Infraestructura (HW y SW base) para soportar el desarrollo y operación del sistema. Negocio Entornos Promoción Autorizaciones Automatismos Versionado Alta disponibilidad Registro de servicios Alta disponibilidad Contingencia Intervenciones
  34. 34. Arquitectura de ejecución Componentes software reutilizables alineados con requerimientos Arquitectura de desarrollo Herramientas, estándares y metodologías para el desarrollo de software Arquitectura de operación Mecanismos para garantizar el nivel de servicio y operación del software Arquitectura técnica Infraestructura (HW y SW base) para soportar el desarrollo y operación del sistema. Negocio Hardware Software de base Virtualización Containers Cloud pública / privada Topología de red Licencias Instalación Mantenimiento
  35. 35. Arquitectura de ejecución Componentes software reutilizables alineados con requerimientos Arquitectura de desarrollo Herramientas, estándares y metodologías para el desarrollo de software Arquitectura de operación Mecanismos para garantizar el nivel de servicio y operación del software Arquitectura técnica Infraestructura (HW y SW base) para soportar el desarrollo y operación del sistema. Negocio
  36. 36. Arquitectura como producto App1 App2 App3 App4 AppN ARQUITECTURA SOFTWARE BASE HARDWARE
  37. 37. Arquitectura como producto App1 App2 App3 App4 AppN FONTANERÍA SOFTWARE BASE HARDWARE
  38. 38. Arquitectura en Metodologías ágiles
  39. 39. DSDM Atern “Firm foundations”
  40. 40. Initial architectural envisioning “Architecture Owner” Agile DBAs Defer Commitment Agile Architecture DAD
  41. 41. Arquitectos
  42. 42. Arquitecto como rol Comunicar la arquitectura Abstracción, reducir detalle noUML Verbo y nombre
  43. 43. Workspace workspace = new Workspace("Spring PetClinic", ""); // create a software architecture model Model model = workspace.getModel(); SoftwareSystem springPetClinic = model.addSoftwareSystem("Spring PetClinic", "Allows employees to view and manage information “ + "regarding the veterinarians, the clients, and their pets."); Person clinicEmployee = model.addPerson("Clinic Employee", "An employee of the clinic"); clinicEmployee.uses(springPetClinic, "Uses"); // create some views to visualise the model ViewSet viewSet = workspace.getViews(); SystemContextView contextView = viewSet.createContextView(springPetClinic); contextView.addAllSoftwareSystems(); contextView.addAllPeople(); // upload the model and views to structurizr.com StructurizrClient structurizrClient = new StructurizrClient("https://api.structurizr.com", "key", "secret"); structurizrClient.putWorkspace(1, workspace); Descripción de la arquitectura en código structurizr
  44. 44. The Craftsman I Would Like to Be Alex Bolboaca El título no es lo importante Aprende tu técnica Piensa a diferentes niveles Sé pragmático Rodéate de artesanos Aprende toda tu vida http://www.alexbolboaca.ro/
  45. 45. Niveles de arquitectura Enterprise Architecture Software Architecture Comunicación Abstracción Respeto
  46. 46. TOGAF ArchiMate SAFe Architecture runway Architecture for Developers structrurizr
  47. 47. Firmitas Utilitas Venustas
  48. 48. Gracias Toni Tassani @atassani

×