ArquiTech
Una herramienta de uso general
Este proyecto está en desarrollo y, me temo que seguirá en desarrollo durante un buen tiempo. No obstante, dispone ya de una funcionalidad mínima que merece un espacio en mi web.
ArquiTech está desarrollado con PyQT y consta, en el momento de escribir esto, de dos funcionalidades. Por un lado nos ofrece una calculadora de capacidades y, por otro, un analizador de dependencias. Ambas opciones se escribieron con la idea en mente de ser susceptibles de uso por arquitectos de TI.
La calculadora de capacidad
Esta herramienta permite estimar la capacidad de recursos de TI para máquinas virtuales (VMs), con base en diferentes perfiles de Nube o bien bajo un contexto personalizado.
¿Cómo se utiliza?
Perfil de Nube: Seleccione un perfil predefinido (AWS, Azure, GCP) o use 'Personalizado'. Cada perfil cargará valores predeterminados basados en configuraciones típicas de cada proveedor de nube.
Núcleos CPU:Ingrese el número total de núcleos de CPU disponibles. Este valor se usa para estimar cuántas VMs pueden ser soportadas.
Memoria: Ingrese la cantidad total de memoria y seleccione la unidad (GB o TB). La herramienta convertirá automáticamente TB a GB para los cálculos.
Almacenamiento: Ingrese la capacidad total de almacenamiento y seleccione la unidad (GB, TB o PB). Esto se usa para estimar cuántas VMs pueden almacenarse, asumiendo 50GB por VM.
Tarjetas de Red: Ingrese el número de tarjetas de red y seleccione la velocidad. Esto se usa para estimar la capacidad de red total.
Interpretación de resultados:
CPU: Se estima que cada núcleo puede soportar 4 VMs ligeras o 2 VMs medianas.
Memoria: Se asume que cada VM ligera usa 2GB y cada VM mediana usa 4GB.
Almacenamiento: Se asume que cada VM necesita 50GB de espacio.
Red: La capacidad se calcula basándose en el número y tipo de tarjetas de red.
Tome en cuenta que estas estimaciones son aproximadas y pueden variar significativamente dependiendo de las cargas de trabajo específicas, la configuración del sistema y otros factores. Siempre realice pruebas exhaustivas en su entorno real para obtener medidas precisas. Los valores pueden ser modificados, de forma que los cálculos se aproximen más a las necesidades específicas. Por ejemplo, en un entorno de Nube, las VMs que se ofrecen pueden incluir por defecto un disco duro de 50 GB (Valor actual), sin embargo, si en otro entorno similar, las VMs se crean con un disco duro de 100GB, este valor puede ser modificado en el programa, para actualizar el cálculo. De igual forma, cada uno de los valores restantes, son fácilmente personalizables.
El analizador de dependencias
El Analizador de dependencias es una aplicación diseñada para ayudar a los arquitectos de TI a visualizar y comprender las complejas relaciones entre los componentes de sus sistemas.
Características principales:
Interfaz intuitiva: Ingresa las dependencias en un formato simple (ComponenteA -> ComponenteB) y obtén resultados instantáneos.
Análisis detallado: Identifica automáticamente:
Componentes raíz (sin dependencias)
Componentes hoja (de los que no depende ningún otro)
Dependencias circulares (potenciales problemas de diseño)
Visualización gráfica: Genera un diagrama claro y conciso de las relaciones entre componentes.
Flexibilidad: Analiza sistemas de cualquier tamaño, desde pequeñas aplicaciones hasta infraestructuras complejas.
Ayuda integrada: Incluye una guía detallada para interpretar los resultados y optimizar el diseño del sistema.
Beneficios:
Mejora la comprensión del sistema: Obtén una visión clara de la arquitectura de tu sistema.
Identifica puntos críticos: Descubre componentes centrales y posibles cuellos de botella.
Optimiza el diseño: Utiliza la información para refactorizar y mejorar la arquitectura.
Facilita la comunicación: Comparte visualizaciones claras con equipos y stakeholders.
Aplicaciones:
Análisis de sistemas legacy
Planificación de migraciones
Diseño de nuevas arquitecturas
Evaluación de impacto de cambios
Como se puede apreciar en la figura de la izquierda, una vez que añadimos los datos pertinentes (Dependientes), el analizador nos muestra el resultado en un pequeño texto, así como en un gráfico sencillo e intuitivo. A partir de los datos arrojados por la aplicación, dependerá de nosotros si los consideramos para tener en cuenta o no.
Su uso es muy sencillo, como ya se habrá notado. Sin embargo, no siempre tomamos en cuenta estas disposiciones en la práctica real, creando potencialmente problemas en los diseños y, por ende, en los resultados finales, tras las respectivas implementaciones. En cualquier caso, si se dificulta su utilización, la aplicación cuenta con su respectiva Ayuda integrada.
Ayuda integrada
En cada pestaña de la aplicación (Calculadora de capacidad y Analizador de dependencias), se encuentra un botón claramente marcado como "Ayuda". Este botón está ubicado junto a los botones "Calcular" y "Limpiar" para fácil acceso.
Al hacer clic en el botón "Ayuda", se abrirá una nueva ventana con las siguientes características:
Tamaño fijo: La ventana de ayuda tiene un tamaño predeterminado de 600x400 píxeles, lo que permite una lectura cómoda sin obstaculizar tu trabajo en la ventana principal.
Diseño claro: El texto de ayuda se presenta sobre un fondo blanco para una lectura fácil y agradable.
Barra de desplazamiento: Para navegar por el contenido extenso, la ventana incluye una barra de desplazamiento que te permite moverte arriba y abajo en el texto.
Contenido estructurado: La información se organiza en secciones claras con encabezados y listas para una fácil referencia.
Dependiendo de la herramienta que se esté utilizando, la ayuda proporcionará:
Una descripción general de la herramienta
Instrucciones paso a paso sobre cómo usar la herramienta
Explicaciones detalladas de cada campo y opción
Guía para interpretar los resultados
Consejos y mejores prácticas
Limitaciones y consideraciones importantes
Para cerrar la ventana de ayuda, simplemente hay que hacer clic en el botón de cierre estándar de la ventana. Esto lo devolverá a la interfaz principal de ArquiTech sin afectar su trabajo en curso.
Por hacer
Como manifesté al principio, este proyecto sigue su evolución. Para ello, he considerado unos puntos (algunos de ellos bastante ambiciosos), con la finalidad de "profesionalizar" un poco más este programa. Grosso modo, se me ocurren las siguientes bondades, algunas de las cuales ya están implementadas:
Guardar y cargar configuraciones:
Añadir la capacidad de guardar los cálculos y análisis en un archivo.
Permitir cargar configuraciones guardadas previamente.
Exportar resultados:
Añadir la opción de exportar los resultados a un archivo PDF o CSV.
Visualización gráfica para el analizador de dependencias:
Implementar una representación visual del grafo de dependencias.
Cálculos más detallados:
Añadir más parámetros para cálculos más precisos (por ejemplo, uso de CPU, consumo de memoria por aplicación, etc.).
Incluir diferentes perfiles de VM (ligera, media, pesada) con requisitos predefinidos.
Comparación de escenarios:
Permitir guardar múltiples configuraciones y compararlas lado a lado.
Recomendaciones automáticas:
Basándose en los datos ingresados, sugerir mejoras o identificar posibles cuellos de botella.
Integración con herramientas de monitoreo:
Permitir la importación de datos reales de uso de recursos desde herramientas de monitoreo populares.
Modo oscuro:
Implementar un modo oscuro para la interfaz de usuario.
Internacionalización:
Añadir soporte para múltiples idiomas.
Ayuda contextual:
Incluir tooltips o un sistema de ayuda para explicar los diferentes campos y cálculos.
Validación de entrada mejorada:
Implementar una validación más robusta de los datos de entrada con mensajes de error más descriptivos.
Cálculo de costos:
Añadir una función para estimar costos basados en los recursos calculados.
Perfiles de nube:
Incluir perfiles predefinidos para diferentes proveedores de nube (AWS, Azure, GCP) y permitir comparaciones.
Historial de cálculos:
Mantener un historial de los últimos cálculos realizados para referencia rápida.
Actualizaciones automáticas: