Una primera mirada a los Microservicios

En el mundo del desarrollo de software, existen múltiples arquitecturas a la hora de crear nuevos productos. Una de las más utilizadas actualmente son los microservicios. Según Microsoft, una arquitectura de microservicios, “consta de una colección de servicios autónomos y pequeños. Los servicios son independientes entre sí y cada uno debe implementar una funcionalidad de negocio individual”.

Vale decir, los microservicios son un conjunto de pequeños servicios que se ejecutan de manera independiente, e incluso pueden tener diferentes lenguajes de programación. El experto Javier Garzas, enfatiza que, a pesar de la autonomía de los servicios, hay un número mínimo de ellos que gestionan procesos comunes (como acceso a bases de datos). “No hay reglas sobre qué tamaño tiene que tener cada microservicio, ni sobre cómo dividir la aplicación en microservicios”, asevera el informático.

De acuerdo con un estudio de la empresa de automatización Camunda, realizado en julio 2018 en arquitectos de software, gerentes de ingeniería y otros expertos en desarrollo de aplicaciones, arrojó un arrollador resultado: El 63% de las empresas encuestadas utilizan arquitecturas de microservicios. Entre los beneficios que los encuestados mencionan, son: «Mejora de la eficiencia de los empleados, experiencia mejorada del cliente final y ahorro de costos en infraestructura […]».

No obstante, una estadística del mismo estudio reveló que las empresas encuestadas “desconocen en gran medida el impacto que las arquitecturas de microservicios pueden tener en sus procesos comerciales que generan ingresos”. Esto, porque solo el 45% de empresas encuestadas, documenta explícitamente los procesos comerciales que forman parte de sus microservicios.

Por ello, en Tecnova queremos ayudarte a decidir, ¿qué tanto te conviene utilizar microservicios? Revisemos algunas consideraciones importantes respecto de su uso.

 

Usarlo para la tarea demandada

Para Dataversity, el propósito básico de todo microservicio es “centrarse en una tarea y hacerlo bien”, vale decir, que cuando se desarrolla microservicios, no importa para que se hace el servicio o que hace el servicio desarrollado: el único enfoque que tiene es que el microservicio realice la acción programada.

 

Deben ser descentralizado y construidos por equipos pequeños

Cada microservicio organiza sus propios datos. Por ello, para este mismo portal, la redundancia, coherencia e integridad de los datos son importantes a la hora de ejecutar un servicio. La descentralización es importante para evitar acoplamientos entre servicios. “Al aislar el almacén de datos de cada entidad de Microservicio, los cambios tienen un impacto mínimo y se mantiene la agilidad de los servicios independientes”, afirma el sitio.

Para Microsoft, el microservicio debe ser lo suficientemente pequeño “para que un equipo pequeño de trabajo lo pueda compilar, probar e implementar. Los equipos pequeños favorecen la agilidad”, enfatiza.

 

Favorece y se potencia con la agilidad

En relación con lo anterior, Microsoft asevera que, como los microservicios se implementan de forma independiente, es más ágil “de administrar las correcciones de errores y las versiones de características. Puede actualizar un servicio sin volver a implementar toda la aplicación y revertir una actualización si algo va mal”.

 

Buen mantenimiento

La entidad de microservicio de desarrolla y mantiene individualmente en el repositorio donde se crea. Esta arquitectura posibilita la disminución de errores, pues sólo falla una parte de la aplicación desarrollada, no toda la aplicación. Además, según Dataversity, los microservicios van evolucionando y desarrollándose en compatibilidad con versiones anteriores, lo que “permite el acceso y la interoperabilidad con sistemas más antiguos”.

 

Facilitar la adopción de la nube: aprovechar su escalabilidad

Los microservicios se pueden mover fácilmente en la nube, según el portal TechTarget. Sobre todo, ante las posibilidades que brinda, en torno a su escalabilidad y elasticidad de usos en la nube. “Los microservicios ilustran cómo construir componentes para usar la nube, y los mismos administradores de API utilizados para aplicar prácticas de seguridad a los microservicios, se pueden usar para el equilibrio de carga y la gestión de instancias”.

En tanto, Dataversity afirma que los microservicios no necesariamente requieren una nube para operar, “pero en la nube funciona muy bien”. Esto porque si diferentes servicios están alojados en la nube, al existir microservicios allí, pueden usar contendedores para la eficiente transferencia de recursos, los que son “relativamente fáciles de construir con componentes Microservice”.

Jason McGee, vicepresidente de IBM Cloud Platform, afirma que los microservicios “están permitiendo a las empresas mezclar y combinar soluciones de código abierto en contenedores para que no tengan que construir todo desde cero «.

 

Una mirada centrada en el Negocio

Según TechTarget, si la meta es sacar todo el provecho de los microservicios, se necesita que los arquitectos de aplicaciones se unan con los arquitectos empresariales. Esto, para identificar que debe hacer el microservicio en lineamiento con los objetivos comerciales. Por ello, el sitio web especializado afirma que una buena estrategia de microservicios debe identificar “las funciones comerciales de las aplicaciones y luego mapear funciones comunes o muy similares entre las aplicaciones”. Estas funciones serán los objetivos para la creación de aplicaciones.

Si tu empresa está buscando aplicar estas buenas prácticas en microservicios, no dudes a contactar a Tecnova para desarrollar a tu medida.