Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

.

Docente: Mauro Bahena


Alumno: Medina Martínez Mónica Kerime
Arquitectura de Capas y Microservicios
Infraestructura de Redes Digitales
2G
.
Arquitectura de Microservicios
Definición de Arquitectura:

La arquitectura de microservicios es un enfoque moderno y flexible para el desarrollo de


aplicaciones basadas en la nube. En contraste con la arquitectura monolítica, donde una
aplicación se ejecuta en un único servidor, los microservicios son módulos ligeros con
acople suelto. Operan de forma independiente, pero se comunican a través de una interfaz
unificada, como API. Pueden escalar dinámicamente para adaptarse a las demandas de la
carga de trabajo, ejecutándose en uno o varios servidores. Los microservicios suelen
encapsularse en contenedores para mejorar la portabilidad y escalabilidad. Este enfoque
contrasta con la arquitectura monolítica, que tiene un servidor único o virtualizado asignado
a toda la aplicación, con un hardware fijo y una lógica centralizada en un solo código base.

Características

➔ Descomposición en partes independientes:

Los servicios pueden ser desplegados y modificados de forma independiente, lo que facilita
el desarrollo, despliegue y mantenimiento.

➔ Organización basada en capacidades, necesidades y preferencias:

La organización está diseñada considerando las capacidades y preferencias del negocio o


cliente, lo que permite una adaptación más efectiva a los requisitos específicos.

➔ Uso de módulos multifuncionales:

La arquitectura utiliza módulos multifuncionales que permiten la creación de un módulo


común para ofrecer un servicio específico, favoreciendo la reutilización de componentes y el
ahorro de tiempo.

➔ Independencia de bases de datos por módulo:

Cada módulo tiene su propia base de datos, evitando la sobrecarga y la caída de la


aplicación al distribuir la carga de manera más eficiente.

➔ Sistemas de aviso y actuación:

La comunicación entre servicios requiere sistemas de aviso y actuación para manejar


posibles fallos. Esto asegura una gestión efectiva y una respuesta rápida ante problemas,
evitando que un fallo en un servicio afecte negativamente a otros.

Ventajas

➢ Equipo de trabajo mínimo


➢ Escalabilidad Funcionalidad modular, módulos independientes.
➢ Libertad del desarrollador de desarrollar y desplegar servicios de forma
independiente
➢ Uso de contenedores permitiendo el despliegue y el desarrollo de la aplicación
rápidamente
.
Desventajas

➢ Alto consumo de memoria


➢ Necesidad de tiempo para poder fragmentar distintos microservicios
➢ Complejidad de gestión de un gran número de servicios
➢ Necesidad de desarrolladores para la solución de problemas como latencia en la red
o balanceo de cargas
➢ Pruebas o testeos complicados al despliegue distribuido

Ejemplos de aplicaciones reales:

➢ Netflix:
○ - Netflix es conocido por su enfoque en microservicios. Cada funcionalidad,
como la gestión de usuarios, recomendaciones, reproducción de video, etc.,
se implementa como un servicio independiente.
➢ Amazon:
○ - Amazon utiliza una arquitectura basada en microservicios para sus
diversas plataformas, como Amazon Prime, Amazon Web Services (AWS), y
otros servicios. Cada servicio se desarrolla y opera de manera
independiente.
➢ Uber:
○ - Uber ha adoptado microservicios para gestionar diferentes aspectos de su
plataforma, como la gestión de viajes, pagos, ubicación en tiempo real, etc.
Cada uno de estos componentes es un servicio independiente.
➢ Spotify:
○ - Spotify utiliza microservicios para su plataforma de música en streaming.
Cada función, como la gestión de listas de reproducción, búsqueda,
recomendaciones, etc., se implementa como un servicio separado.
➢ Airbnb:
○ - Airbnb ha migrado gradualmente hacia una arquitectura de microservicios
para mejorar la escalabilidad y la flexibilidad de su plataforma de reservas y
servicios relacionados.

.
Conclusión

En resumen, la arquitectura de microservicios ofrece una aproximación modular y


descentralizada al desarrollo de aplicaciones. Este enfoque permite descomponer una
aplicación en servicios independientes, cada uno con su propia responsabilidad y base de
datos. Esta descentralización facilita la escalabilidad, la flexibilidad y la adaptabilidad a los
requisitos específicos del negocio o cliente. Ejemplos de empresas como Netflix, Amazon,
Uber, Spotify y Airbnb demuestran cómo la adopción de microservicios ha resultado
beneficiosa para construir sistemas robustos, fáciles de mantener y capaces de evolucionar
de manera ágil en un entorno tecnológico en constante cambio. La independencia de cada
servicio, junto con sistemas efectivos de aviso y actuación, contribuye a la estabilidad y
confiabilidad de la aplicación en su conjunto. En general, la arquitectura de microservicios
se ha convertido en una opción popular para empresas que buscan agilidad y eficiencia en
el desarrollo y operación de aplicaciones.

