Migración de una solución de comercio electrónico a Azure

Introducción

Migrar una solución de comercio electrónico existente a la nube supone muchas ventajas para una empresa: permite a escalabilidad, ofrece a los clientes accesibilidad todo el día, todos los días, y facilita la integración de los servicios en la nube. Pero, primero que todo, migrar una solución de comercio electrónico a la nube es una tarea importante, que costos que el responsable de la toma de decisiones debe tener bien claros. En este documento se explica el ámbito de una migración de Azure con el objetivo de informarle las opciones. La primera fase empieza con los profesionales de TI que migran los componentes a la nube. Una vez en Azure, se describen los pasos que el equipo de comercio electrónico puede seguir para aumentar la rentabilidad de la inversión (ROI) y aprovechar la nube.

En la encrucijada

Si bien las transacciones de comercio electrónico global solo representan una fracción de las ventas minoristas, el canal sigue viendo un crecimiento constante año a año. A partir de 2024, las ventas de comercio electrónico constituyen una quinta parte de las ventas minoristas totales, desde el 8,6 % en 2016 (fuente). A medida que el comercio electrónico ha madurado, junto con la llegada de la informática en la nube, los comerciantes minoristas se encuentran en una encrucijada. Es momento de que tomen decisiones. Pueden imaginarse su modelo de negocio con nuevas funcionalidades posibles gracias a la tecnología en constante evolución y también pueden planear su modernización dada su actual superficie de funcionalidades.

Mejora del recorrido del cliente

El comercio electrónico, que se centra principalmente en el recorrido del cliente, tiene muchos atributos distintos. Estos atributos se pueden agrupar en cuatro áreas principales: detección, evaluación, compra y después de la compra.

El comportamiento del cliente se captura como datos. El embudo de la compra es una colección de puntos de conexión a las aplicaciones que se usan para ver los datos de los productos, las transacciones, el inventario, el envío, el cumplimiento de pedidos, el perfil del usuario, el carro de la compra y recomendaciones de productos, por mencionar algunos aspectos.

Un negocio minorista típico se basa en una gran colección de soluciones de software que van desde aplicaciones orientadas al cliente hasta la pila y aplicaciones fundamentales. En la ilustración siguiente se observa una vista de la funcionalidad presente en un negocio minorista típico.

El diagrama compara la funcionalidad externamente visible con la funcionalidad básica.

La nube presenta una oportunidad para cambiar la forma en que una organización obtiene, usa y administra la tecnología. Entre las ventajas se encuentran las siguientes: menores costos de mantenimiento de los centros de datos, mejor confiabilidad y rendimiento y la flexibilidad para agregar otros servicios. En este caso de uso, nos centramos en una de las rutas que un negocio minorista puede tomar para migrar su infraestructura existente a Azure. También aprovechamos el nuevo entorno mediante el uso de un enfoque por fases de rehospedaje, refactorización y recompilación. Si bien es posible que muchas organizaciones sigan esta ruta en serie hacia la modernización, en la mayoría de los casos, las organizaciones pueden usar cualquier fase como su punto de partida. Las organizaciones pueden elegir abstenerse de rehospedar su aplicación actual en Azure y pasar directamente a la refactorización o, incluso, a la recompilación. Esta decisión será única para la aplicación y la organización para cumplir mejor con sus necesidades de modernización.

Rehospedaje

Esta etapa, también denominada como "migración mediante lift-and-shift", implica la migración de servidores físicos y máquinas virtuales tal cual a la nube. Mediante un simple cambio del entorno de servidor actual directamente a IaaS, se aprovechan los ahorros de costos, la seguridad y la mayor confiabilidad. Los ahorros provienen de técnicas como la ejecución de cargas de trabajo en máquinas virtuales del tamaño adecuado. En la actualidad, las funcionalidades de las máquinas físicas y las máquinas virtuales locales suelen exceder las necesidades diarias de los minoristas. Las máquinas virtuales deben ser capaces de atender los picos estacionales de negocio que solo se producen algunas veces al año. Por tanto, paga por funcionalidades que no usa durante la temporada de menor demanda. Con Azure, puede elegir la máquina virtual de tamaño adecuado según las exigencias del ciclo comercial actual.

