An Introduction to Mesosphere

Cos’è Mesosphere

Mesosphere è una soluzione software che espande le capacità di gestione dei cluster di Apache Mesos con componenti aggiuntivi per fornire un modo nuovo e innovativo per gestire le infrastrutture server. Combinando diversi componenti con Mesos, come Marathon e Chronos, Mesosphere consente di scalare facilmente le applicazioni astraendo molte delle sfide associate al ridimensionamento.

Mesosphere fornisce funzionalità come la pianificazione delle applicazioni, il ridimensionamento, la tolleranza ai guasti e l’auto-guarigione. Fornisce inoltre il rilevamento del servizio dell’applicazione, l’unificazione delle porte e l’elasticità del punto finale.

Per dare una migliore idea di come Mesosfera fornisce le caratteristiche di cui sopra, spiegheremo brevemente ciò che ogni componente chiave della Mesosfera fa, a partire da Apache Mesos, e mostrare come ciascuno viene utilizzato nel contesto della Mesosfera.

Una panoramica di base di Apache Mesos

Apache Mesos è un gestore di cluster open source che semplifica l’esecuzione di applicazioni su un cluster scalabile di server, ed è il cuore del sistema Mesosfera.

Mesos offre molte delle funzionalità che ci si aspetta da un gestore di cluster, come ad esempio:

  • Scalabilità per oltre 10.000 nodi
  • l’isolamento delle Risorse per le attività attraverso Contenitori Linux
  • Efficiente della CPU e della memoria-conoscenza della pianificazione delle risorse
  • Altamente disponibile maestro attraverso Apache ZooKeeper
  • interfaccia Web per il monitoraggio del cluster di stato

Mesos Architettura

Mesos ha un’architettura che è composto di master e slave demoni e di quadri. Ecco una rapida ripartizione di questi componenti, e alcuni termini rilevanti:

  • Demone master: gira su un nodo master e gestisce demoni slave
  • Demone slave: viene eseguito su un nodo master ed esegue attività che appartengono a framework
  • Framework: noto anche come applicazione Mesos, è composto da uno scheduler, che si registra con il master per ricevere offerte di risorse, e uno o più esecutori, che avvia attività su slave. Esempi di framework Mesos includono Marathon, Chronos e Hadoop
  • Offerta: un elenco di CPU e risorse di memoria disponibili di un nodo slave. Tutti i nodi slave inviano offerte al master e il master fornisce offerte ai framework registrati
  • Task: un’unità di lavoro pianificata da un framework e eseguita su un nodo slave. Un’attività può essere qualsiasi cosa, da un comando o script bash, a una query SQL, a un lavoro Hadoop
  • Apache ZooKeeper: software che viene utilizzato per coordinare i nodi master

Architettura Mesos

Nota: “ZK” rappresenta ZooKeeper in questo diagramma.

Questa architettura consente a Mesos di condividere le risorse del cluster tra applicazioni con un alto livello di granularità. La quantità di risorse offerte a un particolare framework si basa sulla politica impostata sul master e lo scheduler del framework decide quale delle offerte utilizzare. Una volta che lo scheduler del framework decide quali offerte desidera utilizzare, dice a Mesos quali attività devono essere eseguite e Mesos avvia le attività sugli slave appropriati. Dopo che le attività sono state completate e le risorse consumate sono state liberate, il ciclo di offerta delle risorse si ripete in modo da poter pianificare più attività.

Alta disponibilità

L’alta disponibilità di master Mesos in un cluster è abilitata attraverso l’uso di Apache ZooKeeper per replicare i master per formare un quorum. ZooKeeper coordina anche l’elezione del leader master e gestisce il rilevamento del leader tra i componenti Mesos, inclusi slave e framework.

Sono necessari almeno tre nodi master per una configurazione altamente disponibile-una configurazione a tre master consente di mantenere il quorum in caso di guasto di un singolo master–ma cinque nodi master sono consigliati per un ambiente di produzione resiliente, consentendo di mantenere il quorum con due nodi master offline.

Per ulteriori informazioni su Apache Mesos, visitare la sua pagina di documentazione ufficiale.

Una panoramica di base di Marathon

Marathon è un framework per Mesos progettato per lanciare applicazioni di lunga durata e, in Mesosphere, serve come sostituto di un sistema tradizionaleinit. Ha molte caratteristiche che semplificano l’esecuzione di applicazioni in un ambiente cluster, come ad esempio ad alta disponibilità, vincoli di nodo, controlli di integrità delle applicazioni, un’API per la scriptability e service discovery, e un facile da usare interfaccia utente web. Aggiunge le sue capacità di ridimensionamento e di auto-guarigione al set di funzionalità Mesosfera.

Marathon può essere utilizzato per avviare altri framework Mesos e può anche avviare qualsiasi processo che può essere avviato nella shell normale. Poiché è progettato per applicazioni di lunga durata, garantirà che le applicazioni avviate continuino a funzionare, anche se i nodi slave su cui sono in esecuzione falliscono.

Per ulteriori informazioni su Marathon, visita la sua pagina GitHub.

Una panoramica di base di Chronos

Chronos è un framework per Mesos originariamente sviluppato da Airbnb in sostituzione dicron. Come tale, è uno scheduler completo, distribuito e fault-tolerant per Mesos, che facilita l’orchestrazione dei lavori, che sono raccolte di attività. Include un’API che consente lo scripting dei lavori di pianificazione e un’interfaccia utente Web per facilità d’uso.

In Mesosphere, Chronos complimenta Marathon in quanto fornisce un altro modo per eseguire le applicazioni, secondo un programma o altre condizioni, come il completamento di un altro lavoro. È anche in grado di pianificare i lavori su più nodi slave Mesos e fornisce statistiche sui fallimenti e sui successi dei lavori.

Per ulteriori informazioni su Chronos, visita la sua pagina GitHub.

Una panoramica di base di HAProxy

HAProxy è un popolare open source load balancer e reverse proxy soluzione. Può essere utilizzato in Mesosphere per instradare il traffico di rete da host noti, tipicamente master Mesos, ai servizi effettivi in esecuzione sui nodi slave Mesos. Le funzionalità di rilevamento del servizio di Mesos possono essere utilizzate per configurare dinamicamente HAProxy per instradare il traffico in entrata ai nodi slave back-end appropriati.

Per ulteriori informazioni sulle funzionalità generali di HAProxy, consulta la nostra Introduzione a HAProxy.

Conclusione

Mesosphere impiega paradigmi di infrastruttura server che possono sembrare sconosciuti, in quanto è stato progettato con una forte attenzione al clustering e alla scalabilità, ma si spera che ora si abbia una buona comprensione di come funziona. Ciascuno dei componenti su cui si basa fornisce soluzioni ai problemi che vengono comunemente affrontati quando si tratta di clustering e ridimensionamento di un’infrastruttura server, e Mesosphere mira a fornire una soluzione completa a queste esigenze.

Ora che conosci le basi della Mesosfera, dai un’occhiata al prossimo tutorial di questa serie. Ti insegnerà come impostare un cluster Mesosfera pronto per la produzione su Ubuntu 14.04!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.