INTRODUCCI脫N A LA ARQUITECTURA REACTIVA

Como dec铆amos en la聽entrada anterior sobre arquitecturas reactivas, las demandas de hoy en las empresas requieren聽tiempos de respuesta cortos, con la necesidad de tener que procesar聽ingentes cantidades de datos,聽desplegarse en cualquier cosa聽y que los sistemas est茅n聽operativos el 100% del tiempo. Para ellos, distintos tipos de organizaciones est谩n dando de manera independiente con patrones similares con los que construir software que haga frente a estas demandas.

Este conjunto de patrones y t茅cnicas es el que se conoce como Arquitecturas Reactivas y se utilizan para construir sistemas que:

  • Son m谩s amigables, robustos y flexibles
  • Son capaces de responder a las limitaciones de escalado
  • Pueden resistir mejor a los fallos y responder con elegancia a ellos
  • Dan un feedback efectivo e interactivo al usuario
  • Est谩n m谩s abiertos a los cambios.
  • Son escalables y con bajo acoplamiento.
  • Reaccionan a los eventos

PRINCIPIOS DE LA PROGRAMACI脫N REACTIVA

Dirigida por datos

En el modelo de actores, uno de los patrones m谩s utilizados en programaci贸n reactiva, se definen cadenas de transformaci贸n funcional. Estas son atravesadas por flujos de datos para su procesamiento. Se podr铆a decir que este tipo de soluciones est谩n dirigidas por los datos porque en ellos descansa, adem谩s de gran parte de la l贸gica de la aplicaci贸n, el propio comportamiento reactivo del sistema.

Centrada en la composici贸n

Las operaciones que forman parte del procesamiento de datos en programaci贸n reactiva, que normalmente se implementan en actores distintos, se encadenan de forma compositiva. De este modo, el resultado de cada transformaci贸n es la entrada para la siguiente. Para poder articular esta composici贸n adecuadamente, debemos tener en cuenta tres reglas fundamentales en la programaci贸n funcional:

IDEMPOTENCIA DE LAS FUNCIONES

Las funciones siempre deben devolver los mismos resultados para los mismos valores de entrada.

TRANSPARENCIA REFERENCIAL

El valor de retorno de las funciones depende de los par谩metros de entrada, nunca de condiciones ambientales (par谩metros externos o contexto).

INMUTABILIDAD DE LOS DATOS

Los datos de entrada que manejan las funciones son inmutables, es decir, las funciones nunca deben alterar los par谩metros de entrada.

PRINCIPALES LENGUAJES Y PLATAFORMAS DE LA PROGRAMACI脫N REACTIVA:

Como ya se ha dicho antes, la programaci贸n reactiva implica el conocimiento y la integraci贸n de varios lenguajes de programaci贸n y plataformas, como podr铆an ser:

  • Scala es un lenguaje multi-paradigma. Expresa patrones comunes de programaci贸n en forma concisa, elegante y con tipos seguros. Integra caracter铆sticas de lenguajes funcionales y de los orientados a objetos.
  • Akka es una plataforma que busca desarrollar de forma simple aplicaciones escalables y multihilo. Su m茅todo de concurrencia se basa en actores (objetos con los que puedes interactuar envi谩ndoles mensajes) y se puede desarrollar con diferentes APIs, generalmente Scala.
  • Kubernetes es un sistema para automatizar el despliegue, autoajustar el escalado y manejo de aplicaciones en contenedores.
  • Kafka es un proyecto que permite publicar mensajes de datos procedentes de las aplicaciones en un flujo, suscribirse a los mensajes generados,  almacenarlos en un sistema tolerante a fallos y consumir los streams de mensajes por aplicaciones en cuanto se produzcan.
  • Docker es un proyecto que automatiza el despliegue de aplicaciones dentro de contenedores de software. Proporciona una capa adicional de abstracci贸n y automatizaci贸n de virtualizaci贸n de aplicaciones en m煤ltiples sistemas operativos. Adem谩s, permite que los 鈥渃ontenedores鈥 independientes se ejecuten en una sola instancia de Linux, evitando sobrecargar las m谩quinas virtuales.
  • Elasticsearch es un servidor de b煤squeda de texto completo, distribuido y con capacidad de multi-tenant.
  • Cassandra es un almac茅n de datos NoSQL de gran rendimiento. Como es distribuida y basada en un modelo de almacenamiento de 芦clave-valor禄, permite grandes vol煤menes de datos en forma distribuida, con escalabilidad lineal y disponibilidad.

M脕STER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendr谩s amplios conocimientos sobre las herramientas y t茅cnicas anal铆ticas necesarias para la modelizaci贸n de los principales retos de negocio, con el fin de mejorar la toma de decisiones a trav茅s de los datos y el conocimiento.

Deja un comentario

Datahack logo