La mejor base para el despliegue de Mesos

La mejor base para el despliegue de Mesos

Actualmente estamos en el proceso de diseñar la arquitectura de nuestra nueva configuración de nube Apache Mesos. El objetivo es unificar nuestros sistemas moviendo diferentes pilas a la misma arquitectura. Las principales cargas de trabajo son el análisis de big data utilizando Apache Spark y nuestra infraestructura corporativa, incluidos servidores web, servidores de correo, etc.

La idea es ejecutar nuestros servicios web en contenedores Docker ejecutándose sobre uno de los programadores disponibles para Mesos (Marathon/Chronos, Aurora o Singularity). Este sería, por tanto, el primer grupo marco de Mesos. Al lado tendríamos el framework Apache Spark y varios frameworks de bases de datos para el almacenamiento de datos. Este sería el segundo grupo de frameworks Mesos. Elegiremos los detalles después de ejecutarlos todos en paralelo para realizar pruebas.

Sin embargo, tenemos problemas para decidir sobre qué base ejecutar Mesos. Idealmente, queremos colocarlo lo más cerca posible del metal. También queremos utilizar una solución de orquestación para asegurarnos de que los demonios Mesos y framework siempre se estén ejecutando o reiniciando en caso de falla. Las opciones que estamos considerando son las siguientes:

1) Ejecutar Mesos y los frameworks como contenedores acoplables en un sistema operativo mínimo. En este sentido, actualmente nos inclinamos por CoreOS y Fleet.

2) Ejecutar Mesos y los frameworks directamente en servidores Ubuntu/Debian. Para esta opción, nos inclinamos por Foreman y Puppet.

En cuanto a la pregunta, buscamos identificar la solución que, en orden de importancia:

  • es el menos complejo de configurar
  • es el más fácil de mantener y mantener actualizado
  • tiene los menores gastos generales

No hemos trabajado con CoreOS antes, pero es la opción hacia la que parece que nos dirigimos. Un gran problema (subjetivo) que tengo con esto es que ejecutamos Mesos en contenedores Docker y luego ejecutamos contenedores Docker en Mesos. Esto me parece "impuro" y equivocado. ¿Es esta consideración sin fundamento?

Una idea similar se refiere a la redundancia entre capas. Para explicar de dónde vengo, preferiría que Mesos fuera un sistema operativo real que simplemente se ejecuta encima del metal. Parece que no importa qué base utilice, terminará con la misma funcionalidad prevista en más de una capa de la arquitectura (es decir, CoreOS&Fleet&SystemD == Mesos&Marathon&Chronos). ¿Es esto inevitable?

¿Existen otras buenas opciones para ejecutar la capa debajo de Mesos que no pudimos considerar, teniendo en cuenta nuestros criterios?

Respuesta1

Configurar y ejecutar servicios en Mesos puede ser una operación compleja o fácil, y primero debe definir un esquema de servicios que desea ejecutar, según sus necesidades y objetivos, para obtener la solución que desea.

Ejecuto una configuración de >70 máquinas y una variedad de servicios diferentes bajo HAProxy para equilibrio de carga dinámico con Mesos-DNS y Marathon, Api gateway, Chronos, Jenkins, Docker, Collectd y Graphite,...

Ahora para responder a sus preguntas directas:

  • Mesos es el menos complejo de configurar usando tuDistribución de Linux "favorita"con el que estás más familiarizado.
  • Lo más fácil de mantener es, nuevamente, la distribución con la que esté más familiarizado.
  • En cuanto a los gastos generales, Mesos es un sistema de software que utiliza bibliotecas de sistema operativo subyacentes y otras funciones de software además de las suyas propias, y tener Mesos como sistema operativo (que funciona tanto con hardware como con software...) es una imagen completamente equivocada.

Así que mi mejor respuesta para ti es usar tu distribución de Linux favorita y poner Mesos, o si quieres aprender algo nuevo y posiblemente rápido y sin esfuerzo, usa(de código abierto) DCOSyCoreOS.

información relacionada