Microservicios: qué son y qué ventajas tienen
La entrega continua (CD) consiste en automatizar la publicación de software en iteraciones breves
Prueba Compass gratis
Improve your developer experience, catalog all services, and increase software health.
Hasta aproximadamente 2013, las empresas solían crear software empresarial mediante la construcción de aplicaciones como unidades individuales con grandes códigos base, una arquitectura monolítica. A medida que el software se hizo más complejo y la informática en la nube ganó popularidad, este enfoque se hizo menos práctico.
La llegada de los productos de software como servicio (aplicaciones en la nube) permitió a las empresas utilizar proveedores, como Amazon Web Services, para crear nuevos servidores y añadir redundancia rápidamente. Esto garantizó que los servicios permanecieran en línea durante las actualizaciones. También marcó el comienzo de una nueva era de velocidad y agilidad. Los usuarios empezaron a esperar actualizaciones y mejoras rápidas, lo que llevó a las empresas a cambiar sus procesos de desarrollo.
Las empresas comenzaron a dividir las aplicaciones en microservicios o servicios más pequeños e independientes. Por ejemplo, en lugar de incluir una bandeja de entrada de mensajería como parte de una plataforma de comercio electrónico monolítica, podrían crear un microservicio independiente para esta función.
Paralelamente, los desarrolladores empezaron a trabajar en grupos más pequeños y especializados que modificaban y mejoraban los servicios individuales sin poner en riesgo toda la aplicación. Estos grupos también solían asumir la responsabilidad de las operaciones de su código, un modelo llamado DevOps. Para facilitar estos cambios, los gerentes de proyectos comenzaron a desarrollar nuevas metodologías, como la metodología ágil, que divide los proyectos en publicaciones más pequeñas y frecuentes.
Sigue leyendo para obtener más información sobre la anatomía de las aplicaciones basadas en microservicios. Descubre también cómo Compass de Atlassian reduce la complejidad y permite a los desarrolladores aprovechar las ventajas de este modelo arquitectónico.
¿Qué son los microservicios?
Un microservicio es una función responsable de una única lógica (excepto los microservicios de dominio, que explicaremos más adelante). Varios microservicios se combinan para crear aplicaciones distribuidas, como Jira Software.

Hay tres tipos de microservicios:
- 1
Domain microservices loosely couple services with related functionality.
- 2
Los microservicios de integración facilitan la interacción entre aplicaciones no relacionadas.
- 3
Los microservicios de unidad de trabajo gestionan funciones singulares.
Los microservicios interactúan entre sí mediante interfaces de programación de aplicaciones (API). Los desarrolladores que trabajan en servicios individuales pueden aprender el funcionamiento interno de los otros microservicios, lo cual es otra ventaja sobre la arquitectura monolítica.
La arquitectura basada en microservicios ofrece muchas ventajas, pero también añade complejidad. Por eso Atlassian desarrolló Compass para ayudar a las empresas a simplificar a medida que escalan. Esta plataforma de experiencia para desarrolladores reúne toda la información sobre los resultados de ingeniería y la colaboración en equipo en una ubicación central en la que se pueden realizar búsquedas.
Principios clave de los microservicios
Microservices-based architecture has several distinguishing features. Developers can develop and deploy their services independently using the languages and technologies that suit their components.
Communication between microservices is API-based, allowing access to data from various sources without modification. Individual services can scale based on demand, saving costs and ensuring availability.
These attributes make microservices-based distributed applications flexible and easy to maintain.
Ventajas de los microservicios
Microservices provide many advantages. They simplify development and project management. Sometimes, they may eliminate the need for separate operations teams since developers can handle operations for the microservices they build.
Some other benefits of microservices include:

Resiliencia y aislamiento de fallos
En las arquitecturas monolíticas, un error afecta a toda la aplicación, pero los microservicios son independientes: un error no afectará a las demás partes de la aplicación.

Agilidad
Dividir las aplicaciones en partes más pequeñas acelera el desarrollo. Permite a los equipos crear, probar e implementar el software con mayor rapidez.

Diversidad tecnológica
Los microservicios permiten a los desarrolladores elegir las herramientas y tecnologías adecuadas para el trabajo, lo que aumenta la eficiencia y la productividad.

Mantenimiento mejorado
La posibilidad de probar componentes individuales facilita la búsqueda y corrección de errores sin tener que desconectar toda la aplicación.

Resiliencia y aislamiento de fallos
En las arquitecturas monolíticas, un error afecta a toda la aplicación, pero los microservicios son independientes: un error no afectará a las demás partes de la aplicación.

Agilidad
Dividir las aplicaciones en partes más pequeñas acelera el desarrollo. Permite a los equipos crear, probar e implementar el software con mayor rapidez.

Diversidad tecnológica
Los microservicios permiten a los desarrolladores elegir las herramientas y tecnologías adecuadas para el trabajo, lo que aumenta la eficiencia y la productividad.