Biografías

- Martinekuan. (s. f.). Arquitectura de microservicios en AKS - Azure Architecture


Center. Microsoft Learn.
https://learn.microsoft.com/es-es/azure/architecture/reference-architectures/container
s/aks-microservices/aks-microservices
- The Impact of Application Modernization on the Data Layer”. [IDC Analyze the
future]. (2021, junio). Microservicios y arquitectura de microservicios. intel.
Recuperado 2 de febrero de 2024, de
https://www.intel.la/content/www/xl/es/cloud-computing/microservices.html#:~:text=L
a%20arquitectura%20de%20microservicios%20se,servidores%20siempre%20est%C
3%A1n%20en%20ejecuci%C3%B3n
.
Arquitecturas de Software en Capas:

Definición de la arquitectura:

La arquitectura en capas es un patrón comúnmente empleado en el diseño de software,


caracterizado por una distribución jerárquica de roles y responsabilidades. Esta estructura
proporciona una separación efectiva de las preocupaciones, asignando tareas específicas a
cada capa. Visualmente, se asemeja a un pastel, donde cada capa representa un
subsistema de software y descansa sobre la capa inferior, facilitando la comprensión y el
mantenimiento del sistema. Este enfoque modular favorece la flexibilidad y la escalabilidad
en el desarrollo de aplicaciones.
La arquitectura en capas es un patrón comúnmente empleado en el diseño de software,
caracterizado por una distribución jerárquica de roles y responsabilidades. Esta estructura
proporciona una separación efectiva de las preocupaciones, asignando tareas específicas a
cada capa. Visualmente, se asemeja a un pastel, donde cada capa representa un
subsistema de software y descansa sobre la capa inferior, facilitando la comprensión y el
mantenimiento del sistema. Este enfoque modular favorece la flexibilidad y la escalabilidad
en el desarrollo de aplicaciones.

Ventajas

➢ Modularidad: facilita el desarrollo, la prueba y el mantenimiento de


cada capa de forma independiente.
➢ Separación de responsabilidades: permite la separación de
responsabilidades y una mayor claridad en la arquitectura, ya que
cada capa tiene una función específica.
➢ Reutilización: posibilita que las capas se reutilicen en diferentes
proyectos, lo que reduce el tiempo y los costos de desarrollo.
➢ Escalabilidad: significa que se pueden agregar o quitar capas según
las necesidades del sistema.
➢ Flexibilidad: es adaptable a diferentes entornos y requisitos del
sistema.
.
Desventajas

➢ Complejidad: aumenta la complejidad del sistema debido a la


necesidad de interfaces y comunicación entre las capas.
➢ Tiempo y esfuerzo de desarrollo: requiere más tiempo y esfuerzo de
desarrollo debido a la necesidad de diseñar, desarrollar y probar
cada capa por separado.
➢ Consumo de recursos: aumenta el consumo de recursos del sistema,
como el uso de memoria y CPU, debido a la necesidad de
comunicación entre las capas.
➢ Costos: eleva los costos del desarrollo debido a la necesidad de
diseñar y desarrollar varias capas separadas.
➢ Rendimiento: disminuye el rendimiento del sistema debido a la
necesidad de comunicación entre las capas.

Diseño o Diagrama Conceptual:

Ejemplos de Aplicaciones Reales:


- Sistemas Bancarios:
Capa de presentación para clientes, capa lógica para procesamiento de transacciones, capa
de acceso a datos para interactuar con la base de datos.
- Sistemas de Reservas en Línea:
Interfaz de usuario, lógica para gestionar reservas, capa de acceso a datos para almacenar
información de reservas.

Conclusión de Uso:
La arquitectura en capas es beneficiosa para aplicaciones donde la separación de
responsabilidades y la facilidad de mantenimiento son críticas. Es especialmente útil en
sistemas grandes y complejos. Sin embargo, para aplicaciones más simples, la introducción
de capas puede ser innecesaria.

Bibliografía o Fuente de Información:


- Sommerville, I. (2011). "Software Engineering" (9th ed.). Addison-Wesley.
- Fowler, M. (2002). "Patterns of Enterprise Application Architecture". Addison-Wesley.

También podría gustarte