Tag: mantenibilidad

¿Cuándo usar microservicios? Repaso de las ventajas y desventajas

¿Cuándo usar microservicios? Repaso de las ventajas y desventajas

En el post anterior, además de hacer una introducción a lo que son los microservicios, también vimos algunos conceptos claves que le podemos asociar.

La siguiente pregunta que podemos pensar es, ¿cuándo usar microservicios? Algo natural que suele pasar, y más en el rubro IT, es querer usar la última tecnología disponible o aquello que está de moda (que es un poco lo que pasa a día de hoy con los microservicios). Pero como suele pasar con muchas preguntas, la respuesta es: depende.

Para responder eso, primero debemos profundizar en algunas de las ventajas y desventajas que tienen los microservicios:

Ventajas:

Ciclo de vida de aplicaciones independiente: Cada uno de los microservicios que componen la solución es 100% independiente del otro desde el punto de vista tecnológico (arquitectura interna, lenguaje de programación, etc.), del equipo que lo trabaja y cómo se organiza. Esto permite que cada uno de esos microservicios evolucione, crezca o disminuya de forma independiente al resto de los microservicios.

Orientación a la evolución tecnológica: Al ser aplicaciones independientes cada una puede estar en un lenguaje o arquitectura diferente. Esto puede ayudar a hacer pruebas de nuevos conceptos o tecnologías en algún microservicio puntual que, dada la función de negocio particular que debe cumplir, se adapte a eso. Lo mismo ocurre con la actualización tecnológica, es mucho más simple actualizar versiones de SDKs y librerías de un microservicio puntual (o varios) que de una aplicación grande y monolítica. Esto último lo digo con experiencia, me ha pasado en aplicaciones grandes que actualizar una librería era una cuestión de estado en el proyecto. Y actualizar el SDK, era presentar una propuesta de páginas a los sponsors explicando el porqué se necesitaba hacer eso. Ahora mismo por ejemplo en el trabajo estamos actualizando microservicios en Go y Java de forma independiente a medida que cada equipo tiene tiempo y sin afectar en nada al resto de las aplicaciones.

Seguir leyendo “¿Cuándo usar microservicios? Repaso de las ventajas y desventajas”
¿Qué son los microservicios? Una pequeña introducción

¿Qué son los microservicios? Una pequeña introducción

Después de mucho tiempo sin escribir en el blog, volvemos al ruedo! En estos casi 3 años sin escribir pasé por algunos cambios y desafíos profesionales, que hacen que a día de hoy el enfoque de los nuevos posts varíe con respecto a lo que escribía anteriormente.

El primer tema con el que voy a retomar es algo que actualmente forma parte de mi realidad laboral diaria: microservicios.

Lo primero con lo que vamos a comenzar a modo introductorio es con la definición de microservicios. Como obviamente hay mucha gente que sabe más que yo sobre este tema, voy a tomar algunas definiciones de ellos aunque si voy a agregar algunos comentarios sobre puntos que considero claves.

La primera definición es de Martin Fowler en su sitio (traducido por mi):

El término “Arquitectura de Microservicios” ha surgido en estos últimos años para describir una forma particular de diseñar aplicaciones de software como servicios que se despliegan (deployan) de forma independiente.

https://martinfowler.com/articles/microservices.html

Aunque sea una definición de un párrafo, deja algunos conceptos interesantes como para comenzar a analizar:

Seguir leyendo “¿Qué son los microservicios? Una pequeña introducción”