Los microservicios se originan como solución alternativa para satisfacer las necesidades de las empresas de implementar y realizar cambios en el software de forma rápida y sencilla.
Esto hace que cada vez mas empresas a nivel mundial se vayan por los microservicios, aquí te presentamos algunas de las ventajas y desventajas.
Ventajas:
- Código reutilizable. La división del software en módulos pequeños y bien definidos permite a los equipos usar funciones para diferentes propósitos. Un servicio escrito para una determinada función se puede usar como un componente básico para otra característica. Con lo que permite que una aplicación arranque por sí sola, ya que los desarrolladores pueden crear nuevas capacidades sin tener que escribir código desde cero.
- Escalabilidad. Los microservicios son aplicaciones modulares que se pueden replicar e integrar con facilidad, permitiendo que tu aplicación pueda crecer con mayor rapidez.
- Implementación sencilla. Las aplicaciones basadas en microservicios son modulares, por lo que su implementación es más ágil y sencilla que en aplicaciones monolíticas. Los microservicios permiten la integración continua, lo que facilita probar nuevas ideas y revertirlas si algo no funciona.
- Agilidad en cambios. Cada microservicio puede estar desarrollado sobre una tecnología diferente, por lo que puedes elegir la tecnología que mejor se adapte para la aplicación. Los equipos pueden trabajar de forma más independiente y rápida, acortando los tiempos del ciclo de desarrollo.
- Menor riesgo. Los microservicios no necesitan de contenedores para ser implementadas, por lo que sí una parte falla, no afectará a toda la aplicación. Algo que si ocurría con un desarrollo tradicional.
- Aplicación independiente. Cada microservicio es totalmente independiente, por lo que seguir el código es más fácil que si tratase de una aplicación integral. Además, cada desarrollador puede trabajar de forma simultánea.
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