Comparación de Aplicaciones Monolíticas y Microservicios
Clase 3 de 17 • Curso de Introducción al Despliegue de Aplicaciones
Resumen
¿Qué son las aplicaciones monolíticas y los microservicios?
En el mundo del desarrollo de software, un enfoque fundamental ha sido la transición de aplicaciones monolíticas a microservicios. Durante los años noventa, una serie de lenguajes de programación como PHP y Pearl permitieron el desarrollo rápido y sencillo de aplicaciones web. Una aplicación típica contenía todo, desde HTML, CSS, JavaScript hasta código PHP y consultas a bases de datos en un solo archivo. Aunque esta técnica facilitaba el desarrollo, presentaba desventajas considerables: una sola línea de código errónea podía hacer que toda la aplicación fallara.
¿Cómo evolucionó el desarrollo web?
A medida que avanzaba el tiempo, los motores de plantillas permitieron separar el HTML y CSS del archivo PHP principal. Mientras tanto, las consultas a la base de datos comenzaron a manejarse mediante sistemas llamados ORMs, y surgieron frameworks que mejoraron aún más este proceso. A pesar de estas mejoras, el principal problema persistía: reunir toda la aplicación en un solo servidor. Esto significaba que cualquier problema, ya sea en el servidor, la memoria RAM o la conexión a Internet, podía provocar que la aplicación dejara de funcionar por completo.
¿Qué rol juegan el bajo acoplamiento y la alta cohesión?
Con el tiempo, la ingeniería de software avanzó significativamente, enfocándose en el concepto de bajo acoplamiento y alta cohesión. Este principio sugiere separar los componentes de las aplicaciones, no solo a nivel lógico, sino también físico. A medida que estas técnicas ganaban popularidad, surgieron los microservicios como una solución viable.
¿Qué es un microservicio?
Un microservicio es un componente o aplicación que se ocupa de realizar una sola función específica. Hoy en día, las aplicaciones modernas no dependen exclusivamente de un único servidor. Es posible desarrollar una aplicación que utilice microservicios o elementos externos de distintos sitios.
¿Cuáles son algunos ejemplos de microservicios?
- CSS y UI frameworks: Puedes aprovechar CSS de frameworks como Bootstrap directamente desde su sitio web.
- Fuentes web: Usar Google Fonts para integrar estilos tipográficos específicos.
- Herramientas de análisis: Para monitorear el tráfico de tu sitio, se puede utilizar Google Analytics.
- Autenticación: Implementar inicio de sesión mediante redes sociales como Facebook o Twitter.
- APIs externas: Traer datos adicionales a tu aplicación utilizando APIs de terceros.
¿Cuáles son los beneficios de los microservicios?
La estructura de microservicios permite que cada elemento de la aplicación se ejecute independientemente y se gestione por separado. Esto proporciona varias ventajas importantes:
- Redundancia mejorada: En caso de fallos en un servidor, se pueden usar servidores de respaldo.
- Escalabilidad: Mejor gestión de recursos y escalabilidad según las necesidades de la aplicación.
- Menor dependencia: Minimización de la dependencia de un solo punto de fallo.
- Flexibilidad: Facilidad para integrar y gestionar diversas tecnologías y servicios.
La evolución hacia el uso de microservicios ha revolucionado la forma de desplegar y gestionar aplicaciones web, permitiendo una mayor eficiencia y optimización. Los desarrolladores hoy en día tienen la habilidad de crear aplicaciones robustas y escalables que pueden superar los límites de las aplicaciones monolíticas tradicionales.