Introducción a la integración de sistemas.

Objetivos de la sesión

En la siguiente sección, se plantea cubrir los siguientes objetivos de estudio.

  1. Entender que es la integración de sistemas
  2. Conocer cuáles son los retos principales al momento de integrar plataformas
  3. Conocer los principales motivadores para realizar interoperatividad
  4. Conocer los riesgos relacionados y como se complementa con las APIs.
  5. Conocer algunas las tecnologías competidoras existentes que ayudan a integrar sistemas completos.

Que es la integración des sistemas

Definición

En términos prácticos, definimos a la integración de sistemas como la conexión entre varios sistemas, una herramienta que posibilita mejorar el trabajo de los profesionales en el medio corporativo.

Retos principales

Los principales retos a vencer de la interoperatividad entre sistemas y plataformas, son los siguientes:

challenges of systems integration

Principales motivadores

Como parte esencial de la integración de sistemas, existen varios motivadores que deben ser tomados en cuenta, al momento de decidir sobre este tipo de proyectos. A continuación, se listan dichos motivadores.

principal drivers

Principlales plataformas

Actualmente, existen dos corrientes cuando se trata de integración de plataformas. Existen los que se han montado en tecnologías monolíticas llamadas Bus de Servicios Empresariales o ESB por sus siglas en inglés (Enterprise Service Bus), los cuales habilitan arquitecturas SOA y en algunos casos tiene soporte para REST. La otra corriente es más moderna, y utiliza desarrollo de micro servicios, la cual también es una oferta interesante, que se toma sus respectivos pasos y adopta un esquema de DevOps, para garantizar la Integración Continua y el Desarrollo Continuo de las integraciones.

Ambos tienen sus pros y sus contras, sin embargo, ambos enfoques ayudan a las organizaciones a sortear con la complejidad de las implementaciones.

Los principales exponentes de estas tecnologías son:

  • IBM App Connect Enterprise (anteriormente conocido como IIB y WebSphere ESB)
  • Oracle ESB
  • Progress Sonic ESB
  • Apache Camel
  • Fuse ESB
  • JBoss ESB
  • Microsoft Azure Service Bus

El problema del monolito

monolothyc angry server

Existe actualmente un problema con las arquitecturas pensadas para ser ejecutadas en grandes servidores físicos, que, al ser virtualizadas, tienen limitaciones de crecimiento, y ocupan demasiados recursos solo por la existencia misma del servicio. Esto es un problema de los sistemas legados, que debido a las restricciones del hardware de la época en las que fueron concebidas, resultan una restricción actual, para el manejo de cargas de trabajo más dinámicas y de mayor cantidad de transacciones.

Hay una tendencia actual que implica la transformación de estos servicios en contenedores, que se puede observar como un paso natural de la evolución de estas tecnologías, pero que sin embargo, resulta complicado de adaptar a las capacidades de tecnologías como Kubernetes, que permiten el crecimiento horizontal de la plataforma, e inclusive permiten la existencia en diferentes zonas geográficas apartadas entre sí, lo cual acarrea problemas de latencia, disponibilidad y tolerancia a fallos, que en su momento no fueron considerados por los sistemas monolíticos.

Aunque estas plataformas tengan la capacidad de montarse en infraestructura hyper convergente o HCI, lo ideal es utilizarlas en máquinas virtuales, que simulen las capacidades de sistema operativo, manejo de memoria y espacio en disco fijo, así como de procesador, para garantizar la estabilidad y disponibilidad de las mismas; y pensar en una mejor estrategia de crecimiento y disponibilidad en estos ambientes, sin tener que someterlos a la fuerza a los ambientes modernos de contenedores aun que tengan compatibilidad para ello.

Arquitectura basada en eventos (EDA).

Actualmente, se hace evidente que el mundo no funciona de manera Sincrónica. Existen procesos que requieren de aprobación de otros participantes, e inclusive se pueden tomar algunas horas o días en ser revisados y contestados. Es por esto, que el uso de un Bus de Servicios se hace clave, debido a que la mayoría cuentan con sistemas de Colas, que permiten manejar altos volúmenes de transacciones (en algunos casos) y permiten atender en su debido orden las peticiones que se han lanzado a dichos flujos de proceso.

El uso de Eventos, para informar diferentes plataformas, se vuelve un factor clave en la integración de plataforma, ya que, mediante el uso de un receptor intermediario de eventos, podemos realizar transformaciones más complejas y homologación de información “al vuelo”, para procesar volúmenes de información todavía más grandes, y alimentar en paralelo infraestructuras destinadas al Big Data y al análisis en tiempo real de la información.

event driven arch

Conclusiones

En la actualidad, existen la necesidad de integrar múltiples sistemas, para agilizar procesos complejos y que requieren de múltiples participantes para poder ser efectuados.

Esto acarrea retos de seguridad, costos, colaboración y tiempo de respuesta, que puede poner en jaque la operación de las organizaciones, y que requiere de soluciones que se encarguen de orquestar múltiples fuentes de consumo, con múltiples servicios a exponer. Existen tecnologías llamadas ESBs que se encargan de habilitar Buses de Servicios, y realizar transformación a medida, dependiendo de las necesidades de integración.

Estos ESBs, tienen forma de sistemas monolíticos, los cuales son muy buenos en ambientes donde existe mucho hardware destinado exclusivamente para el ESB, sin embargo, no se pueden destinar a cargas de trabajo dinámicas, cosa que incrementa los costos operativos, al tratarse de infraestructura que puede estar ociosa en horarios poco concurridos, y que, sin embargo, pueden fallar en caso de ser apagadas o minimizadas.

Las arquitecturas basadas en micro servicios, son muy buenas y se pueden llegar a escalar de manera mucho más granular, para aprovechar mejor la infraestructura, sin poner en riesgo la disponibilidad, sin embargo, se deben desarrollar casi desde cero, la mayoría de las veces.

Ambos tipos de arquitecturas, permiten habilitar Arquitecturas basadas en Eventos (EDA), lo que permite procesamiento Asíncrono de mensajería, y aumenta las posibilidades de procesamiento de la información que pasa a través de la infraestructura.