Pros y contras para usar microservicios

ackstormBlogMicroservices

Pros y contras para usar microservicios

Llevamos ya unos cuantos años con los microservicios, pero la respuesta a la pregunta de ¿cómo usar microservicios? Sigue siendo la misma: ¡No lo sé!

No existen unas pautas concretas que se deban seguir para crear una aplicación para usar microservicios. Sin embargo, se pueden dar algunos consejos sobre en qué fijarse al diseñar la arquitectura (por ejemplo desacoplar al cliente de una base de datos de la aplicación principal), pero al final cada caso de uso es diferente, y dependerá de la lógica de su negocio.

Ventajas de usar microservicios

  • Son más fáciles de mantener y testear, puesto que son servicios pequeños que hacen una sóla cosa, pero lo hacen bien.
  • No están integrados en el sistema principal (loosely coupled), por tanto son más fáciles de desarrollar y desplegar. Pueden tener una escalabilidad independiente y se pueden aislar los fallos a un microservicio en concreto, en vez de una sección o funcionamiento de la aplicación.
  • Organizado en torno a las capacidades empresariales. No son necesarios cambios radicales en el stack de tecnología que se utiliza, sino que para cada servicio se puede utilizar la tecnología más adecuada.
  • A nivel de un equipo de desarrolladores, es más fácil entrar y empezar a ser productivo, ya que se tiene que entender el funcionamiento de varios servicios pequeños en vez de uno grande. Por tanto, tenemos un desarrollo más alineado con las metodologías DevOps y Agile.

Desventajas de usar microservicios

  • Hay que lidiar con la complejidad adicional de los sistemas distribuidos. Implementar comunicación interna entre los servicios, implementar dependencias de un servicio hacía el otro, solicitudes que pueden extenderse a varios servicios, etc.
  • La complejidad del despliegue en sí. Es muy difícil gestionar microservicios. Mantener esa armonía requiere una coordinación perfecta, que de hecho es imposible sin soluciones como kubernetes.
  • Mayor consumo de recursos. Puesto que cada microservicio tiene su propio Sistema Operativo y dependencias, al final sale más caro a nivel de recursos usar microservicios que un monolito; que es un Sistema Operativo, y sus dependencias.

Conclusiones

Aunque es conveniente, una aplicación no tiene que ser de microservicios para considerar kubernetes como plataforma. De hecho, si más adelante se decide desacoplar los servicios, la transformación de una aplicación monolítica funcional a microservicios puede ser más fácil estando en kubernetes, por todas las prestaciones de kubernetes a la hora del proceso de tests, pruebas de concepto, etc. Las ventajas y desventajas no son lecciones que aprender, sino hechos, que uno irá confirmando a la hora de tener las manos en la masa.

¡Tenemos soluciones para tu empresa!

Contacta con nosotros