Mantenimiento mejorado
La posibilidad de probar componentes individuales facilita la búsqueda y corrección de errores sin tener que desconectar toda la aplicación.
Desafíos de los microservicios
Microservices-based architecture has many benefits, but it also comes with challenges.
One challenge of microservices is that the independent services generate their logs. This is a disadvantage compared to monoliths' centralized logs, which provide a single source of truth for developers and operations teams. Monitoring and infrastructure management are also more complicated since many moving pieces exist. Testing and debugging are challenging because, unlike monoliths, no integrated development environment (IDE) exists.
Atlassian's Compass can help with all these challenges. Compass facilitates collaboration and allows companies to manage the complexities of distributed architectures as they scale. It does this by bringing the disconnected information together in a central, searchable location.
¿Para qué se utiliza la arquitectura de microservicios?
Los sitios web de gran tamaño para consumidores suelen utilizar cientos o miles de microservicios. Los microservicios son particularmente útiles para los siguientes casos prácticos y sectores:
- Los sitios de comercio electrónico como eBay utilizan microservicios independientes para los carritos de compras, las aplicaciones móviles y la mensajería.
- Las instituciones financieras como Bank of America utilizan microservicios para comunicarse con servicios externos. También los utilizan para gestionar funciones como las autorizaciones de los usuarios y la visualización de las transacciones.
- Las plataformas de redes sociales como Instagram y Facebook utilizan microservicios para mostrar los feeds de noticias, los mensajes, las notificaciones y las redes de amigos de los usuarios.
Prácticas recomendadas para gestionar microservicios
A lo largo de los años, los desarrolladores han creado decenas de prácticas recomendadas esenciales para el desarrollo de microservicios. A continuación se muestran algunos ejemplos:
- El principio de responsabilidad única (SRP) especifica que cada módulo o microservicio debe tener solo una función. La integración continua (CI) de SRP es una metodología de control del código fuente que automatiza las comprobaciones de calidad del código antes de fusionar en un proyecto, lo que permite aumentar la velocidad al eliminar la necesidad de un proceso de control de calidad independiente. Esta práctica recomendada de DevOps contribuye a la velocidad. La CI precede a la entrega continua (CD), que ejecuta herramientas de creación automatizadas para mantener el software listo para implementarse.
- Las pasarelas de API simplifican la comunicación entre los microservicios, gestionan la autenticación y la autorización y aumentan la seguridad.
- La comunicación asincrónica entre microservicios preserva la autonomía y reduce las dependencias que podrían ralentizar el funcionamiento de la aplicación.
- El control de versiones de microservicios es fundamental cuando los desarrolladores implementan cambios importantes, como eliminar una operación completa. Esta práctica suaviza las transiciones y minimiza la probabilidad de interrupción del servicio.
Open DevOps de Atlassian, con tecnología de Jira Software, facilita a los equipos la integración automática de Atlassian y las herramientas de partners, lo que les permite centrarse en crear y utilizar software.
Gestiona mejor tu arquitectura de microservicios con Compass
Compass de Atlassian es una plataforma de experiencia para desarrolladores que reúne la arquitectura de software distribuida y la colaboración de los equipos en un solo lugar. Además, proporciona una visión general práctica de todos los componentes y servicios en los que trabaja un equipo. También incluye un catálogo de componentes de software para ayudar a los desarrolladores a encontrar fácilmente lo que buscan.

Compass permite gestionar fácilmente los componentes, el seguimiento de la propiedad y la supervisión de las relaciones. Además, lleva un registro de los cambios en tiempo real.
Integrar Compass en tu entorno de desarrollo es muy fácil gracias a su interfaz de usuario personalizable y a su compatibilidad con herramientas internas y de terceros. Descubre cómo gestionar tu arquitectura de microservicios con Compass y cómo reúne la información suelta en una ubicación central y unificada.
Microservicios: preguntas frecuentes
What tools do people commonly use in microservices?
Las empresas suelen utilizar herramientas de contenedorización, como Kubernetes y Docker. También utilizan con frecuencia puertas de enlace de API entre los microservicios y sus clientes. Estas pasarelas realizan funciones de tráfico de API, como la autenticación, el control de accesos y el equilibrio de cargas.
¿En qué se diferencian los microservicios de la arquitectura monolítica?
Los monolitos son grandes códigos base que funcionan como un solo sistema. Requieren tiempo de inactividad del sistema para las actualizaciones y la depuración. Las arquitecturas de microservicios son aplicaciones distribuidas con funciones más pequeñas e independientes. Los desarrolladores pueden actualizar, mejorar y depurar estos módulos sin tener que desconectar toda la aplicación, lo que simplifica el escalado y ayuda a acelerar el desarrollo.
¿Cómo afectan los microservicios a DevOps?
Quienes entienden DevOps saben que la integración continua y la entrega continua (la canalización de CI/CD de DevOps) son los pilares de las metodologías de DevOps. La naturaleza modular de los microservicios concuerda perfectamente con este enfoque. Los microservicios permiten a los desarrolladores crear, probar e implementar rápidamente publicaciones pequeñas y frecuentes.
Únete a la Comunidad de Atlassian para ver más artículos y debates sobre microservicios.