Hay tres fases para el rehospedaje en Azure:

  • Análisis: identifique y haga un inventario de los recursos locales como aplicaciones, cargas de trabajo, redes y seguridad. Al finalizar esta fase, contará con la documentación completa del sistema existente.
  • Migración: migre cada subsistema desde el entorno local a Azure. En esta etapa, usará Azure como una extensión del centro de datos con aplicaciones que siguen comunicándose.
  • Optimización: a medida que los sistemas se migran a Azure, asegúrese de que las cosas tienen el tamaño adecuado. Si el entorno muestra que hay asignados demasiados recursos a algunas máquinas virtuales, cambie el tipo de máquina virtual a uno que tenga una combinación más adecuada de CPU, memoria y almacenamiento local.

Analizar

Siga estos pasos:

  1. Enumere los servidores y las aplicaciones locales. Este proceso se basa en un agente o una herramienta de administración para recopilar metadatos sobre los servidores, las aplicaciones que se ejecutan en los servidores, el uso del servidor actual y cómo están configurados los servidores y sus aplicaciones. El resultado es un informe de todos los servidores y las aplicaciones del entorno.
  2. Identifique las dependencias. Puede usar herramientas para identificar qué servidores se comunican entre sí y qué aplicaciones hacen lo mismo. El resultado es un mapa (o mapas) de todas las aplicaciones y cargas de trabajo. Estos mapas contribuyen a planear la migración.
  3. Analice las configuraciones. El objetivo es saber qué tipos de máquina virtual necesita una vez en Azure. El resultado es un informe sobre todas las aplicaciones que se pueden migrar a Azure. Además, se pueden clasificar de esta manera:
    1. Sin modificaciones
    2. Modificaciones básicas, como cambios de nombres
    3. Modificaciones menores, como leves cambios de código
    4. Cargas de trabajo incompatibles que requieren esfuerzo adicional para migrarlas
  4. Cree su presupuesto. Ahora tiene una lista que enumera cada CPU (memoria, etc.) y los requisitos de cada aplicación. Coloque esas cargas de trabajo en máquinas virtuales de tamaño adecuado. Los costos de factura de la plataforma en la nube se basan en el uso. Existen herramientas para asignar sus necesidades a las máquinas virtuales de Azure del tamaño adecuado. Si migra máquinas virtuales Windows o SQL Server, también debe consultar la Ventaja híbrida de Azure, que disminuye sus gastos en Azure.

Microsoft brinda varias herramientas para analizar y catalogar los sistemas. Si ejecuta VMware, puede usar Azure Migrate para ayudar en la detección y la evaluación. La herramienta identifica las máquinas que se pueden migrar a Azure, recomienda el tipo de máquina virtual a ejecutar y calcula el costo de la carga de trabajo. En el caso de los entornos de Hyper-V, use Azure Site Recovery Deployment Planner. En el caso de migraciones de gran tamaño donde deba migrar cientos de máquinas virtuales o más, es posible que quiera trabajar con un asociado para la migración de Azure. Estos asociados tienen los conocimientos y la experiencia que se necesitan para migrar las cargas de trabajo.

Migrate

Comience a planear los servicios que se van a migrar a la nube y en qué orden se hará. Dado que esta etapa implica la migración de cargas de trabajo, siga este orden:

  1. Cree la red.
  2. Incorporar un sistema de identidad (Microsoft Entra ID).
  3. Aprovisione los elementos de almacenamiento en Azure.

Durante la migración, el entorno de Azure es una extensión de la red local. Puede conectar las redes lógicas con Azure Virtual Network. Puede elegir usar Azure ExpressRoute para mantener las comunicaciones entre la red y Azure en una conexión privada que nunca afecta a Internet. También puede usar una VPN de sitio a sitio donde una instancia de Azure VPN Gateway se comunica con el dispositivo VPN local con todo el tráfico enviado de manera segura mediante el uso de comunicación cifrada entre Azure y la red. Publicamos aquí una arquitectura de referencia que detalla cómo configurar una red híbrida.

Una vez configurada la red, planee la continuidad empresarial. Una recomendación es usar la replicación en tiempo real para mover los datos de forma local en la nube y para asegurarse de que la nube y los datos existentes son los mismos. Las tiendas de comercio electrónico no cierran nunca, la duplicación brinda la capacidad de cambiar del entorno local a Azure sin apenas afectar a los clientes.

Empiece a migrar los datos, las aplicaciones y los servidores relacionados a Azure. Muchas empresas usan el servicio Azure Site Recovery para hacer la migración a Azure. El servicio tiene como destino la continuidad empresarial y recuperación ante desastres (BCDR). Esto resulta ideal para una migración desde el entorno local a Azure. El equipo de implementación puede leer aquí los detalles sobre cómo migrar servidores físicos y máquinas virtuales locales a Azure.

