Abstracción de hardware mediante Mesos

En este artículo explicaremos como podemos abstraer el hardware disponible a través de Apache Mesos.

Introducción

En el anterior artículo, hemos facilitado una introducción a la pila SMACK, en la hemos visto que disponemos de las siguientes tecnologías:

Este va a ser el primero de una serie de artículos dedicados a la parte de Abstracción de hardware con Apache Mesos (que veremos con todo el detalle necesario) ya que nos va a servir de base y nexo con las demás tecnologías. He considerado comenzar con Apache Mesos de la pila SMACK, porque nos sirve de soporte para las demás tecnologías que componen esta pila. El alcance tecnológico no solo va a aplicar a las tecnologías que componen las siglas, sino que realizaremos comparativas de herramientas que nos pueden ayudar en cada apartado. Apache Flink, RabbitMQ

Cambio de la forma de operar en los centros de datos

En el mundo empresarial, estamos pasando de supercomputadoras especializadas, propietarias y generalmente caras a la implementación de clústeres de máquinas básicas de bajo costo conectadas a una red.

El Costo total de propiedad ( TCO ) determina el destino, la calidad y el tamaño de un DataCenter. Si el negocio es pequeño, el DataCenter debe ser pequeño; Según la demanda de la empresa el DataCenter crecerá o disminuirá.

Actualmente, una práctica común es crear un clúster dedicado para cada tecnología. Esto significa que podremos disponer de un clúster Spark, un clúster Kafka, un clúster Storm, un clúster Cassandra, y así sucesivamente, porque el TCO general tiende a aumentar.

¿Qué es Apache Mesos exactamente?

Apache Mesos es una plataforma de código abierto que permite compartir los recursos de las máquinas entre diferentes aplicaciones distribuidas (Frameworks en el ecosistema de Apache Mesos, como Apache Spark, Apache Cassandra y Apache Kafka, entre otros.

El objetivo de Mesos es ser un administrador de clúster centralizado que agrupa todos los recursos físicos de cada miembro del clúster y los pone a disposición como una única fuente de recursos altamente disponibles para las diferentes aplicaciones.

Los objetivos de Apache Mesos son:

  • Eficiencia : El Planificador Apache Mesos (como un sistema operativo) administra la CPU, GPU y la memoria a través de las aplicaciones (frameworks)
  • Alta disponibilidad : Mediante Apache Zookeeper.
  • Interfaz de monitoreo : Apache Mesos tiene una interfaz de usuario web sofisticada y sin bloqueo para el monitoreo de clusters
  • Aislamiento de recursos : Soporte a las arquitecturas de contenedor de Linux, Docker, Mesos, Appc y aislamiento mediante cgroups.
  • Escalabilidad : hasta la fecha, indica que la versión actual admite hasta 100,000 nodos.

Apache Mesos está basado en el principio del kernel de Linux y proporciona una base eficiente, altamente disponible, escalable y tolerante a fallos para permite que varios frameworks compartan recursos del clúster de manera eficiente y aislada. Como sabemos, las aplicaciones distribuidas son diversas y están en continua evolución.

Apache Mesos expone su interfaz ligera que permite una asignación de recursos eficiente entre diferentes frameworks. Apache Mesos delega la programación y ejecución del trabajo a las aplicaciones (frameworks).

Según lo anterior, tendremos dos ventajas:

  • La elección de la aplicación : los desarrolladores pueden enfocarse, por ejemplo, en la localidad de datos o la tolerancia a fallas dependiendo de las necesidades del framework.
  • Diseño : Permite que Apache Mesos sea escalable, flexible, robusto y ágil

En el siguiente artículo, veremos los componentes de Apache Mesos y como se relacionan para darnos el servicio comentado en este artículo.

Referencias