En introduktion till Mesosphere

Vad är Mesosphere

Mesosphere är en mjukvarulösning som expanderar på klusterhanteringsfunktionerna i Apache Mesos med ytterligare komponenter för att ge ett nytt och nytt sätt att hantera serverinfrastrukturer. Genom att kombinera flera komponenter med Mesos, som Marathon och Chronos, möjliggör Mesosphere ett sätt att enkelt skala applikationer genom att abstrahera bort många av de utmaningar som är förknippade med skalning.

Mesosphere tillhandahåller funktioner som applikationsschemaläggning, skalning, feltolerans och självläkning. Det ger också applikationstjänst upptäckt, Port enande, och slutpunkt elasticitet.

för att ge en bättre uppfattning om hur Mesosphere tillhandahåller de ovan nämnda funktionerna, kommer vi kortfattat att förklara vad varje nyckelkomponent i Mesosphere gör, börjar med Apache Mesos, och visa hur var och en används i samband med Mesosphere.

en grundläggande översikt över Apache Mesos

Apache Mesos är en open source cluster manager som förenklar kör program på en skalbar kluster av servrar, och är hjärtat i Mesosphere systemet.

Mesos erbjuder många av de funktioner som du kan förvänta dig av en klusterhanterare, till exempel:

  • skalbarhet till över 10 000 noder
  • Resursisolering för uppgifter via Linux-Behållare
  • effektiv CPU-och minnesmedveten resursschemaläggning
  • mycket tillgänglig master genom Apache ZooKeeper
  • webbgränssnitt för övervakning av klustertillstånd

Mesos-arkitektur

Mesos har en arkitektur som består av master-och slavdemoner och ramar. Här är en snabb uppdelning av dessa komponenter och några relevanta termer:

  • Master daemon: körs på en huvudnod och hanterar slavdemoner
  • Slavdemon: körs på en huvudnod och kör uppgifter som tillhör ramverk
  • ramverk: även känd som en Mesos-applikation, består av en schemaläggare, som registrerar sig hos mästaren för att ta emot resurserbjudanden, och en eller flera exekutörer, som startar uppgifter på slavar. Exempel på Mesos-ramar inkluderar Marathon, Chronos och Hadoop
  • erbjudande: en lista över en slavnods tillgängliga CPU-och minnesresurser. Alla slavnoder skickar erbjudanden till mästaren, och Mästaren ger erbjudanden till registrerade ramar
  • uppgift: en arbetsenhet som är planerad av en ram och körs på en slavnod. En uppgift kan vara allt från ett bash-kommando eller skript till en SQL-fråga till ett Hadoop-jobb
  • Apache ZooKeeper: programvara som används för att samordna huvudnoderna

Mesos Architecture

Obs: ”ZK” representerar ZooKeeper i detta diagram.

denna arkitektur tillåter Mesos att dela klustrets resurser bland applikationer med hög granularitet. Mängden resurser som erbjuds till ett visst ramverk baseras på den policy som ställs på befälhavaren, och ramschemaläggaren bestämmer vilka av erbjudandena som ska användas. När ramschemaläggaren bestämmer vilka erbjudanden den vill använda, berättar den Mesos vilka uppgifter som ska utföras, och Mesos startar uppgifterna på lämpliga slavar. När aktiviteter har slutförts och de förbrukade resurserna har frigjorts upprepas resurserbjudandecykeln så att fler aktiviteter kan schemaläggas.

hög tillgänglighet

hög tillgänglighet för Mesos-mästare i ett kluster aktiveras genom användning av Apache ZooKeeper för att replikera mästarna för att bilda ett kvorum. ZooKeeper samordnar också master leader-valet och hanterar ledardetektering bland Mesos-komponenter, inklusive slavar och ramar.

minst tre huvudnoder krävs för en mycket tillgänglig konfiguration–en tre huvudinställning gör att kvorum kan bibehållas om en enda mästare misslyckas–men fem huvudnoder rekommenderas för en fjädrande produktionsmiljö, vilket gör att kvorum kan bibehållas med två huvudnoder offline.

För mer information om Apache Mesos, besök dess officiella dokumentationssida.

en grundläggande översikt över Marathon

Marathon är ett ramverk för Mesos som är utformat för att starta långvariga applikationer, och i Mesosphere fungerar som en ersättning för ett traditionelltinit-system. Den har många funktioner som förenklar kör program i en grupperad miljö, såsom hög tillgänglighet, nod begränsningar, program hälsokontroller, ett API för scriptability och service upptäckt, och ett lättanvänt webbgränssnitt. Det lägger till sin skalning och självläkande förmåga till Mesosfärens funktionsuppsättning.

Marathon kan användas för att starta andra Mesos-ramar, och det kan också starta alla processer som kan startas i det vanliga skalet. Eftersom den är utformad för långvariga applikationer, kommer den att säkerställa att applikationer som den har lanserat fortsätter att köras, även om slavnoden(erna) som de körs på misslyckas.

För mer om Marathon, besök dess GitHub-sida.

en grundläggande översikt över Chronos

Chronos är ett ramverk för Mesos som ursprungligen utvecklades av Airbnb som ersättning förcron. Som sådan är det en fullfjädrad, distribuerad och feltolerant schemaläggare för Mesos, vilket underlättar orkestrering av jobb, som är samlingar av uppgifter. Den innehåller ett API som möjliggör skript för schemaläggning jobb, och en webbgränssnitt för enkel användning.

i Mesosphere komplimangerar Chronos Marathon eftersom det ger ett annat sätt att köra applikationer, enligt ett schema eller andra villkor, till exempel slutförandet av ett annat jobb. Det kan också schemalägga jobb på flera Mesos slavnoder och ger statistik om jobbfel och framgångar.

För mer information om Chronos, besök dess GitHub-sida.

en grundläggande översikt över HAProxy

HAProxy är en populär öppen källkodsbelastningsbalanserare och omvänd proxylösning. Den kan användas i Mesosphere för att dirigera nätverkstrafik från kända värdar, vanligtvis Mesos masters, till de faktiska tjänster som körs på Mesos slavnoder. Tjänsten upptäckt kapacitet Mesos kan användas för att dynamiskt konfigurera HAProxy att dirigera inkommande trafik till rätt backend Slav noder.

För mer information om de allmänna funktionerna i HAProxy, kolla in vår introduktion till HAProxy.

slutsats

Mesosphere använder serverinfrastrukturparadigmer som kan verka okända, eftersom det utformades med ett starkt fokus på kluster och skalbarhet, men förhoppningsvis har du nu en god förståelse för hur det fungerar. Var och en av komponenterna som den bygger på ger lösningar på problem som ofta står inför när man hanterar kluster och skalning av en serverinfrastruktur, och Mesosphere syftar till att tillhandahålla en komplett lösning på dessa behov.

Nu när du känner till grunderna i Mesosphere, kolla in nästa handledning i den här serien. Det kommer att lära dig hur du ställer in ett Produktionsklart Mesosfärkluster på Ubuntu 14.04!

Lämna ett svar

Din e-postadress kommer inte publiceras.