Microservices
Esto no es un concepto nuevo, pero continúa siendo
muy poderoso para poder desarrollar aplicaciones. La idea radica en separar las
funciones por dominio, es decir, crear procesos que estén relacionados como por
ejemplo la autenticación de usuarios. Vamos a tener una base de datos para los
usuarios con todo lo necesario para autenticarlo al sistema, además de un
endpoint (API) que nos permite consultar y hacer las operaciones necesarias
para esta tarea.
Como vemos en este ejemplo separamos las tareas
y datos en dominios para poder agruparlas por sus características similares o iguales.
Si queremos trabajar cien por ciento como microservicios debemos hacer una base
de datos separada para cada uno de los servicios también. Ahora yo he visto
algunas empresas que desarrollan una única base de datos y crean APIs para cada
una de las tareas.
Esta implementación tiene muchas ventajas a la
hora de desarrollar nuestras aplicaciones
- Los
tiempos de publicación de las aplicaciones son menores
- Se
pueden aislar los errores más fácilmente y se puede encontrar directamente en
el servicio donde está ocurriendo
- La
publicación de un servicio no afecta a los otros servicios
- Los
tamaños de las aplicaciones son mucho más pequeñas.
- No
tenemos que publicar todos los servicios a la vez
- Se
mantiene una total independencia del desarrollo por cada dominio
- Cada
servicio podría ser desarrollado por diferentes equipos y diferentes lenguajes
- Con
los cambios tan acelerados de la tecnología esto nos permite actualizar los
servicios poco a poco.
- Cualquier
cambio requerido se hace directamente en el servicio especifico
Algunas desventajas que podemos tener
- Dependiendo
donde y como se instalen los servicios los costos pueden aumentar
- Con
el crecimiento de servicios puede aumentar la dificultad de administración de
los mismos.
- Dependiendo
de la cantidad de servicios hacer pruebas podría ser complicado
- Dependiendo
de la cantidad de servicios podríamos tener problemas con rendimiento de la aplicación
ya que tendría que llamar muchos servicios para hacer una tarea.
- La
comunicación entre servicios puede ser compleja y la integración de los datos.
Desde mi punto de vista la implementación de
microservicios es muy útil y facilita mucho la distribución de las aplicaciones.
Se podrían enfrentar retos con la integración de datos y la comunicación entre
los servicios. De todas maneras, esto no es algo que todas las empresas deben
de seguir todo depende del tipo de aplicación que se este desarrollando y de la
infraestructura que se cuente. Por otro lado, se pueden hacer híbridos entre
arquitecturas para logar optimizar recursos, tiempo de desarrollo, testing, etc.
y hacer lo que realmente es necesario para cada empresa.
Etiquetas: API, Desarrollo, Microservices
0 comentarios:
Publicar un comentario
Suscribirse a Enviar comentarios [Atom]
<< Inicio