Estrategias de Migración a la Nube con API Gateway

Bobur Umurzokov

Bobur Umurzokov

January 18, 2023

Technology

La migración a la nube es el proceso de mover datos, aplicaciones u otros elementos empresariales desde un entorno local, ya sea parcial o completamente, a uno basado en la nube ofrecido por un proveedor de servicios en la nube popular como Azure, AWS o Google Cloud. Esta publicación explora diferentes enfoques para construir tu estrategia de migración a la nube utilizando una API Gateway.

Beneficios de migrar a la nube

Para las empresas que emprenden el proceso de migración a la nube, la nube puede tener un impacto masivo. Esto incluye ahorrar dinero en el hardware necesario para la infraestructura de TI, un tiempo de entrega más rápido, escalar tus aplicaciones según tus necesidades, proteger cargas de trabajo críticas para el negocio y los datos más sensibles, y oportunidades mejoradas para la innovación.

Aquí, resumimos más beneficios de migrar a la nube:

  • Mayor agilidad y flexibilidad
  • Capacidad de innovar más rápido
  • Alivio de las crecientes demandas de recursos
  • Mejor gestión de las expectativas crecientes de los clientes
  • Reducción de costos
  • Entrega de resultados empresariales inmediatos
  • Simplificación de TI
  • Cambio a todo-como-servicio
  • Mejor gestión del consumo
  • Escalabilidad en la nube
  • Mejor rendimiento

Desafíos de la migración a la nube

La migración a la nube puede traer beneficios significativos, pero también hay varios desafíos en el camino, como no tener una estrategia de migración a la nube desde el principio, arquitecturas existentes complejas, un proceso de migración largo, tiempo de inactividad del negocio durante la migración, adopción organizacional, seguridad y cumplimiento.

Desafíos de la migración a la nube

Las empresas se mudan a la nube para disfrutar de una mayor disponibilidad de servicios, escalabilidad o cualquiera de los otros beneficios que promete la nube. Sin embargo, aprovechar al máximo la nube requiere un diseño y planificación cuidadosos para garantizar que la organización haya seleccionado la nube más adecuada para su caso de uso.

Estrategias de migración a la nube

Existen varios enfoques para evolucionar o migrar un sistema basado en API hacia la nube, que van desde retener ("no hacer nada"), reubicar, replataformar, recomprar, refactorizar/re-arquitectar (reescribir para aprovechar la infraestructura en la nube) y retirar.

Esta publicación describe 6 estrategias de migración diferentes y es un gran punto de partida si te han encargado evaluar o liderar una migración de tu arquitectura y sistemas existentes a la nube. Dado que las API suelen ser el componente más cercano al usuario impulsado por el negocio, y un punto clave de entrada para la mayoría de las solicitudes, debes prestar especial atención a ellas al decidir tu enfoque de migración. Los seis Rs presentan un espectro de opciones desde "no hacer nada" hasta una reconstrucción completa o el retiro de un sistema. Son:

  • Retener o Revisitar
  • Reubicar
  • Replataformar
  • Recomprar
  • Refactorizar/Re-arquitectar
  • Retirar

El papel de la gestión de API en la migración a la nube

Independientemente de la estrategia elegida para tu viaje evolutivo, la gestión de API puede desempeñar un papel clave en la migración y en desbloquear el valor de las API dentro y fuera de una organización. Los gestores de API son esencialmente una puerta de enlace potenciada, que proporciona varias características adicionales para publicar y controlar API. Los gestores de API ofrecen políticas que permiten abordar preocupaciones perimetrales, como desafíos de OAuth2, validación de contenido, limitación de tasa, almacenamiento en caché, limitación de ancho de banda, y muchas otras características típicas de una puerta de enlace. Existen muchas herramientas de gestión de API, y es importante saber cómo elegir la correcta.

Además, pueden proporcionar portales para desarrolladores que contienen un mercado de todas las API que los desarrolladores pueden usar al construir sistemas para consumir las API ofrecidas. Las organizaciones también pueden usar la gestión de API para monetizar el acceso a las API, tanto para clientes externos como para "reembolsos internos", que son comunes en empresas y despliegues interdepartamentales. Quizás la parte más importante de la gestión de API es que puede ofrecer un punto central para descubrir API, mientras continúas haciendo cambios detrás de escena.

API Gateway como herramienta para la migración