Una vez que se migra un subsistema a Azure, haga una prueba para asegurarse de que todo funciona según lo previsto. Una vez solucionados todos los problemas, migre las cargas de trabajo a Azure.

Optimización

En este momento, el usuario seguirá supervisando el entorno y cambiará las opciones de proceso subyacentes para ajustarse a las cargas de trabajo a medida que cambia el entorno. Quienquiera que supervise el estado del entorno debe vigilar cuánto se usa cada recurso. El objetivo debe ser tener una utilización de entre el 75 % y el 90 % en la mayoría de las máquinas virtuales. En el caso de las máquinas virtuales con una utilización excepcionalmente baja, considere la posibilidad de empaquetarlas con más aplicaciones o migrarlas a las máquinas virtuales de menor costo en Azure que conservan el nivel adecuado de rendimiento.

Azure también brinda herramientas para optimizar el entorno. Azure Advisor supervisa los componentes del entorno y brinda recomendaciones personalizadas en función de los procedimientos recomendados. Las recomendaciones ayudan a mejorar el rendimiento, la seguridad y la disponibilidad de los recursos que se usan en las aplicaciones. Azure Portal también expone información sobre el estado de las aplicaciones. Las máquinas virtuales debe aprovechar las extensiones de máquina virtual de Azure para Linux y Windows. Dichas extensiones proporcionan configuración posterior a la implementación, antivirus, supervisión de aplicaciones, etc. También puede aprovechar muchos otros servicios de Azure para el diagnóstico de red, el uso del servicio y las alertas a través de servicios como Network Watcher, Service Map, Application Insights y Log Analytics.

Si bien hay partes de la organización que están optimizando ahora el sistema en Azure, los equipos de desarrollo pueden empezar a avanzar a la fase posterior a la migración: la refactorización.

Refactorización

Una vez que se completa la migración, la aplicación de comercio electrónico puede empezar a aprovechar su nuevo hogar en Azure. No es necesario que la fase de refactorización espere hasta que se haya migrado todo el entorno. Si migró el equipo de CMS, pero el equipo de ERP no, no hay ningún problema. El equipo de CMS puede empezar de todos modos sus trabajos de refactorización. Esta fase implica el uso de servicios adicionales de Azure para optimizar el costo, la confiabilidad y el rendimiento mediante la refactorización de las aplicaciones. Mientras en la migración mediante lift-and-shift solo se aprovechaba el sistema operativo y hardware administrado por el proveedor, en este modelo también se aprovechan los servicios en la nube para disminuir el costo. Seguirá usando la aplicación actual tal cual, con pequeños cambios de configuración o en el código de las aplicaciones, y conectará la aplicación a nuevos servicios de infraestructura, como contenedores, bases de datos y sistemas de administración de identidades.

El trabajo de refactorización cambia muy poco el código y la configuración. El usuario se centrará más tiempo en la automatización, principalmente porque las tecnologías que se adoptan en esta fase se basan en scripts para crear e implementar los recursos; las instrucciones de implementación son un script.

Si bien muchos se pueden usar muchos de los servicios de Azure, nos centraremos en los servicios más comunes que se usan en la fase de refactorización: contenedores, servicios de aplicación y servicios de base de datos. ¿Por qué nos interesa la refactorización? La refactorización proporciona una base de código sólida que disminuye los costos a largo plazo al mantener la deuda de código dentro de lo razonable.

Los contenedores ofrecen una forma de empaquetar las aplicaciones. Debido al modo en que un contenedor virtualiza el sistema operativo, puede empaquetar varios contenedores en una sola máquina virtual. Puede mover una aplicación a un contenedor con pocos cambios o ningún cambio. Es posible que necesite cambios de configuración. Este trabajo también lleva a escribir scripts que empaquetan aplicaciones en un contenedor. Los equipos de desarrollo dedicarán su tiempo de refactorización a escribir y probar estos scripts. Azure admite la inclusión en contenedores mediante los servicios Azure Kubernetes Service (AKS) y Azure Container Registry que puede usar para administrar las imágenes de contenedor.

