Microservicios: qué son, cuándo valen y cuándo no

¿Qué son los microservicios? Los microservicios son un estilo de arquitectura en el que la aplicación se construye como un conjunto de servicios pequeños e independientes, cada uno responsable de una parte del negocio y conversando con los demás por interfaces definidas, en general APIs. Cada servicio se desarrolla, despliega y escala por su cuenta.

El resto de este texto trata lo que la mayoría de los materiales no trata: lo que esa elección cuesta una vez hecha, y en qué situación no compensa.

¿Qué se entiende por microservicios?

El cambio respecto del modelo anterior es ese: el software dejó de ser una pieza única.

Esto significa que, con la aparición de los microservicios dentro de la tecnología de la información, el software ya no está diseñado para ser monolítico. Antes de esta innovación, que es el tema central de este artículo, la mayor parte del software se construía de manera amplia, como si fuera un gran servicio, donde pequeñas partes se integraban entre sí.

Pero en el antiguo modelo no sólo existía integración entre las partes, sino también una relación de interdependencia, por lo que los resultados de los proyectos llevados a cabo por el equipo a menudo se veían perjudicados por esta cuestión.

Resulta que, con el avance del sector, el mercado se dio cuenta de que es mucho más ventajoso en varios aspectos, que el software se cree de forma separada, con la creación independiente de cada parte de un sistema.

Estas partes todavía se comunican entre sí, obviamente, de lo contrario sería inviable. Sin embargo, son independientes y pueden realizarse como tales o como parte de un mismo servicio.

Además, al ser los microservicios independientes, se ha mejorado la forma en que se implementan las actualizaciones y mejoras en los sistemas TI. Porque puedes realizar actualizaciones para cada parte, sin interferir con las demás.

Así, una actualización que antes podía mejorar una determinada función del software, pero causaría problemas con otra función, ahora ya no es un problema. Cada parte funciona de forma autónoma, lo que permite un uso amplio de los servicios sin preocupaciones por incompatibilidades, actualizaciones, averías generales y otros problemas.

Esto significa que las diferentes etapas del trabajo de su equipo se pueden llevar a cabo por separado, pero unidas si es necesario. Además, al mismo tiempo que todo está conectado entre sí, no existe ninguna relación de dependencia, por lo que el trabajo se puede realizar con mucha más libertad.

Papel de los microservicios de TI en su equipo

Después de profundizar un poco más en el concepto de microservicios, es posible que esté pensando en formas en que este nuevo concepto de sistemas puede mejorar el rendimiento de su equipo.

Para saber cómo puede suceder esto, es necesario observar las diversas ventajas que esta innovación aporta al mundo de las TI.

Inicialmente, una de las grandes ventajas es la escalabilidad, ya que los microservicios permiten adiciones y modificaciones a los servicios que componen un sistema, sin fallas ni comprometer funciones conjuntas.

Esto significa que el trabajo de su equipo no se ve afectado cada vez que es necesario actualizar una parte del software que utiliza. De esta manera, no hay pérdidas de tiempo ni retrasos en el desarrollo de los trabajos en curso, ya que no es necesario cerrar actividades por un tiempo mientras se realizan mejoras.

Esto es crucial, especialmente en proyectos grandes, ya que la pérdida de un día de trabajo, por pequeña que parezca, puede retrasar todo el calendario de entrega y provocar pérdidas económicas.

Y cuando trabaja con sistemas tecnológicos, nunca se sabe cuándo necesitará realizar reparaciones, actualizaciones y mejoras en los sistemas actuales. Esto se debe a que cada día existen nuevas exigencias y necesidades de compatibilidad que se deben seguir para servir al negocio y obtener el mejor desarrollo del equipo y del trabajo generado.

Además, los microservicios son mucho más ligeros, por lo que realizar modificaciones o implementaciones se convierte en una tarea mucho más sencilla y ágil. Una vez más, esto mejora el rendimiento del equipo que no tiene el flujo interrumpido o retrasado.

Además, su equipo podrá utilizar diferentes tecnologías de las partes independientes de los microservicios. Esto se debe a que, precisamente porque no existe interdependencia, pueden utilizar diferentes programaciones sin que se produzcan conflictos entre los sistemas.

