¿Es siempre la mejor opción desarrollar con microservicios?

Desarrollo de software: Microservicios

Muchos de nosotros, como desarrolladores, sentimos curiosidad por los microservicios. Pero... ¿Realmente tienen sentido siempre?‍ Te doy la respuesta rápida... ¡NO!‍ Sigue leyendo 👉🏼

Muchos de nosotros, como desarrolladores, sentimos curiosidad por los microservicios. 


Pero... ¿Realmente tienen sentido siempre?

Te facilito la respuesta rápida... ¡NO!

Aplicar microservicios no es tán fácil como a priori podríamos pensar; por lo que te invito a explorar las siguientes reflexiones:



Hechos que no podemos negar


¿Qué hacen las grandes empresas? ¿Cómo plantearon las primeras estrategias tecnológicas?


Al menos para ganar las primeras rondas de financiación. ¿Hicieron un Monolito o usaron Microservicios? Estoy bastante seguro de que no podemos negar el hecho de que la mayoría de estos Unicornios hacen su fortuna inicial con un Monolito.


Luego, cuando tienen suficiente dinero disponible y recursos para resolver los problemas que conlleva la escala, se plantean Microservicios. 


Aunque seguro que hay casos en los que la empresa se haya planteado un cambio


¿Monolith es agua pasada?

Cuando miramos un Monolito, vemos los desafíos comunes que vienen a escala, como;


⚙️ Mayores tiempos de construcción.


👨‍💻Muchos desarrolladores trabajan en la misma base de código.


❌ Conflictos de código frecuentes.


😒 Acoplamiento en código y módulos.


Aquí, la parte controvertida es si estos desafíos son aplicables para todos. ¡La respuesta obvia es no! Algunas empresas pueden tener estos problemas una vez que crezcan y en el futuro, pero hoy en día casi no hacemos grandes diseños por adelantado.


Por lo tanto, en resumen, Monolith no es tan malo. Ha funcionado para los gigantes del software en sus primeros días, y aún debería funcionar para ti también. Entonces, primero tenemos que responder;


¿De qué escala estamos hablando?


¿El tamaño del Monolito?


¿Qué tan bien fue diseñado y mantenido?


¿Cuántos desarrolladores trabajan allí?


¿Cuánto tiempo lleva iterar a través del código?


Hay tantas preguntas en las que debe pensar antes de cambiar de opinión para pasar a Microservicios porque;


Los microservicios son difíciles

Construir Microservicios de la manera correcta es difícil. Estamos hablando de sistemas distribuidos, que requieren más demanda de recursos, alta experiencia y esfuerzo para ponerlos en funcionamiento.


Además, si es nuevo en esto, dificultará su velocidad inicial o lo llevará a cometer errores costosos. En algunos casos, el esfuerzo tecnológico sería lo suficientemente costoso como para sacarlo de la competencia.


Pero, ¿no merece la pena el esfuerzo como inversión de futuro?

Uno de los conceptos erróneos generalizados en la industria es: "Los microservicios tienen grandes beneficios a largo plazo si está listo para pagar el precio ahora".


Si está creando una aplicación de software, piense en un competidor que use una arquitectura más simple, aumente la velocidad, vaya primero al mercado y captúrelo. Entonces, ¿serás capaz de cosechar los beneficios futuros?


Y ya hemos aprendido que GRAN DISEÑO POR ADELANTADO no es el camino a seguir.


¿Quién se beneficiará de los Microservicios?


Si crea una aplicación empresarial en la que conoce más información sobre varios subsistemas o moderniza una aplicación existente, podría haber razones genuinas para seguir adelante con los microservicios.


Aquí es donde necesita la experiencia para analizar su situación y tomar una decisión.


Como arquitecto, la importancia se centra en los atributos de calidad y las tácticas para resolver el problema comercial antes de elegir el estilo arquitectónico. Si ve que los microservicios funcionan tácticamente mejor que un monolito para abordar estos atributos de calidad en su sistema, hágalo. De lo contrario, puedes quedarte con una arquitectura Monolith.


¿Debe una Startup adoptar Microservicios?


Como la mayoría de ustedes ya han experimentado, los monolitos vienen con la menor fricción, para empezar. Dado que la velocidad de comercialización es vital para cualquier negocio nuevo, no podemos perder el tiempo construyendo los cimientos que servirán a la empresa dentro de cinco años. Tenemos que centrarnos en incorporar la velocidad y la agilidad del desarrollo a corto plazo y luego inspeccionar y adaptarnos.


Por ejemplo, piense en construir un frontend y un backend donde la cantidad de decisiones que debe tomar sea mínima. Puede dedicar todo el tiempo que dedica a los microservicios a crear un sistema distribuido para codificar la lógica empresarial.


Esto acelerará el desarrollo de la aplicación incluso hasta varios años hasta el tamaño del equipo, y la aplicación es lo suficientemente masiva como para experimentar los inconvenientes del Monolito.


Resumen


Los microservicios son un excelente estilo arquitectónico para abordar problemas específicos en grandes aplicaciones de software y equipos que aparecen con escala.


No es adecuado para muchos productos de software, especialmente en una etapa inicial, pero eventualmente, cualquier negocio exitoso llegaría a una etapa para decidir sobre esa transición. Si es una empresa, los microservicios pueden ser útiles ya que conoce muy bien la mayoría de los límites de su dominio.


Además, si te estás mudando a los microservicios, la experiencia es vital y, por lo tanto, es esencial encontrar a los expertos que puedan ayudarte en esa transformación. De lo contrario, los errores en la arquitectura son costosos y difíciles de cambiar con el tiempo.

Nos vemos pronto