APIficación mediante API First

Caso de éxito implementando la metodología API First para lograr objetivos

Introducción

Desarrollo de arquitectura de un producto para el sector energético para transformar digitalmente parte de sus procesos en la parte de generación de ofertas.  El diseño y desarrollo lo realizó Waimatech y CloudAPPi se encargó de diseñar la arquitectura Cloud y la arquitectura de los frontales y microservicios. Necesitábamos una arquitectura elástica, segura y de bajo mantenimiento que pudiera soportar cientos de miles de peticiones a la hora. El proyecto fue todo un éxito y permitió a la empresa generar y procesar bastantes más ofertas en la parte de solar.

Proyecto

Estado inicial del problema

Los sistemas actuales no les permitían escalar.

Objetivo del proyecto

El desafío era diseñar una arquitectura escalar, segura, potente y de bajo mantenimiento.

Arquitectura AWS

Toda la arquitectura fue diseñada en Amazon Web Services (AWS), para que sea lo más escalable posible. Para reducir el mantenimiento, elegimos
 Amazon ECS como sistema de contenedores, que nos permite escalar con contenedores con un bajo mantenimiento.
 
Como siempre, todo lo desplegamos en una parte privada y sólo se deja lo mínimo en la parte pública, dónde utilizamos S3 como bucket de estáticos. Para la gestión de identidades se utilizó Cognito, que es el IDP de Amazon.
 
Para terminar, y asegurar la seguridad, utilizamos  AWS Firefall Manager que nos permite tener un firewall dedicado al producto.
 
El sistema de CI/CD que se utilizó fue Jenkins y se utilizó bajo el paradigma de integración continua. 
 
Toda la arquitectura tanto de los frontales (Vue) como de los microservicios (Spring Boot) fueron diseñados por nuestros equipos de arquitectura. La arquitectura de microservicios es un enfoque clave que divide una aplicación en un conjunto de servicios pequeños, autónomos y especializados, lo que facilita el mantenimiento, la evolución y la escalabilidad independiente de cada componente. Junto con la metodología API First, que asegura la coherencia y alineación de las APIs con los requisitos del negocio, estos enfoques permiten una interacción fluida y consistente entre los distintos módulos y sistemas.
Arquitectura de caso de éxito sobre APIficación con metodología API First en CloudAPPi

Diagrama conceptual de la arquitectura

Módulos desarrollados

Dentro del trabajo de APIficación mediante API First de CloudAPPi, se desarrollaron los siguientes módulos para alcanzar los objetivos establecidos:

Módulo de cálculo

Módulo de simulaciones

Módulo de cálculo

Módulo de simulaciones

Módulo de ofertas

Módulo de documentos

Módulo de ofertas

Módulo de documentos

¿Con ganas de saber más?

Resultados obtenidos

El resultado final del proyecto fue el desarrollo de una serie de APIs desacopladas, cada una correspondiente a un módulo específico. Estas APIs son altamente integrables y pueden ser consumidas desde diversos puntos de entrada, lo que proporciona flexibilidad y escalabilidad a la solución. La nueva infraestructura permite una mejor gestión de las simulaciones y ofertas, optimizando el proceso de generación y asegurando una mayor precisión y rapidez en la respuesta a los clientes.

Además, la adopción de una metodología ágil y el uso de tecnologías modernas han mejorado significativamente el ciclo de desarrollo, permitiendo al equipo responder de manera más efectiva a los cambios en los requisitos y a las demandas del mercado. La integración con AWS ha garantizado la escalabilidad y seguridad de la solución, mientras que la arquitectura de microservicios ha facilitado el mantenimiento y la evolución del sistema a futuro.

En resumen, el proyecto no solo resolvió los problemas iniciales, sino que también sentó las bases para un desarrollo continuo y adaptable.

Ámbitos de aplicación

A partir del proyecto descrito, se pueden abstraer varios patrones y metodologías altamente reutilizables en otros proyectos, que no sólo resuelven problemas específicos, sino que también establecen una base sólida para el desarrollo de soluciones escalables, mantenibles y adaptables

La arquitectura de microservicios es un enfoque clave que divide una aplicación en un conjunto de servicios pequeños, autónomos y especializados, lo que facilita el mantenimiento, la evolución y la escalabilidad independiente de cada componente. Junto con la metodología API First, que asegura la coherencia y alineación de las APIs con los requisitos del negocio, estos enfoques permiten una interacción fluida y consistente entre los distintos módulos y sistemas.

La infraestructura como código (IaC) es otro patrón fundamental que automatiza la gestión y aprovisionamiento de la infraestructura, garantizando la consistencia, minimizando errores humanos y permitiendo escalar de manera automatizada. En este contexto, el despliegue en la nube utilizando servicios como AWS proporciona escalabilidad, seguridad y flexibilidad, permitiendo a las empresas adaptarse rápidamente a las demandas cambiantes. Además, la integración y despliegue continuo (CI/CD), implementado mediante pipelines automatizados, mejora la rapidez y calidad en la entrega del software, reduciendo errores y facilitando la adopción de cambios.

La contenedorización con Docker asegura la portabilidad y consistencia de las aplicaciones a través de diferentes entornos.

Todos estos elementos, combinados con una metodología ágil, que promueve la adaptabilidad, la colaboración y la mejora continua, forman un conjunto de prácticas y herramientas que pueden ser aplicadas en una amplia variedad de proyectos para crear sistemas modernos, flexibles y preparados para el futuro.

¿Quieres mejorar tu organización?

¡Se nuestro próximo éxito!