En el caso de los servicios de aplicación, puede aprovechar varios servicios de Azure. Por ejemplo, la infraestructura existente puede controlar un pedido de cliente mediante la colocación de mensajes en una cola como RabbitMQ. (Por ejemplo, un mensaje es cobrar al cliente y el segundo es enviar el pedido). Al rehospedar, debe colocar RabbitMQ en una máquina virtual independiente. Durante la refactorización, puede agregar una cola o un tema de Service Bus a la solución. En este punto, puede volver a escribir el código de RabbitMQ y dejar de usar las máquinas virtuales que han proporcionado la funcionalidad de puesta en cola. Si no es factible volver a escribir todo el código de una vez, puede usar patrones como el puente de mensajería para solucionar la brecha entre las colas de mensajería. Esto le permite migrar los puntos de conexión uno a uno en lugar de todos a la vez. En cualquier caso, cuando todos los puntos de conexión se han movido a Azure Service Bus, esto reemplaza un conjunto de máquinas virtuales por un servicio de cola de mensajes siempre activado por un costo menor. Puede encontrar otros servicios de aplicación en Azure Portal.

En el caso de las bases de datos, puede migrar una base de datos desde una máquina virtual a un servicio. Azure admite cargas de trabajo de SQL Server con Azure SQL Database e Instancia administrada de Azure SQL Database. Data Migration Service evalúa la base de datos, informa sobre el trabajo que se debe realizar antes de la migración y, luego, migra la base de datos desde la máquina virtual al servicio. Azure admite también MySQL, PostgreSQL y otros servicios de motor de base de datos.

Volver a generar

Hasta este momento, hemos intentado minimizar los cambios en los sistemas de comercio electrónico y no hemos hablado de los sistemas funcionales. Ahora veamos cómo aprovechar realmente la nube. Esta etapa significa revisar la aplicación existente mediante la adopción de manera agresiva de la arquitectura y los servicios de PaaS o, incluso, SaaS. El proceso abarca revisiones sustanciales para agregar funcionalidad nueva o rediseñar la aplicación para la nube. Las API administradas son un nuevo concepto que aprovecha los sistemas de nube. Mediante la creación de API para la comunicación entre servicios, podemos facilitar la actualización del sistema. Una segunda ventaja es la capacidad de obtener información sobre los datos existentes. Para ello, migramos a una arquitectura de microservicio más API y usamos el aprendizaje automático y otras herramientas para analizar los datos.

Microservicios más API

Los microservicios se comunican a través de API orientadas a usuarios externos. Cada servicio es independiente y debe implementar una sola funcionalidad empresarial, por ejemplo, recomendar artículos a los clientes, mantener los carros de la compra, etc. Descomponer una aplicación en microservicios requiere tiempo y planeamiento. Si bien no existe ninguna regla fundamental que defina un microservicio, la idea general implica reducir la unidad implementable a un conjunto de componentes que casi siempre cambian en conjunto. Los microservicios permiten implementar cambios con la frecuencia que sea necesario mientras se disminuye la carga de la prueba de la aplicación en general. Es posible que algunos servicios sean muy pequeños. Para ellos, el modo sin servidor con Azure Functions funciona bien para escalar horizontalmente a los autores de llamada que sean necesarios a la vez que no se consume ningún recurso cuando no se está en uso. Otros servicios se dividirán según las funcionalidades empresariales: administrar el producto, capturar los pedidos de cliente, etc.

Los mecanismos sin servidor sí presentan inconvenientes: cuando se está bajo una carga ligera, pueden ser lentos en responder porque algún servidor en la nube tarda unos segundos en configurar y ejecutar el código. En el caso de los elementos del entorno que los clientes usan con mucha frecuencia, es posible que quiera asegurarse de que pueden encontrar productos, hacer pedidos, solicitar devoluciones, etc. de manera rápida y sencilla. Cada vez que el rendimiento se ralentiza, se corre el riesgo de perder clientes en el embudo de la compra. Si tiene una funcionalidad que debe responder rápidamente, recompile esa funcionalidad como unidades individualmente implementables en Azure Kubernetes Service. En otros casos, como los servicios que requieren cierta combinación de grandes cantidades de memoria, varias CPU y gran cantidad de almacenamiento local, puede que tenga sentido hospedar el microservicio en su propia máquina virtual.

