Elección de una opción de hospedaje adecuada para la aplicación de MySQL

Completado

Si va a desarrollar una nueva aplicación o modernizar una existente, elegir la opción de hospedaje adecuada es fundamental para optimizar el rendimiento, la seguridad y la rentabilidad. Tradicionalmente, las aplicaciones se hospedaban en servidores web como Internet Information Services (IIS), Apache o NGINX en hardware físico o virtualizado local. Aunque esta opción ofrece la ventaja de proporcionar al equipo de infraestructura control total del entorno, requiere un esfuerzo adicional para administrar la sobrecarga, los costos iniciales, la disponibilidad, la escalabilidad, la resistencia, la seguridad y el cumplimiento.

Al implementar la aplicación en la nube, elimina la necesidad de administrar estas áreas. Hospedar una aplicación en la nube reduce los costos generales de configuración, proporciona una mayor disponibilidad y confiabilidad con opciones de continuidad empresarial y recuperación ante desastres (BCDR); permite escalar los recursos de la aplicación a petición; y proporciona seguridad avanzada.

Microsoft Azure ofrece una amplia gama de opciones de hospedaje de aplicaciones personalizadas para abordar los requisitos arquitectónicos y los casos de uso de la aplicación.

Diagrama que muestra los tipos de aplicaciones MySQL y los servicios de Azure correspondientes.

Muchas de estas opciones de hospedaje de aplicaciones se integran perfectamente con Azure Database for MySQL: Servidor flexible, un servicio especialmente eficaz para las bases de datos back-end debido a su escalabilidad, rendimiento y capacidad de administración. En esta unidad se exploran algunas arquitecturas comunes de aplicaciones de MySQL y servicios de Azure para ayudarle a determinar la opción de hospedaje más adecuada para la carga de trabajo de la aplicación.

Aplicaciones web en Azure App Service

MySQL es una de las bases de datos más populares para desarrollar aplicaciones web y móviles debido a su portabilidad, velocidad, escalabilidad y confiabilidad, todo ello a bajo costo. Mediante el uso de Azure Database for MySQL: Servidor flexible en el back-end, puede crear aplicaciones de escalado de Internet ligeras o críticas LAMP (Linux-Apache-MySQL-PHP). También puede desarrollar con CMS populares como WordPress, Moodle o Joomla, sistemas de administración de aprendizaje como Moodle y plataformas de comercio electrónico como Magento, que son compatibles con Azure Database for MySQL : Servidor flexible.

Los desarrolladores pueden implementar estas aplicaciones web y móviles respaldadas por MySQL en un entorno Windows o Linux mediante Azure App Service, una solución de plataforma como servicio (PaaS) basada en HTTP para hospedar aplicaciones web, API de REST y back-ends móviles. Con Azure App Service, puede reducir la sobrecarga de administración, desarrollar en sus lenguajes favoritos, automatizar la implementación de aplicaciones, escalar y reducir verticalmente rápidamente e incluso "dockerizar" la aplicación para hospedar contenedores personalizados de Windows o Linux Docker.

Aplicaciones en contenedor en Azure Kubernetes Service o Azure Container Apps (arquitectura de microservicios)

Recientemente, las aplicaciones con arquitectura de microservicios han sido cada vez más populares para su eficiencia, resistencia, escalabilidad y facilidad de implementación. A diferencia de las aplicaciones monolíticas tradicionales, cada microservicio o contenedor funciona de forma independiente y se puede actualizar sin volver a implementar toda la aplicación.

En Azure, puede implementar estos microservicios en Azure Kubernetes Service (AKS), un servicio de Kubernetes totalmente administrado que le ayuda a definir, implementar, depurar y actualizar fácilmente, incluso las aplicaciones en contenedores más complejas.

Además de AKS, Azure Container Apps (ACA) ofrece un servicio de hospedaje de contenedores sin servidor ideal para aplicaciones modernas creadas a partir de microservicios. ACA simplifica la implementación y el escalado de contenedores sin administrar la infraestructura subyacente, como máquinas virtuales o clústeres de Kubernetes. Se integra bien con Azure Logic Apps y Azure Functions para la arquitectura controlada por eventos, lo que admite el escalado rápido y la administración de componentes de la aplicación. ACA es especialmente beneficioso para las aplicaciones que requieren operaciones ágiles y iteraciones rápidas, lo que proporciona opciones de escalado dinámico basadas en el tráfico HTTP o desencadenadores controlados por eventos. Este servicio admite contenedores de Windows y Linux, lo que le permite implementar microservicios desarrollados en varios entornos de programación sin problemas.

Al aprovechar ACA junto con las implementaciones tradicionales de Kubernetes a través de AKS, puede disfrutar de más flexibilidad en cómo orquestan, escalan y administran sus aplicaciones en contenedor. Este enfoque no solo maximiza la eficacia operativa, sino que también mejora la capacidad de responder rápidamente a los cambios de mercado y las demandas de los clientes.

Aplicaciones sin servidor controladas por eventos con Azure Functions y Azure Logic Apps

Las aplicaciones sin servidor aceleran el desarrollo mediante un modelo controlado por eventos, con desencadenadores que ejecutan código automáticamente para responder a eventos y enlaces para integrar sin problemas servicios adicionales. Solo se le cobra por el tiempo y los recursos empleados en ejecutar el código.

Azure Functions y Azure Logic Apps son soluciones sin servidor en Azure que le permiten crear sistemas para reaccionar a una serie de eventos críticos.

  • Azure Functions Azure Functions es un servicio de proceso sin servidor muy versátil que ejecuta código en respuesta a una variedad de desencadenadores, como solicitudes HTTP, eventos de temporizador (trabajos cron) o eventos de servicio de Azure (como mensajes de colas de Azure Storage o Service Bus). Esta flexibilidad le permite crear aplicaciones que respondan en tiempo real a los cambios sin administrar la infraestructura del servidor. Azure Functions admite una amplia gama de lenguajes de programación, como C#, Java, JavaScript, Python y PowerShell, lo que hace que sea accesible para una base de desarrollador diversa. Estas funciones también pueden interactuar con otros recursos de Azure.
  • Azure Logic Apps proporciona una experiencia de diseño sin servidor que ayuda a automatizar y organizar tareas, procesos y flujos de trabajo entre aplicaciones y entre empresas. Con un diseñador visual en Azure Portal o en Visual Studio, puede configurar flujos de trabajo para automatizar escenarios empresariales complejos con codificación mínima. Estos flujos de trabajo organizan una colección de funciones o pasos denominados acciones que se ejecutan para realizar una tarea compleja, como el procesamiento de pedidos por lotes y la agregación de resultados.

Azure también proporciona servicios como Azure Event Grid, Azure Service Bus, y Azure Event Hubs para retransmitir y administrar eventos y mensajes que pueden desencadenar aplicaciones sin servidor en flujos de trabajo controlados por eventos.

Aplicaciones heredadas monolíticas en máquinas virtuales de Azure

Algunas organizaciones pueden tener aplicaciones heredadas con arquitecturas monolíticas estrechamente acopladas con procesos empresariales y difíciles de modernizar. Puede migrar estas aplicaciones a Azure mediante un modelo lift-and-shift y hospedarlas en Azure Virtual Machines, que es un servicio de infraestructura como servicio (IaaS).

Aunque las ventajas de Azure incluyen la capacidad de habilitar servicios de copia de seguridad y restauración, cifrado de disco y opciones de escalado que no requieren costos iniciales, todavía tendrá que invertir esfuerzo manual para implementar, mantener y administrar aplicaciones en máquinas virtuales de Azure.