API Gateway es un componente esencial de las soluciones de gestión de API. Puedes leer los 10 casos de uso más comunes de una API Gateway en el blog de Apache APISIX. El uso de una puerta de enlace de API puede proporcionar transparencia de ubicación para los servicios y API que se ofrecen, lo que permite implementar un servicio en la nube y redirigir gradualmente el tráfico desde el servicio existente al nuevo con un impacto limitado (o nulo) en los consumidores.

A continuación, 3 estrategias posibles:

  1. Una forma de usar una API Gateway en una estrategia de migración a la nube es comenzar creando un proxy para tus servicios locales. Esto te permite redirigir el tráfico desde tus servicios locales a los servicios correspondientes en la nube, sin realizar cambios en tus aplicaciones existentes. También podemos realizar pruebas A/B simples, recopilar métricas sobre el rendimiento del nuevo punto final en la nube y la experiencia del usuario, y volver al servicio local si, por alguna razón, el nuevo servicio en la nube no es adecuado.

  2. Otra estrategia es usar una API Gateway como fachada para tus servicios en la nube. Esto te permite ocultar la complejidad de tu arquitectura de microservicios a los consumidores externos, mientras aún les permite acceder a la funcionalidad que necesitan.

  3. Una tercera estrategia es usar una API Gateway para implementar una malla de servicios que puede ayudarte a implementar redes de confianza cero. Esto te permite gestionar y asegurar la comunicación entre microservicios, sin tener que hacer cambios en los servicios individuales.

Los servicios de Apache APISIX resultan ser una solución eficiente para implementar las preocupaciones anteriores, ya que puede actuar como un proxy para toda la aplicación o como un único punto de acceso. Al actuar como un proxy, la API Gateway es capaz de manejar eficientemente las solicitudes y enrutar la aplicación heredada con puntos finales refactorizados.

Replataformar una aplicación de muestra en la nube

Supongamos que tenemos una aplicación de conferencias que tiene 5 componentes principales: una aplicación web, una API Gateway, un sistema de conferencias heredado y dos microservicios (Sesión y Asistente). Puedes ver la responsabilidad de cada servicio en el siguiente diagrama arquitectónico.

Arquitectura de la aplicación de conferencias con microservicios y API Gateway

Tu equipo elige migrar incrementalmente los servicios de la aplicación de conferencias a la nube, en lugar de arriesgarse a un enfoque de "big bang". Sin embargo, ejecutar servicios en múltiples entornos de nube y centros de datos locales presenta desafíos adicionales. Dada esta tarea, decides "replataformar" primero el servicio de Asistentes. Como ya has re-arquitectado la funcionalidad de los asistentes, extrayéndola a un microservicio independiente en una etapa anterior, las estrategias de refactorización/re-arquitectura no parecían apropiadas. Sin embargo, cuando agregues nueva funcionalidad al sistema de conferencias en el futuro, re-arquitectar el sistema (potencialmente extrayendo un servicio) y moverlo a la nube sería una opción a considerar seriamente. Reubicar podría ser una estrategia sólida, pero estamos interesados en aprovechar una base de datos como servicio basada en la nube en lugar de "levantar y mover" nuestra propia instancia de base de datos MySQL.

Además, necesitas migrar la API Gateway a la nube (o usar soluciones de APIM proporcionadas por los proveedores de nube) porque, con muchas migraciones incrementales a la nube, el tráfico necesitará transitar por múltiples redes para satisfacer una solicitud de API realizada por un usuario. Mover la API Gateway a la nube ahora también ayudará a soportar el tráfico de API que se enruta incrementalmente desde la ubicación local existente a la nube. El siguiente diagrama muestra el estado final de la arquitectura replataformada.

Aplicación de conferencias local y en la nube

Resumen

En general, usar una API Gateway en una estrategia de migración a la nube puede proporcionar muchos beneficios, como facilidad de gestión, seguridad y escalabilidad. Te permite mover gradualmente tus servicios a la nube y puede ayudarte a ocultar la complejidad de tu arquitectura de microservicios a los consumidores externos. Por ejemplo, Apache APISIX es una solución de gestión de tráfico de API completamente de código abierto y nativa de la nube que puedes implementar en cualquier nube y mejorar la productividad de los desarrolladores con complementos integrados que reducen el tiempo de tu migración a la nube.

Recursos relacionados

Contenido recomendado

Comunidad

🙋 Únete a la comunidad de Apache APISIX 🐦 Síguenos en Twitter 📝 Encuéntranos en Slack

Tags: