1. Introducción
1.1. Objetivos del presente trabajo
1.2. Enfoque general
1.3. Nociones básicas de arquitectura
1.4. Infraestructura vs. arquitectura
1.5. Problemas derivados de una arquitectura incorrecta
1.6. Problemas derivados de una gestión incorrecta de la arquitectura
1.7. Resumen
2. Caso de estudio y metodología utilizada
2.1. Caso de estudio: Cientopolis
2.1.1. Ciencia ciudadana
2.1.2. Proyecto Cientopolis
2.2. Metodología
2.3. Resumen
3. Arquitecturas de software
3.1. Propiedades de una arquitectura de sistemas
3.1.1. Relación entre la arquitectura y la calidad de un sistema
3.2. Patterns de diseño de arquitecturas
3.2.1. Estilos de arquitectura
3.2.2. Ejemplos de patrones de arquitectura
3.3. Resumen
4. Evaluación de arquitecturas
4.1. Métodos de evaluación de arquitecturas de sistema
4.1.1. Sobre los escenarios
4.2. Elección del método de evaluación
4.2.1. Método LAAAM
4.3. Resumen
5. Gestión de arquitecturas
5.1. TOGAF - The Open Group Architecture Forum
5.2. ISO 42010 - descripción de arquitecturas
5.2.1. Vocabulario de la ISO 42010
5.3. Resumen
6. Evaluación de la arquitectura existente y estrategias de gestión de la misma
6.1. La arquitectura existente .
6.2. Falencias o deudas de la arquitectura actual
6.3. Motivaciones para cambiar la arquitectura y nueva funcionalidad deseada
6.4. Gestión actual de la arquitectura
6.5. Resumen
7. Propuesta, evaluación y selección de una nueva arquitectura
7.1. Evaluación de la arquitectura según el metodo LAAAM
7.1.1. Principios para la arquitectura de Cientopolis
7.1.2. Descripción de la arquitectura propuesta
7.2. Evaluación de la arquitectura
7.2.1. Procedimiento de evaluación
7.3. Propiedades de la arquitectura propuesta
7.4. Resumen
8. Propuesta de arquitectura programable
8.1. Devops como nuevo paradigma de administración de infraestructura
8.2. Amazon, Proxmox y alternativas
8.2.1. Acerca de los contenedores
8.2.2. Sobre el uso de AWS
8.2.3. Sobre el uso de Proxmox
8.2.4. Sobre las herramientas elegidas
8.3. Ansible y alternativas
8.3.1. ¿Por que utilizar alguna de estas herramientas?
8.3.2. ¿Por que se eligio Ansible?
8.3.3. Breve introducción a Ansible
8.4. Otras herramientas utilizadas
8.4.1. Sobre el uso de SSH
8.4.2. Sobre el deployment de las aplicaciones
8.4.3. Sobre TLS y el servicio de Let's Encrypt
8.5. Resumen
9. Implementación de la arquitectura y estrategia de gestión
9.1. Descripción general de la implementación
9.1.1. Implementación en AW
9.1.2. Implementación en Proxmox
9.2. Descripción del código Ansible
9.2.1. Sobre los directorios y archivos
9.2.2. Ejemplo: configuración del DNS
9.3. Resumen
10.Evaluación de la arquitectura propuesta
10.1. Sobre la arquitectura resultante
10.2. Sobre la metodología usada
10.3. Sobre las herramientas usadas
10.4. Resumen
11.Conclusiones
11.1. Deuda técnica
11.2. Mejoras o trabajos a futuro