Microservicios - GBM

Somos microservicios

https://www.youtube.com/watch?v=imX2ELcuyhU

Es una arquitectura para el desarrollo de aplicaciones que en esencia aplica el concepto de resolver partes del problema a través de elementos más pequeños (servicios) con responsabilidad bien definida para que luego su combinación cubra la necesidad inicial.

Con alcances bien acotados y protocolos poco complejos los microservicios ofrecen modularidad que hace que las aplicaciones sean más sencillas de construir, probar, desplegar y más importante aún cambiar y mantener.

Agilidad e innovación en las empresas

Con el incremento en uso de dispositivos móviles y la nube, la funcionalidad y los datos de los sistemas deben adaptarse y estar disponibles para la exigencia de un número creciente de clientes, y la arquitectura “monolítica” no lo hace sencillo, el cambio es inminente y obligatorio.

Las aplicaciones deben ser modificadas para las nuevas demandas lo que abre la posibilidad de nuevos errores cada vez que se intente ampliar sus funciones o realizar ajustes de contexto.

Por lo anterior es importante que las empresas conozcan de la importancia y beneficios de los Microservicios para modernizar sus arquitecturas monolíticas y obtener todas las ventajas de este enfoque de arquitectura de aplicaciones.

  • Servicios pequeños e independientes y acoplados de forma flexible
  • Cada servicio es un código base independiente lo cual facilita el aislamiento de errores
  • Pueden implementarse y escalar de manera independiente
  • Equipos de desarrollo más pequeños y enfocados
  • Conservan sus propios datos o estado externo
  • Comunican entre sí mediante APIs bien definidas
  • Cada microservicio puede utilizar un lenguaje o tecnología diferente
  • Incremento de resiliencia: función descentralizada, un fallo no afecta todo el sistema
  • Mejora la escalabilidad: funciones por separado, se puede escalar en segmentos puntuales
  • Habilidad de usar “herramienta correcta para la tarea concreta”: no atada a un vendedor, plataforma e inclusive tecnología especifica
  • Respuesta más rápida a la demanda del mercado: no es necesario reescribir y probar todo el código para incluir cambios o nuevas funciones
  • Mantenimiento más sencillo: por su alcance y con el soporte de cultura DevOps la posibilidad de aplicaciones más robustas se incrementa
  • Mejora el ROI sobre el TCO (Total Cost of Ownership): optimiza recursos, minimiza dependencias y habilita agilidad
  • Entrega continua: desarrollo, operaciones y calidad con un trabajo orquestado y enfocado dan como resultado operaciones más eficientes

¿Qué piensan las organizaciones sobre los Microservicios?

  • 91% está usando o tiene planes de usar microservicios
  • 60% ya tienen microservicios en fase piloto
  • 92% aumentó la cantidad de microservicios en el 2017
  • 86% espera que microservicios sea el “default” en 5 años
  • 63 % de aquellos con microservicios en producción consideran que han tenido éxito en la adopción

Fuente: Dimensional Research 2018 – Global Microservices Trends

Desafíos en los Microservicios

Si bien los microservicios entregan muchos beneficios, también hay que tomar en cuanta algunos cuidados a la hora de utilizarlos:

  • Complejidad: cada servicio es más sencillo, pero el sistema como un todo es más complejo.
  • Desarrollo y pruebas: no iniciar en microservicios sin DevOps
  • Congestión y latencia de red: el uso de muchos servicios pequeños y detallados puede dar lugar a más comunicación inter-servicios.
  • Integridad de datos: cada microservicio es responsable de la conservación de sus propios datos.
  • Administración: para tener éxito con los microservicios se necesita una cultura de DevOps consolidada.

¿Se puede convertir todo a Microservicios?

  • No se puede refactorizar todos los sistemas a microservicios
    • La mayoría de las aplicaciones tienen una política de “si no se rompe, no lo arregles”
    • Puede ser poco realista rediseñar los sistemas antiguos
  • Qué pasa si no puedes cambiar el almacenamiento de datos?
    • Se harían microservicios si los datos permanecen en un silo?
    • Se puede gestionar sin transaccionalidad a la base de datos?
  • Cómo encajan los sistemas existentes en una arquitectura de microservicios?
    • Cómo aislar sus problemas de disponibilidad de los sistemas existentes?
    • Qué pasa si no escalan tan bien como los nuevos microservicios?

Microservicios y DevOps

La modularidad de microservicios habilita la integración continua lo cual es objetivo de DevOps. El uso combinado de ambos enfoques:

  • Acelera la innovación
  • Incrementa la productividad
  • Reduce los errores
  • Reduce los costos de desarrollo
  • Mejora la calidad de los productos

El camino hacia microservicios conlleva no solo un cambio de arquitectura, sino también de cultura en las organizaciones, por lo cual se recomiendan los siguientes pasos iniciar en el mundo de microservicios:

  • Realizar una evaluación general: Motivadores, GAPs “AS-IS” -> “TO-BE”
  • Definición detallada de los patrones para cada capa.
  • Definición de descubrimiento y/o capacidad de negocio.
  • Identificación y formalización del “Technology Stack” de ejecución.
  • Identificación del plan de capacitaciones.

¿Desea más información?

Contáctenos