Esta parte es fundamental para que cada individuo pueda trabajar de forma autónoma, pero acorde al proyecto y a las necesidades de toda la obra.

Otra forma en la que esta innovación puede hacer que su equipo sea más eficiente es en relación con los sistemas de construcción. Cuando los sistemas se construyen en piezas pequeñas, el resultado se obtiene de forma más fácil y eficiente. Porque, después de construir, sólo hace falta unirlos para trabajar juntos.

Sin embargo, para que esto funcione plenamente y desempeñe un papel fundamental en la mejora de su equipo de TI, los microservicios deben tener formas eficientes de comunicabilidad.

Para ello es necesario contar con microservicios desarrollados por profesionales de alto nivel, con herramientas que tengan un gran impacto dentro del equipo de TI y que sean realmente eficientes.

Lo cual es sencillo de encontrar siempre y cuando consideres la calidad y la experiencia como factores cruciales a la hora de contratar empresas que brinden microservicios y servicios en general.

Microservicio y monolito: la diferencia que importa

En el monolito, la aplicación es un solo código que sube de una vez. Cambiar una función obliga a volver a desplegar el conjunto, y escalar una parte significa escalar todo.

Con microservicios, cada servicio sube solo y escala solo. El catálogo puede recibir diez veces más máquina en el Black Friday sin que el registro reciba nada.

La diferencia que decide, sin embargo, no es técnica. Es quién puede entregar sin pedirle permiso a quién. En un monolito, dos equipos que tocan el mismo código tienen que coordinar la subida. Separados en servicios, cada uno entrega a su ritmo. El microservicio es una frontera organizacional antes que técnica, y por eso resuelve poco en una empresa con un solo equipo.

Cuándo no conviene usar microservicios

Cuatro situaciones en las que la cuenta no cierra:

  • Equipo chico. Más servicios que personas significa que todos cuidan de todo. Es el monolito de vuelta, ahora con latencia de red en el medio.
  • Sin automatización de despliegue. Diez servicios son diez pipelines para mantener. Sin eso listo antes, la ganancia de autonomía se vuelve trabajo manual multiplicado.
  • Un dominio que todavía se entiende mal. Una frontera equivocada entre módulos se corrige refactorizando. Una frontera equivocada entre servicios se corrige con migración de datos y acuerdo entre equipos, y es mucho más caro.
  • Volumen que el monolito aguanta. La escalabilidad independiente solo paga cuando las partes crecen a ritmos distintos.

Quien se arrepiente de los microservicios casi nunca se arrepiente de la tecnología. Se arrepiente de dónde trazó las fronteras.

El costo que aparece después: la visibilidad

En el monolito, cuando algo se rompe, el rastro de error dice dónde. La solicitud nació y murió en el mismo proceso.

Repartido en once servicios, "está lento" deja de tener dirección. El usuario espera 8 segundos, cada servicio responde en un tiempo aceptable, y ningún panel muestra dónde se fue el tiempo. Esa es la cuenta que llega después de la migración, y casi nunca entra en el cálculo de quien decide migrar.

Es exactamente el problema que el rastreo distribuido existe para resolver. Vale leer qué es la observabilidad antes de seguir, porque ir a microservicios sin resolver esto cambia un problema de entrega por un problema de diagnóstico.

Cómo decidir

La pregunta no es si los microservicios son mejores. Es si el costo de operar varios servicios es menor que el costo de mantener equipos esperándose unos a otros. En una empresa con un solo equipo y volumen estable, raramente lo es.

Integrity-UX cuida la capa que esa decisión deja atrás: monitoreo de infraestructura y de servicios, con alerta y atención. Para saber qué deja de ver su entorno hoy, hable con nosotros.

Este contenido fue producido por el equipo de Integrity-UX, consultoría de TI especializada en infraestructura, nube, seguridad y continuidad de negocio para medianas y grandes empresas.

Fuente: Martin Fowler, Microservices.

Facebook
Twitter
LinkedIn

Vea también

Observabilidade é determinar o que acontece dentro de

Solicitar presupuesto