Regresar

2024

Infraestructura de Sistema Contable en la Nube

Proyecto de clase Sistemas Expertos

Diseño e implementación de una arquitectura en la nube para un sistema contable, utilizando Terraform para automatizar el despliegue de los recursos en Azure. La infraestructura integra servicios clave como App Service Plans, Azure SQL, redes virtuales (VNets y subnets) y Storage Accounts, asegurando un entorno escalable, seguro y eficiente.

Mockup de Infraestructura de Sistema Contable en la Nube

Diagrama de Arquitectura

El diagrama muestra los componentes principales del sistema y su interacción:

App Service Plan (ContApp): Aloja la aplicación que interactúa con los clientes, incluyendo tanto su interfaz de usuario (UI) como su API, además de un Function App que realiza tareas específicas.

App Service Plan (Backoffice): Aloja la interfaz de usuario y API del sistema de administración interna, facilitando la gestión de operaciones contables.

Container Registry: Almacena y gestiona las imágenes de contenedores de las aplicaciones (UI y API de ContApp y Backoffice, así como el Function App).

SQL Azure: Proporciona una base de datos estructurada para almacenar datos financieros, como transacciones, cuentas y reportes.

Blob Storage: Almacena archivos no estructurados relacionados con el sistema contable, como recibos, facturas y documentos de respaldo.

Queue Storage: Administra los mensajes y peticiones que serán procesados por el Function App, permitiendo un manejo eficiente de las solicitudes.

Function App (Worker): Ejecuta tareas en segundo plano, como generación de reportes financieros, conciliaciones automáticas, envíos de notificaciones y procesos de cálculo de impuestos. Esto optimiza la funcionalidad del sistema y asegura una respuesta rápida a las necesidades del negocio.

Este diseño integral asegura un sistema contable escalable y eficiente, mejorando la experiencia del usuario y facilitando la gestión de las finanzas.


Propósito del Proyecto

El propósito de este proyecto es crear y desplegar una arquitectura en la nube para un sistema contable utilizando Terraform y los recursos de Azure. El objetivo es optimizar la automatización y asegurar la escalabilidad, permitiendo un manejo eficiente de aplicaciones y bases de datos mediante App Service Plans, Azure SQL, y redes virtuales.


Pasos Seguidos para el Despliegue

  1. Diseño del Diagrama de Arquitectura:

    • Identifiqué los recursos necesarios (App Service Plans, Container Registry, Azure SQL, Storage Accounts, VNets y subnets).
    • Esquematicé las conexiones entre los recursos para asegurar un flujo de datos eficiente.
  2. Configuración de Terraform:

    • Creé los archivos principales:
      • main.tf: Define el proveedor de Azure y crea el grupo de recursos para organizar y gestionar los servicios del sistema en una ubicación específica.
      • variables.tf: Contiene las variables reutilizables para parametrizar el despliegue, como nombres, ubicaciones y etiquetas, facilitando la personalización y mantenimiento del entorno.
  3. Configuración de Redes:

    • Definí la configuración de la red, incluyendo la creación de la VNet, subredes y reglas de seguridad, asegurando la conectividad y control de acceso entre los recursos.
  4. Definición de los recursos:

    • Desarrollé los archivos de configuración para cada recurso de la arquitectura, detallando todos los elementos esenciales, como parámetros, nombres, etiquetas (tags), configuraciones de red, tamaños, planes de servicio y toda configuración necesaria para su correcta implementación.
  5. Despliegue de la Infraestructura:

    • Ejecuté los comandos:
      terraform init
      terraform plan
      terraform apply
      
    • Validé que todos los recursos se desplegaran correctamente en el portal de Azure.
  6. Verificación en el Portal de Azure:

    • Accedí al portal de Azure para confirmar que todos los recursos, incluyendo los App Service Plans, bases de datos y demás componentes, se desplegaron correctamente y se encuentran activos y operativos.

Tecnologías Usadas

  • Terraform: Infraestructura como Código (IaC)
  • Azure: Servicios en la nube
  • Lenguaje HCL: Definición de infraestructura
  • Git y GitHub: Control de versiones y repositorio