La arquitectura de sistemas de información es una rama de la informática que tiene como fin el diseño de todas las bases y componentes requeridos para la construcción efectiva de un sistema de información. Su uso en las empresas es de vital importancia, ya que permitirá el desarrollo de sistemas de forma profesional, por lo que entender en qué consiste es clave para saber en qué momento utilizarla y hasta qué punto llegar en su uso.
Para entender la arquitectura de sistemas puedes pensar en la construcción de una casa. Puedes decidir ahorrarte algo de dinero y no recurrir a un arquitecto que te diseñe los planos de construcción. Al final, puedes lograr construir la casa, pero quizás no con las mejores dimensiones y diseño en general.
Por otro lado, si contratas un arquitecto que te ayude con los planos de la casa, vas a tener una vista previa de tu casa desde distintos ángulos y perspectivas, podrás visualizar cambios y otras necesidades antes de iniciar su construcción. Y no requieres saber de construcción para poder entender muchas cosas que se ven en ese plano.
En el caso de la arquitectura de sistemas, sucede algo similar. Si desarrollas un sistema sin un plano, podrás terminar el sistema, pero qué pasa cuando debas hacer un cambio cómo agregar una nueva funcionalidad o qué pasará si entran nuevos desarrolladores al equipo que no conocen nada del sistema y cómo este fue construido.
Es en ese momento cuando podemos considerar que tener un diseño del sistema podría ser muy útil para visualizar el impacto de ese cambio o lo útil que le puede resultar a un compañero de trabajo entender cómo fue construido y cómo están conectadas todas las piezas que lo conforman.
Por lo tanto, incluir tiempo de arquitectura en el desarrollo de un sistema va a permitir tener un vista gráfica de muchas partes del sistema y a la vez ayudará a seguir buenas prácticas de la industria, agilizar la incorporación de cambios y facilitar el entrenamiento. Lo que a la postre será una carta de presentación de nuestro profesionalismo para con nuestros clientes.
Ahora, pueden surgir estas y muchas otras preguntas:
¿Debo contratar un arquitecto en sistemas para esto?
¿Por dónde comienzo?
¿Cuál diseño es el más importante?
¿Debo diseñar todos y cada uno de los distintos componentes y sus relaciones?
La arquitectura de sistemas es más simple de lo que parece y no requiere, en gran parte, la contratación de un arquitecto. El conocimiento, muchas veces, ya lo tenemos en el mismo equipo de trabajo. Si hemos recibido los requerimientos del cliente y estos son claros, podemos comenzar con el diseño principal, más conocido como la Arquitectura del Sistema.
La Arquitectura del Sistema es el nivel más alto de abstracción que podemos encontrar. Este diseño va a mostrar gráficamente todos los elementos principales del sistema y su relación. Es el primero que se construye cuando queremos entender mejor las ideas del cliente.
Este tipo de diagrama, aunque incluye elementos técnicos, en la mayoría de las veces el cliente lo entiende de forma muy clara y le permite visualizar dónde estará corriendo su sistema, cuáles otros componentes ayudarán al mejor funcionamiento del mismo, tipo de comunicación, protocolos y seguridad utilizada según sus necesidades y por su puesto, le ayudará a determinar algunos costos de la plataforma en general.
La arquitectura más simple de todas es la de Cliente-Servidor. A partir de este simple y muy utilizado diagrama ya puedes visualizar la arquitectura de tu proyecto, donde posiblemente hay más servidores, distintos tipos de equipos de comunicación, diferentes protocolos, seguridad, bases de datos y otros elementos que en suma forma el sistema de información.
La arquitectura de sistemas no muestra elementos como: diseños de pantallas, diseño de clases ni nada que incluya código, modelo de base de datos, diseño de mensajería como mensajes JSON o políticas de seguridad. Para todo esto se diseñan diagramas distintos que explicaré en otros artículos.
Dada la particularidad de cada sistema de información, es difícil seguir un estándar para el diseño de la arquitectura, ya que existen componentes prediseñados específicamente para ciertas plataformas, como AWS o Azure. Y aunque existen muchos productos en el mercado para realizar una arquitectura, te recomiendo utilizar Draw.io. Además de ser gratis, cuenta con varias plantillas muy útiles para diseñar nuestra arquitectura, cuenta con una gran cantidad de componentes prediseñados y es bastante intuitiva al momento de usarla.
En resumen, la arquitectura de un sistema de información te ayudará a poner visibles todos los componentes que forman parte de tu proyecto, permitirá identificar componentes que no habían sido considerados, así como cambios y factores de riesgo de forma oportuna. Recuerda que debes mantenerlo actualizado conforme crece el sistema para que siempre sea de gran utilidad.