Attualmente stiamo progettando l'architettura della nostra nuova configurazione cloud di Apache Mesos. L'obiettivo è unificare i nostri sistemi spostando stack diversi sulla stessa architettura. I principali carichi di lavoro sono l'analisi dei big data mediante Apache Spark e la nostra infrastruttura aziendale, inclusi server Web, server di posta, ecc.
L'idea è di eseguire i nostri servizi Web in contenitori Docker in esecuzione su uno degli scheduler disponibili per Mesos (Marathon / Chronos, Aurora o Singularity). Questo sarebbe quindi il primo gruppo quadro Mesos. Accanto ad esso, avremmo il framework Apache Spark e diversi framework di database per l'archiviazione dei dati. Questo sarebbe il secondo gruppo di framework Mesos. Sceglieremo le specifiche dopo averle eseguite tutte in parallelo per i test.
Abbiamo difficoltà a decidere, tuttavia, su quali basi eseguire Mesos stesso. Idealmente, vogliamo eseguirlo il più vicino possibile al metallo. Vogliamo anche utilizzare una soluzione di orchestrazione per assicurarci che i demoni Mesos e framework siano sempre in esecuzione / riavviati in caso di errore. Le opzioni che stiamo prendendo in considerazione sono le seguenti:
1) Esecuzione di Mesos e dei framework come contenitori docker in un sistema operativo minimo. A questo proposito, ci stiamo attualmente rivolgendo a CoreOS e Flotta.
2) Esecuzione di Mesos e framework direttamente su server Ubuntu / Debian. Per questa opzione, ci stiamo sporgendo verso Foreman e Puppet.
Per quanto riguarda la domanda, stiamo cercando di identificare la soluzione che, in ordine di importanza:
- è il meno complesso da configurare
- è il più semplice da mantenere e da aggiornare
- ha il minimo sovraccarico
Non abbiamo mai lavorato con CoreOS prima, ma è l'opzione verso cui ci stiamo dirigendo. Un grosso problema (soggettivo) che ho con questo è che eseguiamo Mesos sui contenitori Docker e quindi eseguiamo i contenitori Docker su Mesos. Questo mi sembra "impuro" e sbagliato per me. Questa considerazione è senza merito?
Un pensiero simile riguarda la ridondanza tra i livelli. Per spiegare da dove vengo, preferirei che Mesos fosse un vero sistema operativo che gira proprio sopra il metallo. Sembra che, indipendentemente dalla base che usi, finisci con la stessa funzionalità prevista su più di un livello dell'architettura (ad esempio CoreOS & Fleet & SystemD == Mesos & Marathon & Chronos). È inevitabile?
Ci sono altre buone opzioni per eseguire il livello sotto Mesos che non abbiamo considerato, tenendo conto dei nostri criteri?