Cada servicio usa una API para la interacción. El acceso a la API puede ser directo al microservicio, pero para esto se requiere que cualquier usuario que se comunique con el servicio conozca la topología de la aplicación. Un servicio como API Management ofrece un modo centralizado para publicar las API. Todas las aplicaciones simplemente se conectan al servicio API Management. Los desarrolladores pueden detectar cuáles son las API que se encuentran disponibles. El servicio API Management también proporciona funcionalidades que permitirán que el entorno minorista funcione correctamente. El servicio puede limitar el acceso a la API por distintas partes de la aplicación (para evitar cuellos de botella), almacenar en caché las respuestas para disminuir los valores de cambios, convertir de JSON a XML, etc. Aquí puede encontrar una lista completa de las directivas.

Uso de datos y Azure Marketplace

Dado que tiene todos los datos y sistemas en Azure, puede incorporar de manera sencilla otras soluciones de SaaS al negocio. Puede hacer algunas acciones de inmediato. Por ejemplo, use Power BI para unir varios orígenes de datos con el fin de crear visualizaciones e informes y obtener información detallada.

Luego, eche un vistazo a las ofertas que existen en Azure Marketplace que pueden ayudarlo a llevar a cabo acciones como optimizar el inventario, administrar campañas en función de los atributos del cliente y presentar los artículos adecuados a cada cliente según sus preferencias e historial. Tendrá que dedicar algo de tiempo a configurar los datos para que funcionen en las ofertas de Marketplace.

Componentes

Usadas durante la etapa de rehospedaje:

  • Azure Advisor es un consultor en la nube personalizado que ayuda a seguir los procedimientos recomendados para optimizar las implementaciones de Azure.
  • El servicio Azure Migrate evalúa las cargas de trabajo locales para su migración a Azure.
  • Azure Site Recovery orquesta y administra la recuperación ante desastres de las máquinas virtuales de Azure y de las máquinas virtuales y servidores físicos locales.
  • Azure Virtual Network permite muchos tipos de recursos de Azure, como máquinas virtuales (VM) de Azure, para comunicarse de forma segura entre ellos, con Internet y con las redes locales.
  • Azure ExpressRoute permite ampliar las redes locales en la nube de Microsoft a través de una conexión privada que facilita un proveedor de conectividad.

Usadas durante la etapa de refactorización:

  • Azure Kubernetes Service permite administrar el entorno hospedado de Kubernetes, lo que hace que sea fácil y rápido implementar y administrar aplicaciones en contenedores sin necesidad de tener conocimientos de orquestación de contenedores.
  • Azure SQL Database es un servicio administrado de base de datos relacional de uso general de Microsoft, que permite estructuras como datos relacionales, JSON, espacial y XML. SQL Database ofrece bases de datos SQL individuales administradas, bases de datos SQL administradas en un grupo elástico e Instancias administradas de SQL.

Usadas durante la etapa de recompilación:

  • Azure API Management ayuda a las organizaciones a publicar API para desarrolladores externos, asociados e internos para liberar el potencial de sus datos y servicios.
  • Azure Functions es una solución para ejecutar fácilmente pequeños fragmentos de código, o "funciones", en la nube.
  • Power BI es un conjunto de herramientas de análisis empresarial que proporciona información detallada acerca de toda la organización.

Conclusión

Migrar un sistema de comercio electrónico a Azure requiere análisis, planeamiento y un enfoque definido. Analizamos un enfoque de tres fases: rehospedaje, refactorización y recompilación. Este permite que una organización pase de un estado funcional a otro, mientras se minimiza la cantidad de cambios en cada paso. Los comerciantes minoristas también pueden elegir refactorizar o incluso recompilar componentes, omitiendo por completo la fase de rehospedaje. En muchas ocasiones, tendrá una ruta clara hacia la modernización: aprovéchela cuando pueda. A medida que gana experiencia en la ejecución de Azure, verá más oportunidades de agregar funcionalidades nuevas, disminuir costos y mejorar el sistema general.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Creadores de entidad de seguridad:

Pasos siguientes

Muchos equipos de desarrollo se ven tentados a realizar al mismo tiempo las etapas de rehospedaje y refactorización para abordar la deuda técnica y aprovechar mejor la capacidad. Hay ventajas si se realiza el rehospedaje antes de pasar a los pasos siguientes. Cualquier problema en la implementación en el entorno nuevo será más fácil de diagnosticar y corregir. A su vez, esto brinda a los equipos de desarrollo y soporte técnico el tiempo necesario para aprender a usar Azure como el entorno nuevo. Cuando empieza a refactorizar y recompilar el sistema, se basa en una aplicación funcional y estable. Esto permite realizar cambios más pequeños y dirigidos y actualizaciones más frecuentes.

Documentación del producto: