BLOG

Reestructuración de plataformas para la nube

Miniatura de Byron McNaught
Byron McNaught
Publicado el 13 de abril de 2023

Los arquitectos ayudan a definir los límites del proceso y las capacidades técnicas necesarias para ejecutar la estrategia digital de la empresa, que a menudo incluye la evolución de aplicaciones web e infraestructura de API (puertas de enlace de API, mallas de servicios y portales para desarrolladores) en plataformas basadas en la nube.

En la práctica, existen enfoques de “elevación y desplazamiento”, “refactorización” (o “re-arquitectura”) y “replataforma”, y la decisión sobre qué camino arquitectónico tomar depende de varios factores. Por ejemplo, cuánto acoplamiento y cohesión se puede implementar de forma segura. El objetivo debería ser una API altamente cohesiva y débilmente acoplada, ya que proporciona una interfaz estable y un nivel de abstracción, protegiendo al sistema de un efecto en cascada de modificaciones de implementación que de lo contrario serían necesarias cuando se realiza un solo cambio de diseño. Esto permite que las diferentes partes de la arquitectura evolucionen de forma independiente.

Descomponer una aplicação monolítica existente en microservicios y migrarla a la nube es una opción prudente para la modernización, ya que este enfoque permite a los proveedores y consumidores de API evolucionar sus sistemas de manera más efectiva.

Aquí exploraremos un estudio de caso hipotético en el que una organización moderniza un sistema heredado refactorizándolo en una arquitectura basada en API y cambiándolo por una plataforma para la nube.

Evolución hacia un sistema basado en API

¿Qué significa modernizar un sistema heredado? Un paso común en cualquier proceso de transformación digital es proporcionar los puntos de contacto adecuados para que los clientes realicen transacciones, lo que, como mínimo, implica crear una aplicación móvil. Pero hay más implicado. En la nueva economía digital, la presión del tiempo de comercialización ha incrementado rápidamente el número de integraciones de terceros, a medida que las organizaciones “construyen, toman prestado o compran” para aumentar su participación digital y su base de clientes.

Si analizamos en profundidad cómo se lleva a cabo la modernización en la práctica, descubrimos que involucra tanto procesos como tecnología , es decir, automatizar la implementación y la mejora de sistemas para la entrega y verificación continuas ( proceso ) y evolucionar aplicaciones web heredadas hacia arquitecturas orientadas a servicios y basadas en API ( tecnología ). Además, la infraestructura de API, como una puerta de enlace de API, ayuda a garantizar una implementación efectiva en un entorno de nube a través de sólidas capacidades de seguridad y gestión del tráfico.

Aquí analizamos un caso de estudio hipotético para un emprendimiento digital que involucra dos fases:

  1. Rediseño de un sistema heredado y una aplicação monolítica en una arquitectura impulsada por API
  2. Uso de la infraestructura API para evolucionar el sistema hacia una plataforma en la nube

En nuestro ejemplo hipotético, un sistema de conferencias admite funciones como la creación de una cuenta de asistente ( crear cuenta ), la revisión de sesiones disponibles ( revisar sesiones ) y la reserva de asistencia ( reservar sesiones ). El cliente interactúa con el sistema de conferencias a través de un navegador web. Por ejemplo, para reservar una sesión de conferencia:

Bajo el capó, el cliente interactúa con una aplicação web, que envía llamadas API a la aplicação de conferencia. La aplicação de conferencia utiliza SQL para consultar el almacén de datos backend:

Varios requisitos impulsan la necesidad de modernizar el sistema de conferencias heredado:

  1. Soporte para una aplicación móvil
  2. Expansión del servicio a los mercados globales
  3. Reducción de costos operativos en el centro de datos privados que actualmente alberga el sistema

Se elabora un plan de alto nivel:

  1. Exponer el servicio de asistente a los consumidores mediante una puerta de enlace API
  2. Refactorizar la funcionalidad de Sesiones (ver/reservar) usando una malla de servicios
  3. Trasladar el servicio de asistentes a la nube

Se toman medidas para refactorizar el componente Asistente en un servicio independiente. El sistema de conferencias ahora tiene dos interfaces de tráfico:

  1. El cliente y el sistema de conferencias ( Norte-Sur )
  2. El sistema de conferencias y el sistema de asistentes ( Este-Oeste )

Luego, se implementa una puerta de enlace API para facilitar una gestión de tráfico escalable, mantenible y segura que incluye terminación SSL/TLS, autenticación y limitación de velocidad:

A continuación, se aprovisiona una malla de servicios para reutilizar la funcionalidad de Sesiones del sistema de conferencias heredado en un nuevo servicio de Sesiones. Una malla de servicio proporciona un control detallado del enrutamiento, garantiza la confiabilidad y gestiona de manera eficiente el tráfico para la comunicación API de servicio a servicio para facilitar la visualización y reserva de las sesiones de un asistente:

Finalmente, llega el momento de migrar el servicio de asistentes y el API Gateway a la nube. Este enfoque evita una gran repetición del trabajo y aprovecha los servicios nativos de la nube a medida que la organización migra desde su infraestructura local existente:

Para poner en práctica este manual y modernizar sus aplicaciones heredadas, consulte el libro electrónico Mastering API Architecture para conocer las mejores prácticas para evolucionar hacia sistemas basados en API.